使用网桥时的设置

使用网桥时的设置

eth0我在物理以太网接口和 OpenVPN 虚拟接口之间设置了一座桥tap0。网桥有一个 IP 地址,并且可以从任一接口通过该 IP 地址联系机器。但是,我不知道如何配置才能使流量在接口之间的桥上流动。

桥接需要net.ipv4.ip_forward = 1设置,还是路由需要设置?

我应该如何配置FORWARDiptables?理想情况下,仅应转发接口之间的流量,以便该计算机不能用作网络内的跳出点。

答案1

您不需要设置,ip_forward = 1除非该接口充当其他设备的 NAT,如果您将它们设置为网桥,则不应出现这种情况。

例子

这是我的 KVM 服务器设置,其中有一个桥接设备、br0物理以太网设备eth0以及 KVM 来宾的所有接口。

$ brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.bcaec123c1e2   no      eth0
                            vnet0
                            vnet1
                            vnet2
                            vnet3
                            vnet4
                            vnet5
virbr0      8000.52540003f256   yes     virbr0-nic

那么出了什么问题呢?

根据您的描述,听起来您没有路由规则将数据包从一个接口路由到另一个接口。

主机与桥
$ ip route show
192.168.1.0/24 dev br0  proto kernel  scope link  src 192.168.1.200 
192.168.122.0/24 dev virbr0  proto kernel  scope link  src 192.168.122.1 
169.254.0.0/16 dev br0  scope link  metric 1008 
default via 192.168.1.1 dev br0 
具有属于网桥成员的 NIC 的主机
$ ip route show
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.218 
169.254.0.0/16 dev eth0  scope link  metric 1002 
default via 192.168.1.1 dev eth0 

但是,您可能会遇到将tap0设备和物理以太网设备混合eth0到网桥中的问题。

桥梁中的分接设备

如果您使用的是 TAP 设备,tap0您可能需要配置防火墙以允许这些数据包在网桥上来回流动。

现在设置 Linux 防火墙以允许数据包在新创建的 tap0 和 br0 接口上自由流动:

$ sudo iptables -A INPUT -i tap0 -j ACCEPT
$ sudo iptables -A INPUT -i br0 -j ACCEPT
$ sudo iptables -A FORWARD -i br0 -j ACCEPT

参考

相关内容