KVM – 通过网桥添加公共IP

我正在build立一个KVM环境,通常我认为这个networking已经build立起来了。 我很难从虚拟机获取公共IP。 节点和虚拟机正在运行CentOS 7

这是目前的状态:

VM: 5.5.5.5 -> IP on physical node: 5.5.5.3 (pingable) VM: 5.5.5.5 -> Neighbouring physical node: 5.5.5.2 (pingable) VM: 5.5.5.5 -> Outside IP: 8.8.8.8 (network unreahable) Physical Node: 5.5.5.3 -> VM: 5.5.5.5 ( Destination Host Unreachable ) Physical Node: 5.5.5.3 -> Outside: 8.8.8.8 (pingable) Outside -> Physical Node: 5.5.5.2 (pingable) 

我已经在eth1绑定的物理节点上的br1上configuration了5.5.5.0/28范围。

虚拟机已经添加了桥接networking,并且VM(5.5.5.5)和Node(5.5.5.3)都可以获得正确的答案。

 <interface type='bridge'> <mac address='52:54:00:84:e5:e1'/> <source bridge='br1'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </interface> 

根据我正在使用指南的DC,在VM上创build了一个/ etc / sysconfig / network-scripts / route-eth0和rule-eth0文件:

 # cat route-eth0 default via 5.5.5.14 dev eth0 table 125 # cat rule-eth0 from 5.5.5.0/28 table 125 

VM路线:

 # netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 5.5.5.0 0.0.0.0 255.255.255.240 U 0 0 0 eth0 

节点路由:

  Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 6.6.6.14 0.0.0.0 UG 0 0 0 br0 6.6.6.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 5.5.5.0 0.0.0.0 255.255.255.240 U 0 0 0 eth1 5.5.5.0 0.0.0.0 255.255.255.240 U 0 0 0 br1 192.168.10.0 0.0.0.0 255.255.254.0 U 0 0 0 eth1 virbr0 

任何关于什么检查的指针或者我可能出错的地方都非常感谢….只是为了澄清 – 没有那些不是真正的IP,他们只是为了例子而编造的。

提前致谢。

试试这个sysctl:

 net.bridge.bridge-nf-call-arptables=0 net.bridge.bridge-nf-call-ip6tables=0 net.bridge.bridge-nf-call-iptables=0 

你需要你的网桥作为一个“交换机”,没有任何路由和NAT。 除非你有NAT虚拟networking,否则不需要设置“net.ipv4.conf.all.forwarding”。 标准libvirt iptables规则可以很好地处理从默认networking到互联网的NAT连接,但可能会造成桥接连接混乱。