目前: 本地的 PC 和 docker 宿主机都可以正常访问 ipv6 访问 ipv6 网络。
但是容器内可以获取到 ipv6 地址(外网),但是通过控制台 ping6 ipv6.baidu.com 都无法访问。
操作的是: { "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64" }
2001:db8:1 替换成了路由获取到的地址。
参考教程: https://www.itdaan.com/blog/2018/06/01/9c40958f838af908faabb21639ddc2d8.html
1
yhkang 2020-01-30 20:22:55 +08:00
每个容器都可以有公网 ipv6 地址?看起来不错,过完年回去我也要试一试
|
3
aru 2020-01-30 20:51:06 +08:00
这段 IPv6/64 已经分配到主机了,你需要给 docker 另外一段 ipv6/64
|
6
Jays OP @aru 以下为路由器的信息。
IPv6 地址: WAN: 2408:822a:4c01:XXXX:b97a:1e4c:1d3b:c98/64 IPv6 地址: LAN: 2408:822a:4c1f:XXX:767d:24ff:fe95:6487/60 PC: IPv6 地址 . . . . . . . . . . . . : 2408:822a:4c1f:XXX:3556:a962:2de0:efa8(首选) 临时 IPv6 地址. . . . . . . . . . : 2408:822a:4c1f:XXX:144f:8b20:9205:c75c(首选) 该使用哪段? |
7
aru 2020-01-30 22:23:31 +08:00
IPv6 地址: LAN: 2408:822a:4c1f:XXX:767d:24ff:fe95:6487/60
这里面取 由于你 隐藏了完整地址,所以自己取吧 和你 pc 的差不多的 |
8
aru 2020-01-30 22:28:59 +08:00
2408:822a:4c1f:XXX::/64
xxx 和和你已有机器的都不同 |
9
Buges 2020-01-30 22:35:52 +08:00 via Android 1
这个我也不太明白,因为家宽的地址段经常变化,不知道变了之后这个配置需不需要改。
我的做法是 docker 的 ipv6 地址前缀填私网地址把 ipv6 启用起来,然后用 macvlan 把容器桥接出来自然得就通过 slaac 获取到地址了。 |
11
Buges 2020-01-31 12:21:10 +08:00 via Android
|
12
Jays OP @aru
"fixed-cidr-v6": "2408:822a:4c1f:f01::/64" 容器获取到的 ip 信息如下。 "Gateway": "172.17.0.1", "IPAddress": "172.17.0.4", "IPPrefixLen": 16, "IPv6Gateway": "2408:822a:4c1f:f01::1", "GlobalIPv6Address": "2408:822a:4c1f:f01:0:242:ac11:4", "GlobalIPv6PrefixLen": 64, "MacAddress": "02:42:ac:11:00:04", "IPv6Gateway": "2408:822a:4c1f:f01::1", 会不会获取到的 ipv6 网关地址不对,局域网可以 ping 通容器,但是容器 ping ipv6.baidu.com 还是无法 ping。 PC 的网关是 :fe80::767d:24ff:fe95:6487%13 |
13
aru 2020-01-31 15:32:20 +08:00
|
14
Venk666 2020-01-31 18:35:01 +08:00 via Android
ipv6nat
|
16
reece 2020-02-02 17:19:19 +08:00
ipv6 地址还是无法上外网
|
17
simon261 2020-05-27 06:28:48 +08:00
@aru
你好,请教一下 ipv6 的问题 我的路由 lan 口是 a:a:a:480::1/60 那么掩码就是覆盖 a:a:a:48,对嘛? 然后路由的 lan 口 ip 是 a:a:a:480::1 docker 里设置的 "fixed-cidr-v6": "a:a:a:481::/64" docker0 网关的 ip"a:a:a:481::1 容器的 ip 是"a:a:a:481:c:d:e:2 现在容器和寄主机器可以互 ping 通,寄主和路由都能平通 ipv6 的外网。 但是路由 ping a:a:a:481::1 说网络不可达。 "fixed-cidr-v6": "a:a:a:481::/64" 这样设置对嘛? 在 a:a:a:480::/60 子网里下面两个应该是同一个网段的吧? a:a:a:481::/64 a:a:a:480::/64 路由为什么说不可达呢? 不知道是不是理解错了。 |
18
aru 2020-05-27 07:30:24 +08:00 1
@simon261
路由器看 一下获得的 /60 ip, 如: a:a:a:480::1/60 可以给 docker 分配这个 ip: a:a:a:480:111::/64 然后就可以了,重启 docker,建立一个测试容器吧 |
19
aru 2020-05-27 07:31:30 +08:00 1
电信分配的 ipv6 也是动态的,每次换了你还得改,建议在家庭拨号环境不要设 ipv6 docker 。
|
20
secondpaul 2020-09-07 17:53:43 +08:00 via iPhone
@Buges 前辈,请问“用 macvlan 桥接出来”的 macvlan 是创建一个前缀为光猫获取前缀的 macvlan 吗,那不就没有通过 slaac 自动配置了吗?
|
21
qq296015668 2020-12-06 14:40:51 +08:00
@Jays NAT 方式的话是缺少 ip6tables 规则,添加就行
假如你使用的是 { "ipv6": true, "fixed-cidr-v6": "2001:db8:1::/64" } ip6tables -t nat -A POSTROUTING -s 2001:db8:1::/64 -j MASQUERADE |