У меня есть единственный хост NIC на Centos 7, который я хочу сделать виртуализацией с помощью KVM-Qemu.
IP-адрес хоста
192.168.1.110
и интерфейс enp0s31f6
Я удалил конфигурацию NAT "по умолчанию" из libvirt.
Затем я создал 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 нат -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
в гостях у меня 2 vm, vm1 прикреплены к обоим int
и ext
интерфейс, vm2 прилагается с int
интерфейс.
vm1
eth0 10.1.1.12/24
eth1 172.16.2.12/24 ( I left the dns column blank)
vm2
eth0 10.1.1.13/24
и я использую NetworkManager для управления сетью.
vm2 не будет подключаться к внешнему миру или пинговать другого гостя (vm1), даже если я позволю DHCP назначить адрес. тем не мение, если я подключил vm2 с интерфейсом ext и позволил DHCP назначить IP, он сможет подключиться и пинговать с внешним миром. (это тоже было в vm1)
Когда я назначаю статический IP-адрес vm1 и vm2, соединение прекращается.
Я добавил interface=int
и попробуй с interface=virbr0
Также в /etc/dnsmasq.conf
но все равно ничего не происходит.
По сути, я хочу, чтобы как ext, так и int могли подключаться к Интернету, он используется только для разделения функций.
Любая помощь приветствуется.
Таблицы ввода и вывода используются для локальных процессов на главном сервере. Виртуальные машины не являются локальными процессами.
В таблице вперед переместить следующую строку в конец таблицы:
REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
В выходной таблице много дубликатов, и все правила и разрешения по умолчанию разрешают все.