Назад | Перейти на главную страницу

iptables и виртуальные машины KVM, без ping, без ssh с ВМ

Всем привет :) У меня две виртуальные машины KVM. Я сделал два псевдонима для eth0 - eth0: 0 и eth0: 1 и поместил их на внешние IP-адреса (eth0: 0 - 89.114.122.3, eth0: 1 - 89.114.122.4). Теперь проблема: перенаправление с IP 89.114.122.3 и 89.114.122.4 IP на виртуальные внутренние адреса (мост virbr0) виртуальных машин, полученных для dhcp ... Мне нравится это:

Host_address = 89.114.122.3

Host_port = 23

Guest_ipaddr = 192.168.122.86

Guest_port = 23

iptables -t nat -A PREROUTING -p tcp -d $ {Host_address} --dport $ {Host_port} -j DNAT \ --to $ {Guest_ipaddr}: $ {Guest_port}

iptables -I FORWARD -d $ {Guest_ipaddr} / 32 -p tcp -m state --state NEW \ -m tcp --dport $ {Guest_port} -j ACCEPT

на основе ручного скрипта: http://wiki.libvirt.org/page/Networking#NAT_forwarding_.28aka_.22virtual_networks.22.29

и из WAN мои виртуальные машины выглядят хорошо, но если я сделаю это в сеансе виртуальной машины:

deploy @ bothunter: ~ $ telnet domain.in 23 Попытка 89.114.122.3 ... Тайм-аут соединения

В чем дело?

Ну я понял, в чем дело: у меня маршрут: 89.114.150.3 (eth0: 0) -> 192.168.122.1 (virbr0) -> 192.168.122.5 (vint0). И свой маршрут в iptables я переписываю так:

iptables -t nat -A PREROUTING -p tcp -d 89.114.150.3 --dport 80 -j DNAT --to 192.168.122.1:80
iptables -t nat -A PREROUTING -p tcp -d 192.168.122.1 --dport 80 -j DNAT --to 192.168.122.5:80

iptables -I FORWARD -d 192.168.122.5/32 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

iptables -t nat -A POSTROUTING -p tcp -s 192.168.122.5 --sport 80 -j SNAT --to-source 192.168.122.1 iptables -t nat -A POSTROUTING -p tcp -s 192.168.122.1 --sport 80 - j SNAT - к источнику 89.114.150.3

Но у меня новая проблема - тоже не работает ... Почему?