Рейтинг:0

CentOS 8: два внешних сетевых адаптера, два интернет-провайдера — проблемы с маршрутизацией

флаг pr

Данный: компьютер на базе 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

Текущая ситуация:

  1. Все службы, переадресованные с eth0, работают нормально.
  2. Весь трафик, исходящий из интрасети, проходит нормально.
  3. Все попытки доступа к сервисам из eth2 истекают по таймауту.

В /var/log/messages нет явных подсказок (типа жалоб на "марсианские IP").

Я несколько в недоумении здесь, все советы будут очень кстати.

A.B avatar
флаг cl
A.B
Короче говоря, это требует запоминания исходного пути/маршрута, используемого при соединении с одним и тем же узлом интрасети (например, с того же исходного адреса в Интернете), и извлечения этой запомненной части информации для ответа. Вас все еще интересует этот вопрос?
флаг pr
@A.B Да, так как проблема не решена полностью.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.