Назад | Перейти на главную страницу

2 NIC 2 шлюза один маршрутизатор один интернет-шлюз

У меня роутер с двумя сетками

eth0: 192.168.1.0/24, шлюз по умолчанию 192.168.1.1

eth2: 10.0.88.0/24, шлюз по умолчанию - 10.0.88.1

Обе сети используют шлюз 192.168.2.1 для подключения к Интернету, подключенный к маршрутизатору через третий интерфейс. Все серверы из обеих сетей, имеющие по одному Nic, могут правильно пинговать любой адрес.

Теперь мне нужно настроить несколько серверов ubuntu с двумя сетевыми адаптерами, по одной ноге в каждой сети (eno1 в 192.168.1.0 и eno4 в 10.0.88.0). Следовательно, я использовал iproute2 и имел следующую конфигурацию:

ip route show
default via 192.168.1.1 dev eno1 onlink
10.0.88.0/24 dev eno4  proto kernel  scope link  src 10.0.88.11
192.168.1.0/24 dev eno1  proto kernel  scope link  src 192.168.1.14

и

ip route show table mng
default via 10.0.88.1 dev eno4 
10.0.88.0/24 dev eno4  scope link  src 10.0.88.11

Правила установлены следующим образом

ip rule show
0:  from all lookup local 
32760:  from all to 10.0.88.11 lookup mng
32761:  from 10.0.88.11 lookup mng 
32762:  from all lookup main
32763:  from all lookup default 

Кроме того, я установил свой rp_filter на 1 для всех сетей / сетевых устройств.

Теперь к вопросу: я могу успешно пропинговать шлюзы по умолчанию на обоих интерфейсах.

Я могу успешно пропинговать свой интернет-шлюз из сети eno1

ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=63 time=0.572 ms
(...)

но я НЕ могу пропинговать интернет-шлюз из сети eno4:

ping -I eno4 192.168.2.1
PING 192.168.2.1 (192.168.2.1) from 10.0.88.11 eno4: 56(84) bytes of data.
From 10.0.88.11 icmp_seq=1 Destination Host Unreachable

Это также подтверждается командой:

ip neigh show
(...)
192.168.2.1 dev eno4  FAILED
(...)

Что мне нужно, чтобы eno4 мог подключаться к моему шлюзу в Интернет (и любому другому Интернет-адресу) через шлюз по умолчанию?

Заранее большое спасибо за любой ответ

С уважением

br

Есть два момента, которые следует учитывать, если я все понял.

  1. Ваш главный шлюз в 192.168.2.1 нужно знать, как получить доступ к 10.0.88.0/24 и 192.168.1.0/24 сети.
    Это можно установить либо с помощью iptables и masquerading на маршрутизаторе с двумя цепями или с простыми таблицами маршрутизации.
    В случае masquerading, ваш шлюз в 192.168.2.1 будет получать пакеты только от маршрутизатора (с двумя цепями) третьего интерфейса ( 192.168.2.??? ) потому что адреса переписываются и все работает нормально.
    Если вы не используете masquerading, затем ваш шлюз в 192.168.2.1 получит пакеты от 192.168.1.0/24 и 10.0.88.0/24 прямо. Если ваш шлюз в 192.168.2.1 не имеет маршрутов к этим подсетям, тогда он выберет маршрут по умолчанию.
    Так что это зависит от вашей конфигурации на маршрутизаторе с двумя цепями.

  2. На ваших серверах Ubuntu default via 10.0.88.1 dev eno4 запись в mng таблица должна быть достаточной. Затем вам нужно указать правилу маршрутизации использовать mng для трафика, полученного от 10.0.88.0/24 подсеть.

    ip rule add from 10.0.88.0/24 table mng
    

    Затем добавьте правило для использования mng стол для всего, что следует оставить eno4.

    ip rule add oif eno4 table mng