Linux
KVM - 通過網橋添加公共 IP
我正在建立一個 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 連接,但可能會干擾橋接連接。