省流版:
docker network create -d macvlan –ipv6 –subnet=192.168.0.0/24 –gateway=192.168.0.8 –subnet=fd00::/64 -o parent=eth0 test1br0
(相关资料图)
其实原理挺简单的。。fe80容器会自己生成,ipv6的公网地址和网关可以通过slaac从路由器获得。但docker network创建macvlan又需要规划ipv6的网段,否则报错。然后就配ipv6的局域网网段,但不配置ipv6网关来解决问题。
背景:
给unraid下macvlan的容器启用ipv6。
网上的教程基本都是给macvlan使用路由器上获取到运营商的ipv6公网网段。这种方法的坏处是路由器重启后,需要重新设置macvlan的网段,使用起来很不方便。
本文也主要是在macvlan创建时选择的ipv6网段上进行修改。
思路:
首先查阅ipv6的常见地址段有
1、全球单播地址(也就是公网地址): 2001::/16 ,电信的是240e开头,联通2408开头,移动2409开头
2、局域网地址: fc,fd开头 可路由。
3、链路本地地址: fe80开头 不可路由,电脑自动生成。
以上三种比较常见的类型。
首先经过测试,macvlan下的容器可以自己生成链路本地地址。然后容器也可以自己获取到路由器下发的slaac网段,网关和ipv6dns。但生成macvlan又必须指定ipv6网段。
所以我尝试给macvlan分配fd00::/64的ipv6局域网网段,同时不设置ipv6网关。经过测试,容器可以同时获得局域网地址,链路本地地址以及ipv6公网地址。
经过测试可以正常使用,并且不用考虑路由器的重启问题。
步骤:
1、爱快路由器的ipv6dhcp选择无状态(slaac)
2、unraid的docker选项打开主机访问自定义网络,保留用户自定义网络,docker custom network type选择macvlan。
3、进入unraid命令行删掉unraid自带的br0,因为默认的br0是分配的公网地址,所以把它先干掉。
docker network ls //查看docker网络
docker network rm br0 //删掉br0
4、创建新的test1br0。
docker network create -d macvlan –ipv6 –subnet=内网v4网段/24 –gateway=内网v4网关 –subnet=fd00::/64 -o parent=eth0 test1br0
这里的配置上我ipv6分配网段使用了fd开头的局域网地址,同时不配置ipv6网关。
5、用新的test1br0创建测试容器。
可以发现容器获得了ipv6的局域网,链路本地和公网地址。并且可以ping通ipv6网站。
标签:
Copyright © 2015-2022 太平洋物业网版权所有 备案号:豫ICP备2022016495号-17 联系邮箱:93 96 74 66 9@qq.com