Настройка Shorewall 4-интерфейса

Настройка Shorewall 4-интерфейса

Я пытаюсь использовать shorewall на Arch для управления установкой с 2 ​​локальными сетями и 2 подключениями к ISP. В конечном итоге я хочу, чтобы трафик из локальной сети 1 (192.168.1.0/24 interface enp5s0) использовал ISP 1 (76. ... interface enp6s0), а трафик из локальной сети 2 (192.168.0.0/24 interface enp7s0) использовал ISP 2 (99. ... interface enp3s0). В настоящее время я могу заставить работать один или другой, но не оба, в зависимости от того, какой маршрут по умолчанию будет первым:

output of `ip route ls` with sensitive information redacted:
default via 76.[rd].1 dev enp6s0  src 76.[rd].78  metric 203  mtu 576
default via 99.[rd].1 dev enp3s0  src 99.[rd].190  metric 205
76.[rd].0/24 dev enp6s0  proto kernel  scope link  src 76.[rd].78  metric 203  mtu 576
76.[rd].78 dev enp6s0  scope link  src 76.[rd].78
99.194.48.0/21 dev enp3s0  proto kernel  scope link  src 99.[rd].190  metric 205
99.[rd].190 dev enp3s0  scope link  src 99.[rd].190
192.168.0.0/24 dev enp7s0  proto kernel  scope link  src 192.168.0.1  metric 204
192.168.1.0/24 dev enp5s0  proto kernel  scope link  src 192.168.1.1  metric 202

С вышеприведенным выводом локальный 1 сможет достичь внешнего мира, но локальный 2 не сможет. И наоборот, если бы первая строка исчезла. Я почти уверен, что множественные маршруты по умолчанию — это табу, даже с несколькими провайдерами, но вот как это сделал shorewall.

Поскольку нигде не было примера для этого, я взял за основу пример shorewall с тремя интерфейсами. Чтобы не делать этот пост безумно длинным, вот ссылки на вставки каждой соответствующей конфигурации shorewall:

Страницы Shorewall по этому вопросу бесполезны, поскольку цель в их примере сильно отличается от моей цели. Любые указания в правильном направлении были бы весьма признательны.

решение1

Убедитесь, что вы не установили шлюз по умолчанию в файлах netctl или в других файлах. Если вы используете DHCP для получения IP-адресов, убедитесь, что вы отключили получение шлюза по умолчанию (dhcpcd -G). Запуск "ip route ls" долженне показывать шлюзы по умолчанию. Только "ip route show table all" выведет список шлюзов по умолчанию для каждой таблицы ISP. Что-то вроде этого:

default via 10.1.1.1 dev enp3s0  table ITC1  src 10.1.1.10
10.1.1.1 dev enp3s0  table ITC1  scope link  src 10.1.1.10
default via 10.1.2.1 dev enp4s0  table ITC2  src 10.1.2.10
10.1.2.1 dev enp4s0  table ITC2  scope link  src 10.1.2.10
default via X.X.X.X dev enp5s0  table MPLS  src X.X.X.X
X.X.X.X dev enp5s0  table MPLS  scope link  src X.X.X.X
default  table balance
    nexthop via X.X.X.X  dev enp5s0 weight 1
    nexthop via 10.1.1.1  dev enp3s0 weight 2
    nexthop via 10.1.2.1  dev enp4s0 weight 2

Также вы можете удалить записи из файла mangle, так как записей rtrules должно быть достаточно для того, что вам нужно.

Связанный контент