Здравствуйте уважаемые! Прошу Вас помочь разобраться с моей бедой. Суть проблемы: Имеется хост машина на Ubuntu 10.04, она же шлюз для локальной сети, файрволл. На ней запустил в виртуалке KVM гостевую ОС Debian 7.01 (веб сервер) Хост машина имеет белый адрес Виртуалка имеет белый адрес из той же сети, но сам адрес другой. На хост машине сделан бридж на виртуальную от сетевого интерфейса с белым адресом. Долго бившись с непонятками, я понял одну вещь. Если на хост машине(шлюз для локалки) стоит проброс на какой-либо порт в локалку, и если этот же порт слушает виртуалка, то при обращении на адрес виртуалки, пакет уходит по правилам проброса в локалку. К примеру: Хост машина br0(внешний ифейс с белым адресом) ip 1.2.3.4 eth0 (ифейс смотрящий в локалку) 192.168.0.1 В iptables стоит проброс 80го порта с br0 на IP 192.168.0.2(веб сервер в локалке) Виртуалка: eth0 (с белым адресом) ip 1.2.3.40 lo ---------- При обращении браузером на 1.2.3.40:80(внешний адрес виртуалки) меня забрасывает на веб сервер в локалке 192.168.0.2:80 взаместо веб сервера который стоит на виртуалке. Если пробросы портов на хост машине убрать, то все работает как и должно быть.
Как такое вообще может быть? Что за бред? Если такую же схему строить на виндовом VirtualBOX то порты хост машины никак не пересекаются с виртуалкой.
Ниже привожу конфиг iptables хост машины:
# Generated by iptables-save v1.4.4 on Fri Aug 16 08:40:43 2013
*mangle
:PREROUTING ACCEPT [75620532:66002994766]
:INPUT ACCEPT [20401451:18477124151]
:FORWARD ACCEPT [55223344:47526163646]
:OUTPUT ACCEPT [18903639:10772374931]
:POSTROUTING ACCEPT [74203747:58304927631]
COMMIT
# Completed on Fri Aug 16 08:40:43 2013
# Generated by iptables-save v1.4.4 on Fri Aug 16 08:40:43 2013
*filter
:INPUT ACCEPT [20401451:18477124151]
:FORWARD ACCEPT [55223344:47526163646]
:OUTPUT ACCEPT [18903554:10772364375]
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Fri Aug 16 08:40:43 2013
# Generated by iptables-save v1.4.4 on Fri Aug 16 08:40:43 2013
*nat
:PREROUTING ACCEPT [722811:50066135]
:POSTROUTING ACCEPT [358360:25818346]
:OUTPUT ACCEPT [454848:36812591]
-A PREROUTING -i br0 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 192.168.0.253
-A PREROUTING -i br0 -p tcp -m tcp --dport 5222 -j DNAT --to-destination 192.168.0.252
-A PREROUTING -i br0 -p tcp -m tcp --dport 5269 -j DNAT --to-destination 192.168.0.252
-A PREROUTING -i br0 -p gre -j DNAT --to-destination 192.168.0.253
-A PREROUTING -s XX.XXX.XXX.XX/32 -i br0 -p tcp -m tcp --dport 5060 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s XX.XXX.XXX.XX/32 -i br0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s XX.XXX.XXX.XX/32 -i br0 -p udp -m udp --dport 9000:20000 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s YYY.YY.YY.Y/32 -i br0 -p udp -m udp --dport 9000:20000 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s YYY.YY.YY.Y/32 -i br0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s YYY.YY.YY.Y/32 -i br0 -p tcp -m tcp --dport 5060 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -i br0 -p tcp -m tcp --dport 3001 -j DNAT --to-destination 192.168.0.13
-A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.0.252
-A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.0.252
-A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.252
-A PREROUTING -s XY.YY.XXX.46/32 -i br0 -p tcp -m tcp --dport 4569 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s XY.YY.XXX.46/32 -i br0 -p udp -m udp --dport 4569 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s ZZ.XYZ.YY.150/32 -i br0 -p tcp -m tcp --dport 4569 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s ZZ.XYZ.YY.150/32 -i br0 -p udp -m udp --dport 4569 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s AA.BB.CC.29/32 -i br0 -p tcp -m tcp --dport 4569 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s AA.BB.CC.29/32 -i br0 -p udp -m udp --dport 4569 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s DD.FFF.XXX.6/32 -i br0 -p tcp -m tcp --dport 5060 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s DD.FFF.XXX.6/32 -i br0 -p udp -m udp --dport 5060 -j DNAT --to-destination 192.168.0.216
-A PREROUTING -s DD.FFF.XXX.6/32 -i br0 -p udp -m udp --dport 9000:20000 -j DNAT --to-destination 192.168.0.216
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
-A POSTROUTING -s 192.168.5.0/24 -j MASQUERADE
COMMIT
# Completed on Fri Aug 16 08:40:43 2013
Ifconfig
br0 Link encap:Ethernet HWaddr 78:e3:b5:fc:5f:f7
inet addr:XX.YY.ZZ.253 Bcast:XX.YY.ZZ.255 Mask:255.255.255.0
inet6 addr: fe80::7ae3:b5ff:fefc:5ff7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:44576133 errors:0 dropped:0 overruns:0 frame:0
TX packets:41379279 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:41463078429 (41.4 GB) TX bytes:30560125562 (30.5 GB)
eth0 Link encap:Ethernet HWaddr 78:e3:b5:fc:5f:f6
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::7ae3:b5ff:fefc:5ff6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:388615077 errors:0 dropped:10 overruns:0 frame:4
TX packets:415367524 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:286066760479 (286.0 GB) TX bytes:341323070112 (341.3 GB)
Interrupt:16
eth0:0 Link encap:Ethernet HWaddr 78:e3:b5:fc:5f:f6
inet addr:192.168.0.201 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:16
eth1 Link encap:Ethernet HWaddr 78:e3:b5:fc:5f:f7
inet6 addr: fe80::7ae3:b5ff:fefc:5ff7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:462370372 errors:3 dropped:0 overruns:0 frame:17
TX packets:421590293 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:412339313699 (412.3 GB) TX bytes:293060052353 (293.0 GB)
Interrupt:17
eth6 Link encap:Ethernet HWaddr 00:1b:21:39:86:95
inet addr:192.168.5.254 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::21b:21ff:fe39:8695/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:56153 errors:0 dropped:0 overruns:0 frame:0
TX packets:186742 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4898347 (4.8 MB) TX bytes:149654003 (149.6 MB)
Память:df920000-df940000
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:144900 errors:0 dropped:0 overruns:0 frame:0
TX packets:144900 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:18025495 (18.0 MB) TX bytes:18025495 (18.0 MB)
ppp0 Link encap:Протокол PPP (Point-to-Point Protocol)
inet addr:192.168.138.2 P-t-P:192.168.138.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1410 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:57 (57.0 B) TX bytes:48 (48.0 B)
tap0 Link encap:Ethernet HWaddr c6:67:b8:d7:98:ba
inet addr:192.168.253.1 Bcast:192.168.253.255 Mask:255.255.255.0
inet6 addr: fe80::c467:b8ff:fed7:98ba/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1880943 errors:0 dropped:0 overruns:0 frame:0
TX packets:2652177 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:993190780 (993.1 MB) TX bytes:1898998791 (1.8 GB)
virbr0 Link encap:Ethernet HWaddr 6a:8b:27:97:0d:fa
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::688b:27ff:fe97:dfa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:84252 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:8289848 (8.2 MB)
vnet0 Link encap:Ethernet HWaddr fe:54:00:5a:53:91
inet6 addr: fe80::fc54:ff:fe5a:5391/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1293193 errors:0 dropped:0 overruns:0 frame:0
TX packets:2509417 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:118258869 (118.2 MB) TX bytes:3268912939 (3.2 GB)
Оффтоп: Пытался закрыть все под спойлер, но почему-то лоркод [cut]text[/cut] не работает. Ниже приведен пример скопированной строки с используемым лоркодом со страницы http://www.linux.org.ru/wiki/en/Lorcode
Текст, который будет скрыт внутри спойлера