使用网桥时的设置

Xen*_*hic 8 iptables bridge openvpn

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

是否net.ipv4.ip_forward = 1需要设置为桥接,还是只是路由所需的设置?

我应该如何配置FORWARDiptables?理想情况下,应该只转发接口之间的流量,这样机器就不能用作网络内的反弹点。

slm*_*slm 9

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
Run Code Online (Sandbox Code Playgroud)

那么怎么了?

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

主持与桥梁
$ 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 
Run Code Online (Sandbox Code Playgroud) 具有网桥成员的 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 
Run Code Online (Sandbox Code Playgroud)

但是,您可能会遇到将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
Run Code Online (Sandbox Code Playgroud)

参考