我在 Debian 10 路由器中创建了一个网桥,如下所示,
# brctl addbr br0
然后在网桥上添加了网络接口# brctl addif br0 eno1
brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0030bdb2810d no eno1
我的/etc/network/interfaces
样子
# The loopback network interface
auto lo
iface lo inet loopback
# Set up interfaces manually, avoiding conflicts with, e.g., network manager
iface eno1 inet manual
# Bridge setup
auto br0
iface br0 inet dhcp
bridge_ports eno1
一切正常,但如果我重启路由器,brctl show
结果将为空。在我的路由器中,syslog
我看到了这行奇怪的代码:
bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if youd nedd this
这是正常的吗?PS:我通过sysctl.conf
这行代码禁用了 ipv6net.ipv6.conf.all.disable_ipv6 = 1
当我的路由器重启时,我需要做什么才能建立桥接?
答案1
这Debian 维基提到了 Stretch 和 Buster 可能存在同样的问题。如果您的系统有该文件/etc/network/interfaces.d/setup
(我的没有),您可以尝试将其删除。
否则,我喜欢你在启动时添加桥的想法。你可以尝试/etc/network/interfaces
:
auto br0
iface br0 inet dhcp
pre-up brctl addbr br0 && brctl addif br0 eno1
post-down brctl delif br0 eno1 && brctl delbr br0
包含该post-down
线路是为了对称,并确保如果 br0 被关闭并重新启动,预启动线路不会失败(这将中止 ifup br0)。
更安全的方法可能是:
auto br0
iface br0 inet dhcp
pre-up { brctl addbr br0 && brctl addif br0 eno1; } || true
可以|| true
防止预先启动命令失败和中止ifup br0
。参考:https://manpages.debian.org/buster/ifupdown/interfaces.5.en.html
我认为您无需担心看到的 arp/ip/ip6tables 过滤警告,除非您需要此类过滤。该警告与您当前的问题无关。