Linux

KVM - 通過網橋添加公共 IP

  • July 7, 2016

我正在建立一個 KVM 環境,通常我只是想當然地認為網路已經建立。我在從 VM 訪問公共 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 上配置了 5.5.5.0/28 範圍。

VM 添加了橋接網路 - 來自 VM (5.5.5.5) 和 Node (5.5.5.3) 的值得注意的 arping 都按預期得到了正確的答案。

<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 上創建了**/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

虛擬機路線:

# 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。除非您也有 NATed 虛擬網路,否則無需設置“net.ipv4.conf.all.forwarding”。標準 libvirt iptables 規則適用於從預設網路到 Internet 的 NAT 連接,但可能會干擾橋接連接。

引用自:https://serverfault.com/questions/785085