我在 Centos 7 上有一个单 NIC 主机,我想使用 KVM-Qemu 进行虚拟化。
主持人
主机 IP 是
192.168.1.110
并且接口是enp0s31f6
我已经从 libvirt 中删除了“默认” NAT 配置。
然后我从 virt-manager 创建了 2 个接口,分别是
virsh 网络表
Name State Autostart Persistent
----------------------------------------------------------
ext active yes yes
int active yes yes
virsh net-dumpxml ext
<network connections='1'>
<name>ext</name>
<uuid>99ea2f5d-8557-4141-9e90-0ac0619a6261</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr2' stp='on' delay='0'/>
<mac address='52:54:00:41:32:d9'/>
<domain name='ext'/>
<ip address='172.16.2.1' netmask='255.255.255.0'>
<dhcp>
<range start='172.16.2.128' end='172.16.2.254'/>
</dhcp>
</ip>
</network>
virsh net-dumpxml int
<network connections='2'>
<name>int</name>
<uuid>bcc129a2-0d06-4a44-903b-60181f7cbb48</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr3' stp='on' delay='0'/>
<mac address='52:54:00:ef:7a:ee'/>
<domain name='int'/>
<ip address='10.1.1.1' netmask='255.255.255.0'>
<dhcp>
<range start='10.1.1.128' end='10.1.1.254'/>
</dhcp>
</ip>
</network>
路线-n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 enp0s31f6
10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr3
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 enp0s31f6
172.16.2.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr2
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s31f6
iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 10.1.1.0/24 224.0.0.0/24
0 0 RETURN all -- * * 10.1.1.0/24 255.255.255.255
0 0 MASQUERADE tcp -- * * 10.1.1.0/24 !10.1.1.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 10.1.1.0/24 !10.1.1.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 10.1.1.0/24 !10.1.1.0/24
0 0 RETURN all -- * * 172.16.2.0/24 224.0.0.0/24
0 0 RETURN all -- * * 172.16.2.0/24 255.255.255.255
0 0 MASQUERADE tcp -- * * 172.16.2.0/24 !172.16.2.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 172.16.2.0/24 !172.16.2.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 172.16.2.0/24 !172.16.2.0/24
0 0 RETURN all -- * * 172.16.2.0/24 224.0.0.0/24
0 0 RETURN all -- * * 172.16.2.0/24 255.255.255.255
0 0 MASQUERADE tcp -- * * 172.16.2.0/24 !172.16.2.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 172.16.2.0/24 !172.16.2.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 172.16.2.0/24 !172.16.2.0/24
0 0 RETURN all -- * * 10.1.1.0/24 224.0.0.0/24
0 0 RETURN all -- * * 10.1.1.0/24 255.255.255.255
0 0 MASQUERADE tcp -- * * 10.1.1.0/24 !10.1.1.0/24 masq ports: 1024-65535
0 0 MASQUERADE udp -- * * 10.1.1.0/24 !10.1.1.0/24 masq ports: 1024-65535
0 0 MASQUERADE all -- * * 10.1.1.0/24 !10.1.1.0/24
0 0 MASQUERADE all -- * enp0s31f6 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * enp0s31f6 10.1.1.0/24 0.0.0.0/0
iptables -vnL
Chain INPUT (policy ACCEPT 83 packets, 8441 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 ACCEPT udp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 ACCEPT udp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr2 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 ACCEPT udp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr3 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
41 5578 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * virbr3 0.0.0.0/0 10.1.1.0/24 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr3 * 10.1.1.0/24 0.0.0.0/0
0 0 ACCEPT all -- virbr3 virbr3 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * virbr3 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- virbr3 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * virbr2 0.0.0.0/0 172.16.2.0/24 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr2 * 172.16.2.0/24 0.0.0.0/0
0 0 ACCEPT all -- virbr2 virbr2 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * virbr2 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- virbr2 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * virbr2 0.0.0.0/0 172.16.2.0/24 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr2 * 172.16.2.0/24 0.0.0.0/0
0 0 ACCEPT all -- virbr2 virbr2 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * virbr2 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- virbr2 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * virbr3 0.0.0.0/0 10.1.1.0/24 ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- virbr3 * 10.1.1.0/24 0.0.0.0/0
0 0 ACCEPT all -- virbr3 virbr3 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * virbr3 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 REJECT all -- virbr3 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-is-bridged
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
0 0 ACCEPT all -- enp0s31f6 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- * enp0s31f6 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 36 packets, 4389 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- * virbr3 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ACCEPT udp -- * virbr2 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ACCEPT udp -- * virbr2 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ACCEPT udp -- * virbr3 0.0.0.0/0 0.0.0.0/0 udp dpt:68
10 664 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0
客人
在 Guest 中,我有 2 个虚拟机,虚拟机 1 连接了int
和ext
接口,虚拟机 2 连接了int
接口。
虚拟机1
eth0 10.1.1.12/24
eth1 172.16.2.12/24 ( I left the dns column blank)
虚拟机
eth0 10.1.1.13/24
我正在使用 NetworkManager 来管理网络。
问题是
即使我让 DHCP 分配地址,vm2 也无法连接到外界或 ping 其他客户机(vm1)。然而,如果我将 vm2 连接到“ext”接口并让 DHCP 分配 IP,它就可以连接并 ping 到外界。(这也发生在 vm1 中)
当我为 vm1 和 vm2 分配静态 IP 时,连接停止。
我已经添加了
interface=int
并尝试了interface=virbr0
,/etc/dnsmasq.conf
但仍然没有任何反应。
基本上,我的目的是让ext和int都可以连接到互联网,它仅用于功能分离。
任何帮助都将受到赞赏。
答案1
输入和输出表用于主机服务器上的本地进程。虚拟机不是本地进程。
在前向表中将下一行移动到表尾:
REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
输出表有许多重复,所有规则和默认权限都允许所有。