Позвольте мне начать с грубой сетевой диаграммы.
Внутренний коммутатор уровня 3 (несколько VLANS, включая сеть 172.16.220.0) -> Внутренняя сеть (172.16.220.0/24) -> eth1 (172.16.220.100) -Ubuntu 10.04 VM-eth0 (192.168.1.100) -> NATed сеть (192.168.1.0/24) -> ASA -> ISP.
Вот проблема, с которой я столкнулся на двух разных серверах. Я построил серверы только с одним интерфейсом, eth0, который подключен к внутреннему интерфейсу ASA. Затем я добавил еще один интерфейс для внутренней сети 172.16.220.0. У меня был установлен шлюз на eth0, а не на eth1 в / etc / network / interfaces. Я мог получить доступ к серверу извне, но не изнутри. Если бы я удалил шлюз из eth0 и установил его для eth1, конечно, я мог бы получить к нему доступ из внутреннего, но не внешнего.
Я попытался настроить маршрутизацию на основе политик, чтобы любой трафик из внутренней сети (несколько vlan - 172.16.0.0/16) направлялся обратно на eth1, но это не сработало. Очевидно, что я упустил часть этой головоломки и, вероятно, неправильно настроил эти серверы. Может ли кто-нибудь помочь мне заставить это работать, чтобы я мог получить доступ к серверу как извне, так и изнутри. Я расстраиваюсь из-за того, что мне нужно использовать соединение 3G с SSH на моих серверах для настройки !!
Вот моя конфигурация / etc / network / interfaces:
# This file describes the network interfaces available on your system
auto loopback network interface
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
# gateway 192.168.1.1
auto eth1
iface eth1 inet static
address 172.16.220.100
netmask 255.255.255.0
gateway 172.16.220.1
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
и моя таблица маршрутизации ядра:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
172.16.220.0 * 255.255.255.0 U 0 0 0 eth1
default 172.16.220.1 0.0.0.0 UG 100 0 0 eth1
Я пробовал включить пересылку IPv4 в /etc/sysctl.conf, но это тоже не сработало.
Если что-нибудь еще понадобится, просто дайте мне знать.
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ - добавлена таблица маршрутизации ядра после установки статического маршрута, предложенного фейкер
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.220.0 172.16.220.1 255.255.255.0 UG 0 0 0 eth1
172.16.220.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
Я думаю, что taker находится на правильной линии со статическими маршрутами, однако он указывает маршрут к подсети, в которой находится сервер, неверно. Я думаю, что вам нужно установить свой шлюз на 192.168.1.1, а затем создать статический маршрут для каждой из ваших подсетей (vlan), используя адрес маршрутизатора 172 в качестве шлюза. Если вам нужно более подробное объяснение того, какие команды вводить, перечислите все свои подсети, и я попытаюсь создать для вас таблицу маршрутизации утром на моем компьютере, а сейчас на телефоне, так что это немного сложно!
Немного сбивает с толку, но похоже, что вам нужно подключиться к своей виртуальной машине с хост-сервера и наоборот.
В виртуальной машине добавьте статический маршрут
маршрут добавить -net 172.16.220.0 сетевая маска 255.255.255.0 172.16.220.100
На хосте:
маршрут добавить -net 192.168.1.0 маска сети 255.255.255.0 192.168.1.100
Хотя, скорее всего, я ошибаюсь.
Если я все правильно понял:
Очевидно, у вас может быть только один шлюз по умолчанию.
Вы хотите иметь шлюз по умолчанию на eth0 (это ваша внешняя сеть, верно?).
Чтобы достичь внутренних сетей, вам необходимо настроить статический маршрут, например:
route add -net 172.16.X.0 netmask 255.255.0.0 gw 172.16.220.1 dev eth1
Проверьте, работает ли он, и сделайте его постоянным (не знаю, как это делается в Ubuntu).
И кстати. у вас установлен eth0 дважды в / etc / network / interfaces.