У меня есть маршрутизатор с двумя сетями
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
и маскировки
на маршрутизаторе с двумя цепями, либо с помощью простых таблиц маршрутизации.
В случае маскировки
, ваш шлюз по адресу 192.168.2.1
будет получать пакеты только от маршрутизатора (с двумя цепями) третьего интерфейса ( 192.168.2. ?? ?
), потому что адреса перезаписываются и все работает нормально.
Если вы не используете маскировку
, то ваш шлюз по адресу 192.168.2.1
будет получать пакеты от 192.168.1.0/24
и 10.0.88.0/24
напрямую. Если у вашего шлюза 192.168.2.1
нет маршрутов к этим подсетям, он выберет маршрут по умолчанию.
Так что это зависит от вашей конфигурации на маршрутизаторе с двумя цепями.
На ваших серверах Ubuntu значения по умолчанию через 10.0.88.1 dev eno4
в таблице mng
должно быть достаточно.
Затем вам нужно указать правилу маршрутизации использовать mng
для трафика, полученного из подсети 10.0.88.0/24
.
правило ip добавить из таблицы 10.0.88.0/24 mng
Затем добавьте правило для использования таблицы mng
для всего, что должно оставить eno4
.
ip rule add oif eno4 table mng