本文的硬件环境为:在小主机上装了PVE,虚拟机安装了OpenWRT作为主路由,同时开了一个Debian的lxc容器。家里的宽带可以获取公网ipv6地址,这里记录一下openwrt获取公网ipv6的设置,并为lxc容器下发公网ipv6地址的方法。
首先说下我的网络环境:光猫负责拨号,已经开启DHCP,同时也开启了ipv6,无线路由器为桥接模式,手机,电脑等设备连接上WIFI可以正常获取到公网ipv6地址。我使用PVE虚拟了一个OpenWRT系统作为小主机的网关,OpenWRT的wan口与无线路由器的lan口相连。
设置OpenWRT,可以获取ipv6公网地址,并为OpenWRT的lan口设备分发ipv6公网地址:
① 网络→接口,然后修改WAN6口的设置。如果没有WAN6口,可以点击“添加新接口”,物理接口与WAN口保持一致即可。
② 基本设置里边,协议选择DHCPv6客户端;防火墙区域选择WAN区域。修改完成后,点击“保存&应用”
③ 切换到LAN口的设置:基本设置里边,“IPv6 分配长度”填64(大于等于WAN6口连接后,IPv6-PD处最后/后的数,最大不超过64)
④ LAN口的DHCP设置→ipv6设置:路由通告服务选“服务器模式”,DHCPv6服务选“服务器模式”,禁用NDP代理。最后,点击“保存&应用”
注:一般这样配置后,LAN口会获取到ipv6地址,但有时可能依旧没有ipv6地址,这时可能重置一下LAN口的MAC地址就行了(LAN口的设置→高级配置)
PVE服务器的配置:
① SSH连接上PVE服务器,修改 /etc/sysctl.conf
文件:
nano /etc/sysctl.conf
② 定位到最后,添加上如下代码:
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.all.autoconf=1
net.ipv6.conf.default.autoconf=1
net.ipv6.conf.vmbr0.autoconf=1
注:使用 nano 编辑好配置文件后,使用 CTRL + X ,然后按下 Enter 保存并退出。
③ 使配置生效:
sysctl -p
④ 回到PVE服务器的web页面,修改相应LXC容器的网络配置:将IPv6改为SLAAC
最后,重启LXC容器。如果LXC容器还是无法获取公网IPv6地址,可以尝试重启PVE服务器试试。
捐赠通道,感谢!🦀🦀