Данный: компьютер на базе CentOS 8 с тремя сетевыми адаптерами.
eth0, eth2: внешние, подключенные к двум разным интернет-провайдерам
eth1: сталкивается с домашней сетью (интранет)
Задание: разрешить доступ к определенным внутренним службам от любого интернет-провайдера.Есть несколько сервисов, ниже я упоминаю только SSH.
В конфигах ниже:
IP1: внешний IP у первого провайдера (ISP1), назначенный eth0
Gateway1: IP-адрес шлюза, предоставленный ISP1.
Network1,Netmask1: относится к IP1
IP2: внешний IP у второго провайдера (ISP2), назначенный eth2
Gateway2: IP-адрес шлюза, предоставленный ISP2.
Network2,Netmask2: относится к IP2
LocalSSHIP: IP-адрес в интрасети (eth1), где работает SSH-сервер.
Текущие конфиги следуют. Таблицы маршрутизации:
эхо "200 isp1" >> /etc/iproute2/rt_tables
эхо "201 isp2" >> /etc/iproute2/rt_tables
Политики маршрутизации:
/etc/sysconfig/сетевые скрипты/маршрут-eth0
Network1 dev eth0 src Таблица IP1 isp1
по умолчанию через Gateway1 dev eth0 table isp1
/etc/sysconfig/сетевые скрипты/маршрут-eth2
Network2 dev eth2 src Таблица IP2 isp2
по умолчанию через Gateway2 dev eth2 table isp2
Правила маршрутизации:
/etc/sysconfig/сетевые скрипты/правило-eth0
из таблицы IP1/32 isp1
/etc/sysconfig/сетевые скрипты/правило-eth2
из таблицы IP2/32 isp2
фрагменты iptables. Внешний трафик перенаправляется на локальный SSH-сервер с обоих интерфейсов:
iptables -A PREROUTING -t nat -i eth0 -p tcp -d IP1 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A PREROUTING -t nat -i eth2 -p tcp -d IP2 --dport 22 -j DNAT --to LocalSSHIP:22
iptables -A FORWARD -p tcp -d LocalSSHIP --dport 22 -j ПРИНЯТЬ
eth0 — шлюз по умолчанию:
$ IP-маршрут
по умолчанию через Gateway1 dev eth0 proto static metric 100
по умолчанию через Gateway2 dev eth2 proto static metric 101
...
$ IP-правило
0: из всех локальных поисковых систем
32764: из поиска IP2 isp2
32765: из поиска IP1 isp1
32766: из всех основных поисковых запросов
32767: из всех поисковых запросов по умолчанию
SNAT применяется для трафика, исходящего из eth1:
iptables -t nat -A POSTROUTING -i eth1 -o eth0 -j SNAT --to-source IP1
Текущая ситуация:
- Все службы, переадресованные с eth0, работают нормально.
- Весь трафик, исходящий из интрасети, проходит нормально.
- Все попытки доступа к сервисам из eth2 истекают по таймауту.
В /var/log/messages нет явных подсказок (типа жалоб на "марсианские IP").
Я несколько в недоумении здесь, все советы будут очень кстати.