我希望能够从VM1切换到VM2,两个VM都连接到Linux网桥(br0)。下面是我的拓扑
VM1(m1)<====SSH====>[br0]<======SSH=====>VM2(m2)
$ sudo ip link add dev br0 type bridge
$ sudo ip addr add 10.200.1.1/24 dev br0
$ sudo ip link set br0 up
$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
veeru@ghost:~$ brctl show
bridge name bridge id STP enabled interfaces
br0 8000.fe540005c7df no vnet0
vnet1
docker0 8000.024205ca1927 no
virbr0 8000.5254003bf832 yes virbr0-nic
我可以看到来宾VM中的网络已启动,并且可以从主机到来宾ssh进行连接,而没有任何问题。
但是,当我尝试从VM1(m1)到VM2(m2)进行ssh时,VM2无法访问。我已经在VM2(m2)中使用tcpdump检查了ssh数据包是否未从VM1(m1)到达。但是我可以从VM1 ping通到VM2。
似乎我缺少有关linux桥接概念的一些要点
我也尝试将我的wifi接口(wlp0s20f3)添加到linux网桥,但是
sudo ip link set wlp0s20f3 down
sudo ip link set br0 down
sudo brctl addif br0 wlp0s20f3
can't add wlp0s20f3 to bridge br0: Operation not supported
我还没有在来宾和主机上碰过iptables
net.bridge.bridge-nf-call-arptables net.bridge.bridge-nf-call-ip6tables net.bridge.bridge-nf-call-iptables
这些控制是否将通过网桥的数据包发送到iptables进行处理。在使用网桥将虚拟机连接到网络的情况下,通常不希望进行此类处理,因为由于主机iptables规则仅占主机本身,而不占访客,导致访客流量被阻止。
因此,请禁用如下所示的bridge-nf参数。这应该工作。
sudo sysctl -w net.bridge.bridge-nf-call-arptables=0
sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0
sudo sysctl -w net.bridge.bridge-nf-call-iptables=0
可以找到更多信息@ libvirt博客和linux Foundation博客
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句