几天以来,我试图configuration我的KVM虚拟机有一个公共IP地址,没有任何成功。
首先,我在OVH,你需要知道他们不允许从不同的mac地址联网。 我已经注册了一个与我的故障转移IP相关的虚拟mac地址
这是我的configuration:
客人要IP:46.105.40.x
主机IP:176.31.240.x
dummy0接口:ifcfg-dummy0
BOOTPROTO=static IPADDR=10.0.0.1 NETMASK=255.0.0.0 ONBOOT=yes NM_CONTROLLED=no ARP=yes BRIDGE=br0
br0桥:ifcfg-br0
DEVICE=br0 TYPE=Bridge DELAY=0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0 PEERDNS=yes NM_CONTROLLED=no ARP=yes
使用ip route add 46.105.40.xxx dev br0将故障转移ipredirect到br0网桥
> cat /proc/sys/net/ipv4/ip_forward 1 > cat /proc/sys/net/ipv4/conf/vnet0/proxy_arp 1 > route -n Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 176.31.240.254 0.0.0.0 UG 0 0 0 eth0 46.105.40.x 0.0.0.0 255.255.255.255 UH 0 0 0 br0 176.31.240.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
KVM:
<interface type='bridge'> <mac address='02:00:00:30:22:05'/> <source bridge='br0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </interface>
我在这里借用了大部分的OVHconfiguration(用法语, http://guides.ovh.com/BridgeClient )来configurationguest虚拟机
eth0接口:ifcfg-eth0
DEVICE="eth0" BOOTPROTO=none HWADDR="02:00:00:30:22:05" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet" UUID="e9138469-0d81-4ee6-b5ab-de0d7d17d1c8" USERCTL=no PEERDNS=yes IPADDR=46.105.40.xxx NETMASK=255.255.255.255 GATEWAY=176.31.240.254 ARP=yes
对于路由,我有route-eth0:
176.31.240.254 dev eth0 default via 176.31.240.254 dev eth0
有了这个configuration,我没有任何访问互联网。 我能做的唯一事情就是ping主机的公共IP地址,仅此而已。 我的最后结论是路由不起作用,因为在客户端,我运行ping 8.8.8.8 ,在主机上:
> tcpdump -i vnet0 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes 13:38:09.009324 IP 46-105-40-xxx.kimsufi.com > google-public-dns-a.google.com: ICMP echo request, id 50183, seq 1, length 64 13:38:09.815344 IP 46-105-40-xxx.kimsufi.com > google-public-dns-a.google.com: ICMP echo request, id 50183, seq 2, length 64
我从来没有得到的答复,只有请求。 看来客人 – >主持人沟通很好。
在eth0上:
> tcpdump -i eth0 icmp tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 13:39:40.240561 IP 46-105-40-xxx.kimsufi.com > google-public-dns-a.google.com: ICMP echo request, id 50439, seq 1, length 64 13:39:40.250161 IP google-public-dns-a.google.com > 46-105-40-xxx.kimsufi.com: ICMP echo reply, id 50439, seq 1, length 64
我有eth0的请求和答复,但答复不转发给桥。 我真的不明白为什么,我虽然是这条路线的目标!
IPtables在主机和来宾上都是禁用的。
我真的希望你们中的一些人能够帮助我!
提前谢谢了,
塞巴斯蒂安
我在这里有同样的问题。 我希望能够在公共IP上拥有主机和VM guest。 主机和虚拟机之间的通信似乎工作正常,但虚拟机无法访问互联网,反之亦然。
我的提供者也有规定每个交换机端口只有一个MAC地址。 本质上,VMAC地址用于networking设备(如VRRP和其他一些协议)中的故障转移,这意味着如果第一台交换机发生故障,则第二台交换机将切换到另一台交换机,您将获得实际MAC地址和所有内容的“复制”交换机端口。
我不明白你怎么能从中受益。
最好的解决scheme是在主机以太网接口上放置2个公用IP,其次为VM放置一个。 并做一些政策路线。
问候