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

Маршрутизация виртуального окна Linux

Извините за основной вопрос, но я не могу понять этого. Я хочу создать небольшую сеть серверов Linux для тестирования.

Итак, у меня есть хост-сервер с виртуальным ящиком со следующим интерфейсом:

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.4  netmask 255.255.255.0  broadcast 192.168.0.255

Then a guest vm with the following networking set up:
eth0      Link encap:Ethernet  HWaddr 08:00:27:EA:15:4F  
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0

eth1      Link encap:Ethernet  HWaddr 08:00:27:E3:E2:BC  
          inet addr:172.16.0.1  Bcast:172.16.7.255  Mask:255.255.248.0

И второй гость vm настроен следующим образом:

eth0      Link encap:Ethernet  HWaddr 08:00:27:15:CA:14  
          inet addr:172.16.0.2  Bcast:172.16.7.255  Mask:255.255.248.0
          inet6 addr: fe80::a00:27ff:fe15:ca14/64 Scope:Link

Я хочу иметь возможность выполнять маршрутизацию с vm 2 обратно на хост-сервер. Итак, я создал маршрут, сообщающий vm 2, что нужно отправлять трафик для 192.169.0.0 сеть через vm 1:

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     172.16.0.1      255.255.255.0   UG    0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

Но я не могу дозвониться до 192.168.0.0 сеть из vm 2. Таблица маршрутизации на vm 1 выглядит следующим образом:

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.248.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.0.1     0.0.0.0         UG    0      0        0 eth0

таблица маршрутизации на хост-сервере (на котором запущен виртуальный ящик):

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

поэтому я предполагаю, что моя проблема в том, что хост-сервер ничего не знает о моей виртуальной машине 172.16.0.0/16 сеть и не могу ответить.

Как я могу это исправить, мне придется использовать iptables и NAT?

Я когда-либо делал это только с хостом Windows и гостями Linux, но принцип должен быть таким же.

Проверьте следующую ссылку, особенно в сети только для хоста

http://www.virtualbox.org/manual/ch06.html#networkingmodes

Мне вообще не нужно было редактировать маршруты этим методом.

Другой путь, который вы, возможно, захотите изучить, - использовать Vagrant. http://www.vagrantup.com/ Он отлично подходит для тестирования различных конфигураций и очень быстрой настройки новых виртуальных машин. Удачи