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

Таблица маршрутизации с двумя адаптерами NIC в libvirt / KVM

Я создал виртуальную сеть NAT (сеть 192.168.100.0/24) в моей libvirt и новую гостевую систему с двумя интерфейсами - один в этой сети, другой как мост (сеть 10.34.1.0/24) с локальной LAN. Причина этого мне нужно у меня есть собственная виртуальная сеть для моего тестирования DHCP / TFTP / DNS и все еще хотите получить доступ к моему гостю извне из моей локальной сети. В обеих сетях у меня работает DHCP, обе дают им IP-адреса.

Когда я настраиваю переадресацию портов NAT (например, для ssh), я могу подключиться к eth0 (виртуальной сети), все в порядке.

Но когда я пытаюсь получить доступ к eth1 через мостовой интерфейс, у меня нет ответа. Думаю, у меня проблема с таблицей маршрутизации - исходящие пакеты направляются в виртуальную сеть NAT (у которой есть доступ к машине, с которой я подключаюсь - я могу ее пропинговать). Но я не уверен, верна ли эта настройка. Я думаю мне нужно добавить что-нибудь в мою таблицу маршрутизации.

# ifconfig 
eth0      Link encap:Ethernet  HWaddr 52:54:00:B4:A7:5F  
          inet addr:192.168.100.14  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:feb4:a75f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16468 errors:0 dropped:27 overruns:0 frame:0
          TX packets:6081 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22066140 (21.0 MiB)  TX bytes:483249 (471.9 KiB)
          Interrupt:11 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 52:54:00:DE:16:21  
          inet addr:10.34.1.111  Bcast:10.34.1.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fede:1621/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:34 errors:0 dropped:0 overruns:0 frame:0
          TX packets:189 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4911 (4.7 KiB)  TX bytes:9

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.34.1.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth0

Сеть, из которой я пытаюсь подключиться, отличается от сети, к которой подключен гипервизор: 10.36.0.0. Но он доступен из этой сети. Итак, я попытался добавить новое правило маршрута:

route add -net 10.36.0.0 netmask 255.255.0.0 dev eth1

И это не работает. Я думал, что достаточно установить правильный интерфейс. Что нужно для прохождения моих пакетов?

Так что проблема действительно была в NAT. Я изменил свой маршрут по умолчанию на второй (мостовой) интерфейс, и он сработал. Кстати, если вам действительно нужны два маршрута по умолчанию, это возможно:

http://kindlund.wordpress.com/2007/11/19/configuring-multiple-default-routes-in-linux/