У меня роутер с двумя сетками
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
Есть два момента, которые следует учитывать, если я все понял.
Ваш главный шлюз в 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
не имеет маршрутов к этим подсетям, тогда он выберет маршрут по умолчанию.
Так что это зависит от вашей конфигурации на маршрутизаторе с двумя цепями.
На ваших серверах 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