Как настроить маршрутизацию Linux для отправки пакетов через тот же интерфейс, на который они были получены?

Как настроить маршрутизацию Linux для отправки пакетов через тот же интерфейс, на который они были получены?

У меня есть следующая таблица маршрутизации

10.0.1.0/24 dev eth0  proto kernel  scope link  src 10.0.1.151
10.0.10.0/24 dev eth1  proto kernel  scope link  src 10.0.10.151
default via 10.0.1.1 dev eth0

У меня есть два соединения, одно идет через локальную сеть и через 10.0.1.1 выходит в Интернет. Другое - это маршрутизатор ADSL (10.0.10.1), напрямую подключенный к eth1.

Если я подключаюсь снаружи к внешнему IP-адресу 10.0.10.1, то получаю таймаут. Если я меняю маршрут по умолчанию на 10.0.10.1, то подключение снаружи к внешнему IP-адресу 10.0.10.1 работает. Так что это похоже на проблему маршрутизации (пакеты приходят с 10.0.10.1, но выходят из 10.0.1.1, который является маршрутом по умолчанию), но я не уверен, как ее решить.

На самом деле я хочу, чтобы маршрут по умолчанию был 10.0.1.1, я просто хочу отвечать на запросы на внешний IP-адрес 10.0.10.1 через тот же интерфейс.

решение1

вам нужно использовать расширенные таблицы маршрутизации, предлагаемые iproute2. Вы настраиваете 2 таблицы и отправляете весь трафик, исходящий с IP, в определенную таблицу, в этой таблице вы можете задать шлюз по умолчанию. Чтобы задать глобальный маршрут по умолчанию, вы просто предпочитаете один интерфейс другому с помощью метрик.

пример:

  • добавление шлюзов по умолчанию в таблицы:

добавить маршрут ip по умолчанию через 10.0.1.1 таблица 101

добавить маршрут ip по умолчанию через 10.0.10.1 таблица 102

  • добавьте правило, согласно которому весь трафик, поступающий с определенного IP, отправляется в таблицу:

правило ip добавить из 10.0.1.151 поиск 101

правило ip добавить из 10.0.10.151 поиск 102

  • добавьте метрику, какой шлюз предпочесть:

добавить маршрут ip по умолчанию через 10.0.1.151 метрика 1000

добавить маршрут ip по умолчанию через 10.0.10.151 метрика 2000

Надеюсь, это поможет вам начать :)

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