我目前正在设置带有多个 VM 客户机的 KVM。我创建了第一个,但已经遇到了第一个问题:
root@vm1:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
From 88.140.40.50: icmp_seq=2 Redirect Host(New nexthop: 88.140.40.1)
From 88.140.40.50: icmp_seq=3 Redirect Host(New nexthop: 88.140.40.1)
那么显然主机配置不正确?
主机-/etc/network/interfaces:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 88.140.40.50
netmask 255.255.0.0
gateway 88.140.40.1
pointopoint 88.140.40.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_hello 2
bridge_maxage 12
bridge_maxwait 0
up route add -host 192.168.0.1 dev br0
192.168.0.1 是来自客户虚拟机的 IP。
主机-iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 192.168.0.1 anywhere
ACCEPT all -- anywhere 192.168.0.1
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
访客-/etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.255
gateway 88.140.40.50
pointopoint 88.140.40.50
访客-/etc/resolv.conf
nameserver 88.140.40.50
nameserver 88.140.40.1
答案1
您遗漏了一些有关网络的关键点,而非严格意义上的虚拟化相关点。
您需要在主机上配置伪装(NAT)(取决于发行版,搜索通用网关操作方法),否则它将不起作用。
答案2
我相信有了桥接,你仍然需要启用转发echo 1 > /proc/sys/net/ipv4/ip_forward
(编辑/etc/sysctl.conf
以使其在重启后继续存在)。
此外,为了让互联网的回复能够返回到您的虚拟机,您需要设置 NAT。NAT 将使互联网将您的虚拟机的 IP 地址视为公共 IP,以便数据包能够找到返回的路径。
答案3
奇怪的是,您有一个私有 IP(192.168.0.1)和一个公共 IP(88.140.40.50)。您在防火墙上添加了 NAT 吗?您可以ping 88.140.40.50
检查您的 pointopoint 是否正常工作吗?