Меня это беспокоит пару дней,
У меня две подсети:
192.168.1.0/24: это подсеть, которую использует мой интернет-провайдер / маршрутизатор. Шлюз к глобальной сети - 192.168.1.1 192.168.2.0/24: это подсеть, которую я создал на моей виртуальной машине ESXi 5.
Физическая машина, на которой работает ESXi 5, имеет два сетевых адаптера: один подключен к моему интернет-провайдеру / маршрутизатору, а другой подключен к другому маршрутизатору с отключенным DHCP-сервером. Я использую этот второй маршрутизатор только для того, чтобы поддерживать статус NIC «UP» с точки зрения VMware.
У меня есть виртуальный Ubuntu 10.04 LTS с двумя подключенными к нему сетевыми адаптерами. Идея состоит в том, что это будет сервер как маршрутизатор между двумя подсетями. У меня есть DHCP, работающий на маршрутизаторе Ubuntu, который передает IP-адреса моим виртуальным машинам, используя локальную сеть 192.168.2.0.
Проблема в том, что я не могу заставить маршрутизатор Ubuntu пересылать пакеты из одной подсети в другую. Должен отметить, что перепробовал все возможные комбинации параметров конфигурации, которые только мог придумать. Моя текущая настройка выглядит следующим образом:
Я выполнил команду echo 1 > /proc/sys/net/ipv4/ip_forward
для включения пересылки пакетов.
Мой брандмауэр выглядит так:
root@gRouter:~# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Мой '/ etc / network / interfaces' выглядит так:
root@gRouter:~# cat /etc/network/interfaces
auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 192.168.1.105
network 192.168.1.0
netmask 255.255.255.0
up ip route add 192.168.2.0/24 via 192.168.1.105
iface eth1 inet static
address 192.168.2.2
network 192.168.2.0
netmask 255.255.255.0
up ip route add 192.168.1.0/24 via 192.168.2.2
С этого маршрутизатора с двумя сетевыми адаптерами я могу пинговать между виртуальными машинами в подсети 192.168.2.0 и я могу пинговать между виртуальными машинами и физическими машинами в подсети 192.168.1.0. Но я не могу пинговать из одной подсети в другую.
Моя таблица маршрутов выглядит так:
root@gRouter:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.2.0 * 255.255.255.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
Мой arp в настоящее время выглядит так:
root@gRouter:~# arp -v
Address HWtype HWaddress Flags Mask Iface
192.168.2.13 ether 00:0c:29:30:f4:d9 C eth1
192.168.2.10 ether 00:0c:29:bf:60:a3 C eth1
192.168.1.64 ether 38:59:f9:e7:a0:f5 C eth0
Entries: 3 Skipped: 0 Found: 3
Когда я пытаюсь выполнить эхо-запрос с машины в подсети 192.168.2.0 на машину в подсети 192.168.1.0, я сразу получаю сообщение об ошибке «Подключиться: сеть недоступна».
Когда я пытаюсь выполнить эхо-запрос с машины в подсети 192.168.1.0 на машину в подсети 192.168.2.0, первый эхо-запрос инициируется, но он просто зависает на неопределенное время.
Извините за длинный пост, надеюсь, я дал достаточно информации. Очень благодарен за любую помощь.
Заранее спасибо.
У вас нет способа передать пакеты машине, выполняющей маршрутизацию. Машины в каждой сети должны знать, что интерфейс маршрутизатора в их сети является их шлюзом к другой сети.
Самый простой способ сделать это - добавить статический маршрут к шлюзу по умолчанию в каждой сети. Например, если маршрутизатор - 192.168.1.10/24 и 192.168.2.20/24, а шлюзы по умолчанию для этих двух сетей - 192.168.1.1 и 192.168.2.1, то вам необходимо добавить следующие два статических маршрута:
1) На 192.168.1.1 вам нужен маршрут до 192.168.2.0/24 со шлюзом 192.168.1.10
2) На 192.168.2.1 вам нужен маршрут до 192.168.1.0/24 со шлюзом 192.168.2.20
Таким образом, когда машины в одной из сетей отправляют пакеты для другой сети на свой шлюз по умолчанию, шлюз по умолчанию будет знать, что нужно отправлять пакеты на маршрутизатор, который соединяет две сети.
Вам необходимо создать соответствующую магистраль для совместной маршрутизации двух подсетей. Без правил брандмауэра для ACCEPT, DENY, DROP пакетов для любого интерфейса вы, конечно, не получите никакого соединения между двумя подсетями.
Начните читать некоторые правила IPFW / IPTABLES.
http://forum.codecall.net/topic/48557-help-with-iptables-2-nics-2-subnets/