我希望你能帮助我。我在裸机服务器上运行多个 Linux 容器,我的提供商为该服务器提供了一个全局 Ipv6 地址以及 64 位网络。
我使用主机提供的桥接器在每个容器的配置文件中配置了 IPv6 设置。当我重新启动整个系统时,我能够通过 IPv6 访问我的容器,反之亦然(例如 ping6 google.de 有效)。一段时间后(不知道多久),容器无法再通过其 ipv6 地址访问,我不知道原因(ping6 google.de 也不起作用)。有人知道是什么原因导致这种行为吗?
这是我的配置:
网络/接口(主)
iface br0 inet6 静态预启动 modprobe ipv6 地址 2a02:xxxx:1:1::517:f79 网关 2a02:xxxx:1:1::1 网络掩码 64 bridge_stp on
sysctl.conf (主)
ipv6 设置(无自动配置)
net.ipv6.conf.default.autoconf=0 net.ipv6.conf.default.accept_ra=0 net.ipv6.conf.default.accept_ra_defrtr=0 net.ipv6.conf.default.accept_ra_rtr_pref=0 net.ipv6.conf.default.accept_ra_pinfo=0 net.ipv6.conf.default.accept_source_route=0 net.ipv6.conf.default.accept_redirects=0 net.ipv6.conf.default.forwarding=1 net.ipv6.conf.default.proxy_ndp=1 net.ipv6.conf.all.autoconf=0 net.ipv6.conf.all.accept_ra=0 net.ipv6.conf.all.accept_ra_defrtr=0 net.ipv6.conf.all.accept_ra_rtr_pref=0 net.ipv6.conf.all.accept_ra_pinfo=0 net.ipv6.conf.all.accept_source_route=0 net.ipv6.conf.all.accept_redirects=0 net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.proxy_ndp=1
网络/接口(容器)
环回网络接口
自动 lo iface lo inet 环回
自动 eth0 iface eth0 inet 手动 iface eth0 inet6 手动
LXC 容器配置
网络配置
- lxc.网络.类型 = veth
- lxc.network.flags = 启动
- lxc.network.link = br0
- lxc.network.hwaddr = 7e:7f:de:16:xx:xx
- lxc.network.ipv4.gateway = 81.7.xx.1
- lxc.网络.ipv4 = 81.7.xx.xxx/24
- lxc.network.ipv6 = 2a02:xxxx:a:77::123/64
如有任何建议我将十分感激。
最好的,帕特里克
答案1
尝试禁用多播侦听:
echo -n 0 > /sys/class/net/<brif>/bridge/multicast_snooping
或者启用多播查询器(很早):
echo -n 1 > /sys/class/net/<brif>/bridge/multicast_querier