Два шлюза по умолчанию в Linux
В случае если в системе две или более сетевых карт и необходимо чтобы у каждой из этих карт был собственный шлюз по умолчанию, то для решения этой задачи можно использовать пакет iproute2, который включен во все современные дистрибутивы Linux и, как правило, уже установлен.
По умолчанию в системе Linux есть только одна таблица маршрутизации, в которую можно внести записи только для одного шлюза по умолчанию. С помощью iproute2 можно настроить дополнительную таблицу маршрутизации и разрешить системе использовать эту таблицу на основе правил.
К примеру есть два интерфейса и для каждого должен использоваться свой шлюз.
ens192— 192.168.0.0/24- gateway — 192.168.0.1
ens224— 10.10.0.0/24- gateway — 10.10.0.1
Исходная конфигурация выглядит следующим образом:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug ens192
iface ens192 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
# The secondary network interface
allow-hotplug ens224
iface ens224 inet static
address 10.10.0.10
netmask 255.255.255.0Добавление таблицы маршрутизации
Чтобы добавить новую таблицу маршрутизации, необходимо отредактировать файл /etc/iproute2/rt_tables. Назовём таблицу маршрутизации rt2 и установим для неё приоритет 1.
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
1 rt2Настройка таблицы маршрутизации
Заполним новую таблицу маршрутизации, выполняем следующие команды.
ip route add 10.10.0.0/24 dev ens224 src 10.10.0.10 table rt2
ip route add default via 10.10.0.1 dev ens224 table rt2- Первая команда сообщает, что сеть
10.10.0.0/24доступна через интерфейсens224. - Вторая команда устанавливает шлюз по умолчанию.
Правила маршрутизации
Чтобы система знала, когда использовать новую таблицу маршрутизации, настроим два правила.
ip rule add from 10.10.0.10/32 table rt2
ip rule add to 10.10.0.10/32 table rt2Эти правила гласят, что трафик с IP-адреса 10.10.0.10, а также трафик, направленный на этот IP-адрес или проходящий через него, должны использовать таблицу маршрутизации rt2.
Создание постоянной конфигурации
Команды ip rule и ip route станут недействительными после перезагрузки, поэтому их следует прописать непосредственно в файл /etc/network/interfaces, чтобы они выполнялись после запуска сети после перезагрузки.
Вот так будет выглядеть описание команд.
iface ens224 inet static
address 10.10.0.10
netmask 255.255.255.0
post-up ip route add 10.10.0.0/24 dev ens224 src 10.10.0.10 table rt2
post-up ip route add default via 10.10.0.1 dev ens224 table rt2
post-up ip rule add from 10.10.0.10/32 table rt2
post-up ip rule add to 10.10.0.10/32 table rt2Тестирование конфигурации
Следующие команды можно использовать, чтобы убедиться, что правила и записи маршрутизации работают должным образом.
ip route list table rt2
ip rule showПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.