跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Docker IPV6 NAT
未分類
3 12 月 2020

Docker IPV6 NAT

Docker IPV6 NAT

資深大佬 : qq296015668 6

最接在做容器化的 IPV6,发现一些小伙伴跟我一样根据官方文档配置后,容器里面根本无法与外部通信

注意:我们只讨论 IPV6 NAT 的实现,容器需要真实的外网 IPV6 不在此范围

Docker

  • 官方文档地址: Enable IPv6 support
vi /etc/docker/daemon.json 
{   "ipv6": true,   "fixed-cidr-v6": "2001:db8:1::/64"   # 这里的 "fixed-cidr-v6": "2001:db8:1::/64" 只是容器内部使用的 ipv6 地址,选一个常用不与现有网络冲突的网段即可(不知道如何设置保持默认也行) } 
systemctl reload docker 

官方文档到这里就结束了,这样设置后,容器确实可以获取到 ipv6 的地址了,但是除了宿主之外的 ipv6 均无法正常访问,这是因为 ip6tables 规则缺失,不知道为什么 Docker 没有自动生成 NAT 规则

ip6tables -t nat -A POSTROUTING -s 2001:db8:1::/64 -j MASQUERADE 
  • 这里的 2001:db8:1::/64 是 /etc/docker/daemon.json 定义的 fixed-cidr-v6 地址

  • 到这里就可以正常在容器里面使用宿主的网络权限访问局域网或者外网的 ipv6 地址了

Docker-Compose

如果是 docker-compose, 可以不修改 /etc/docker/daemon.json, 直接使用 yml 定义

cat docker-compose-network.yml 
version: '2.2'  networks:   net:     driver: bridge     enable_ipv6: true     ipam:       driver: default       config:         - subnet: 172.18.0.0/16         - subnet: 2001:db8:10::/64 
ip6tables -t nat -A POSTROUTING -s 2001:db8:10::/64 -j MASQUERADE 

大佬有話說 (1)

  • 資深大佬 : zro

    用 Docker 调试网络方面,实在是太蛋疼了。。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具