怎样配置 Docker IPv6 ?
Docker IPv6 配置
Docker?0?默認不開啟 IPv6 配置, 但是在某些場景我們又需要 IPv6 網絡的支持, 特別是隨著 IPv6 的普及,以后使用 IPv6 的場景會越來越多。
注解
本教程假設您的服務器擁有公網 IPv6 地址段, 并且 IPv6 地址段Docker 啟用 IPv6 支持Docker 啟用 IPv6 支持為:?1111:1111:1111:1111::/64
Docker 啟用 IPv6 支持
首先編輯?/etc/docker/daemon.json?文件,把如下配置添加到配置文件中:
注解
如果?/etc/docker/daemon.json?文件不存在,手動創建即可。
{"ipv6": true,"fixed-cidr-v6": "1111:1111:1111:1111::/64" }重啟 docker 服務?systemctl?restart?docker。
宿主服務器配置
如果我們的 Docker 容器需要使用 IPv6 公網地址, 我們還需要配置宿主機器的 路由/轉發 規則,允許宿主機 路由/轉發 Docker 容器的 IPv6 流量。
注解
這里我們這里假設宿主機的默認 IPv6 網卡名稱為?eth0。
/etc/sysctl.conf?配置
我們需要宿主機允許轉發 IPv6 流量 & 鄰居發現消息:
net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.proxy_ndp=1 net.ipv6.conf.default.proxy_ndp=1 # docker0 是 docker 默認的網橋 (bridge) net.ipv6.conf.docker0.proxy_ndp=1 # eth0 是默認的網卡 net.ipv6.conf.eth0.proxy_ndp=1使用?sysctl?-f?重載系統配置。
ndppd 配置
因為 Linux IPv6 的 ndp 鄰居發現配置僅允許單個 IP 配置(IPv6?/128), 因此我們使用?ndppd?守護進程來自動轉發鄰居發現消息。
注解
理論上我們也可以手工一條一條的配置所有 IPv6 鄰居發現消息轉發規則。
apt install ndppd/etc/ndppd.conf?寫入如下配置:
route-ttl 30000 address-ttl 30000 proxy eth0 {router yestimeout 500autowire nokeepalive yesretries 3promiscuous nottl 30000rule 1111:1111:1111:1111::/64 {staticautovia no} }注解
?ndppd 詳細配置參見:?https://github.com/DanielAdolfsson/ndppd/blob/master/ndppd.conf-dist
systemctl?restart?ndppd
docker-compose 啟用 IPv6
docker-compose.yaml?可以使用類似如下的配置啟用 IPv6 地址:
version: "2.4"networks:ipv6_network:enable_ipv6: truedriver: bridgeipam:driver: defaultconfig:- subnet: "172.16.238.0/24"- subnet: "1111:1111:1111:1111:1::/80"小技巧
subnet 中的 IPv6 地址不要直接使用?1111:1111:1111:1111::/64, 否則可能會導致路由混亂(Docker 容器無法正常使用 IPv6 網絡)。
使用?1111:1111:1111:1111::/64?的任意子網段都可以。
警告
docker-compose?文件 必須使用 version: 2, version: 3 不支持?enable_ipv6?配置?2?。
如果您已有舊的容器在運行(網絡配置發生了變化),則需要先銷毀容器?docker-compose?down?然后再重新創建?docker-compose?up。
實現原理
Docker 啟用 IPv6 功能的原理實際就是:
配置宿主機器啟用 IPv6 路由/轉發 功能
這是必須的,否則宿主機器不會 路由/轉發 Docker 的 IPv6 流量。
Docker 底層網絡實現就是在宿主機器創建網橋 (bridge 模式)
所以一切關于網橋配置的原理都可以應用到這里。
給宿主機配置正確的 路由/轉發 規則
原文鏈接:Docker IPv6 配置 — 奇遇科技博客 2021 文檔 (qiyutech.tech)https://blog.qiyutech.tech/202112/30_docker_ipv6/
總結
以上是生活随笔為你收集整理的怎样配置 Docker IPv6 ?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php smarty框架案例,PHP框架
- 下一篇: Cisco路由器配置Ipsec