У меня есть два сервера в частной сети в нашем VPC, оба имеют общедоступные IP-адреса и частную (10.0.0.0/24) подсеть.
sysctl -w net.ipv4.ip_forward=1 && iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ens10
интерфейс для частных сетей и eth0
для публичного IPЯ включил следующие сетевые конфигурации и маршрут на Server 2
для маршрутизации исходящего трафика через Server 1
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address x.x.x.x #public-ip
netmask 32
#Private network interface
auto ens10
iface ens10 inet dhcp
post-up ip route add default via 10.0.0.1
Исходящий трафик работает должным образом, так как я могу без проблем выйти в Интернет и вижу IP-адрес NAT вместо общедоступного IP-адреса Сервера 2.
Но когда я пытаюсь подключиться к серверу 2, используя его общедоступный IP-адрес, то есть для SSH или для доступа к другим портам, он не отвечает. Хотя я могу добраться до Сервера 2 только через локальную сеть.
Кроме того, как только я удалю маршрут post-up IP route add default via 10.0.0.1
Я могу дотянуться до Server 2
через его общедоступный IP-адрес, но также и все исходящие маршруты трафика на основной интерфейс, чего я не хочу.
Похоже, что когда пакеты попадают в eth0 на Сервере 2, они маршрутизируются на шлюз Ens10 10.0.0.1, и, возможно, именно поэтому я не могу ответить, если у меня есть маршрут, о котором я упоминал выше.
Пожалуйста, укажите мне правильное направление, я как бы застрял на этом этапе.
Заранее спасибо.
Вам нужно «разбить туннель»:
Добавьте следующие правила в eth0
конфигурация интерфейса
auto eth0
iface eth0 inet static
address x.x.x.x
netmask 32
post-up ip rule add iif lo from x.x.x.x table 123
post-up ip route add y.y.y.y dev eth0 table 123
post-up ip route add default via y.y.y.y table 123
(y.y.y.y - адрес шлюза)
С указанным выше правилом и таблицей маршрутов (ответ) трафик исходит от самого хоста с публичным адресом, поскольку исходный адрес будет выходить через eth0.
Примечание. После добавления конфигураций вам может потребоваться перезапустить весь сервер, поскольку простой перезапуск сетевых служб может привести к сбою.
Хорошо, я отвечаю себе. Сервер openvpn подталкивает шлюз перенаправления. Я добавил «route-nopull» в параметры клиента, чтобы ограничить трафик с помощью таблицы VPN. Пояснения здесь: Игнорирование шлюза редиректа