У меня есть сервер Debian 7 с 5 открытыми IP-адресами. На сервере у меня несколько гостей KVM (все Debian 8). Один из гостей должен быть общедоступным с использованием одного из общедоступных IP-адресов. У этого есть IP-адрес 192.168.122.133
и все другие гости имеют IP-адреса в диапазоне 192.168.122.50/28
.
В настоящее время он настроен так, что гости могут общаться друг с другом, однако внешние входящие и исходящие соединения не работают с гостем, который должен быть общедоступным (работают только подключения из локальной сети).
Это правила, которые, как я считаю, должны перенаправлять весь входящий и исходящий трафик этому гостю и от него, но, похоже, он не делает то, что должен:
/sbin/iptables -t nat -I PREROUTING -d 111.111.111.133 -j DNAT --to 192.168.122.133
/sbin/iptables -t nat -I POSTROUTING -s 192.168.122.133 -j SNAT --to 111.111.111.133
/sbin/iptables -t filter -I FORWARD -d 192.168.122.133 -j ACCEPT
/sbin/iptables -t filter -I FORWARD -s 192.168.122.133 -j ACCEPT
Ранее я настроил это, и я уверен, что в какой-то момент он работал правильно, но я мог что-то изменить, или какое-то обновление системы могло бы что-то изменить, и теперь это не работает.
Больше информации:
Сеть KVM настроена:
<network>
<name>default</name>
<uuid>261764e8-ef0c-dc57-90b5-4c356ae12bf1</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0' />
<mac address='52:54:00:77:D9:2B'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254' />
</dhcp>
</ip>
</network>
И конфигурации гостевой сети таковы:
<interface type='network'>
<mac address='52:54:00:61:d9:ba'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
Вот мой /etc /network /interfaces на хост-сервере:
# The loopback network interface
auto lo
auto eth3
auto eth3:0
auto eth3:1
auto eth3:2
auto eth3:3
iface lo inet loopback
# The primary network interface
allow-hotplug eth3
iface eth3 inet static
address 111.111.111.130
netmask 255.255.255.248
network 111.111.111.128
broadcast 111.111.111.135
gateway 111.111.111.129
dns-nameservers 8.8.8.8 8.8.4.4 127.0.0.1
iface eth3:0 inet static
address 111.111.111.131
netmask 255.255.255.248
iface eth3:1 inet static
address 111.111.111.132
netmask 255.255.255.248
iface eth3:2 inet static
address 111.111.111.133
netmask 255.255.255.248
iface eth3:3 inet static
address 111.111.111.134
netmask 255.255.255.248
Гости настроены со статическими IP-адресами. Например:
iface eth0 inet static
address 192.168.122.133
netmask 255.255.255.0
network 192.168.122.0
broadcast 192.168.122.255
gateway 192.168.122.1
dns-nameservers 192.168.122.1
Я считаю, что это то, что позволяет гостям, которые не должны быть доступны из Интернета, иметь доступ к Интернету (адаптировано отсюда) - обратите внимание, что они находятся в немного другом диапазоне IP:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.50/28 ! -d 192.168.122.50/28 -p tcp -j MASQUERADE --to-ports 1024-65535
/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.50/28 ! -d 192.168.122.50/28 -p udp -j MASQUERADE --to-ports 1024-65535
/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.50/28 ! -d 192.168.122.50/28 -j MASQUERADE
/sbin/iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -t filter -A FORWARD -s 192.168.122.50/28 -i virbr0 -j ACCEPT
/sbin/iptables -t filter -A INPUT -s 192.168.122.50/28 -i virbr0 -j ACCEPT