
Я пытаюсь настроить сервер шлюза в своей облачной сети, чтобы все мои серверы (некоторые из которых не имеют внешнего IP-адреса) могли выходить в Интернет через этот сервер шлюза.
Чтобы добиться этого, моей первой задачей будет вручную настроить сетевые интерфейсы на моих серверах и задать свойства шлюза.
Итак, этот первый сервер, который я пытаюсь настроить, — это веб-сервер Ubuntu 16.04, который имеет как публичный, так и частный сетевой интерфейс. Я пошел дальше и обновил /etc/network/interfaces следующим образом:
auto lo
iface lo inet loopback
# public interface - to be used only for inbound access
auto eth0
iface eth0 inet static
address 94.237.40.154
netmask 255.255.252.0
# internal interface - this is where it will get internet
auto eth1
iface eth1 inet static
address 10.5.0.155
netmask 255.255.252.0
gateway 10.5.2.135 # my gateway server
dns-nameservers 8.8.8.8
# unused interface - this was there from before
auto eth2
iface eth2 inet6 auto
Итак, как только я это сохраняю и перезагружаю сервер, любое входящее соединение с сервером по внешнему IP перестает работать. В настоящее время у меня открыты порты 80 и 22 на этом сервере, и оба они просто перестают работать.
Я добрался до сервера с помощью облачной консоли, и он прекрасно получает доступ в Интернет через мой шлюзовой сервер (пробовал выполнить traceroute, и все работает хорошо). Оба моих интерфейса работают и показывают правильную конфигурацию IP в "ifconfig". Но входящего доступа нет вообще. Если я снова верну свои настройки на использование DHCP, все будет работать нормально.
У меня тоже была эта проблема в прошлом на локальном сервере, но я так и не смог понять, что я упускаю. Помощь признательна.
EDIT: Еще одно наблюдение. Если я устанавливаю шлюз по умолчанию на eth0 и удаляю его из eth1, то входящий доступ начинает работать.