LINUX.ORG.RU

Маршрутизация при наличии нескольких интерфейсов

 , ,


0

2

Добрый день. Ubuntu Server 22 Имеются несколько интерефейсов: enp5s0, enp6s0,… Как настроить что бы интернет на сервере работал только через enp5s0, а через интерфейсы enp6s0,… уходили только пакеты поступившие на них, на пример nginx-у отдали enp6s0, и все пакеты пришедшие на enp6s0, должный уйти обратно от nginx именно через enp6s0, а не через enp5s0? Первое сто приходит в голову это установить enp5s0 метрику меньшую чем всем другим интерфейсам. Или я ошибаюсь?

Заранее всем премного благодарен.


уходили только пакеты поступившие на них

Пакет, который пришёл тебе с интерфейса, и пакет, которым прога на него ответила - это разные пакеты. И второй пакет совершенно не знает о том, откуда пришёл первый.

А так - сделать наверно можно, но будет куча костылей. Или какими-нить network namespaces или nat-ом.

firkax ★★★★★
()

Хотя может быть я неправильно понял вопрос. Эти пакеты, которые к тебе приходят с разных интерфейов - у них айпи-адрес назначения одинаковый или разные? Если разные то это называется source-based routing. Если одинаковый то см. выше.

firkax ★★★★★
()
Ответ на: комментарий от t184256

Я по таким вопросам каждый раз вспоминаю самописный сетевой стек своего роутера - там номер интерфейса это часть адреса (вместе с ip и портом, типа 1.2.3.4:123#1 и 1.2.3.4:123#2 это полностью разные адреса). Когда писал его, с линуксами и вообще традициями построения сетей был довольно мало знаком. Получилась такая коммутация соединений по интерфейсам из коробки.

firkax ★★★★★
()

Если ip разные, то оно по умолчанию будет отвечать оттуда, куда приехал запрос. Внутри себя, если проксирование в nginx настроено или телефония, на L7 софтово перекладывают пакеты между интерфейсами, но по умолчанию всегда помнят, откуда кому отвечать. Это не надо никак настраивать отдельно, я с таким не сталкивался.

yu-boot ★★★★★
()
Ответ на: комментарий от yu-boot

Да, каждый интерфейс имеют разные IP enp5s0=192.168… enp6s0=95.220… значить пакеты будут ходить через свои интерфейсы без лишней настройки. При этом выйти в интернет с сервера можно и через enp5s0 и enp6s0, как выставить приоритете выхода через enp5s0 (например wget и т.д.)?

hitec
() автор топика
Ответ на: комментарий от hitec

Вдогонку - если на публичные адреса надо ходить не через default route, ну верёвка у тебя прямая прокинута с кем-то, а адреса там всё равно белые, тогда просто доставляется маршрут через «ip r a» в нужную сеть или на шлюз. Прикладной софт об этом ничего знать не обязан, там всё это автомагически происходит.

yu-boot ★★★★★
()
Ответ на: комментарий от Harliff

Обычно дефолт-роут в интернет и сетки в прямой видимости для всего остального, в которые маршрут создаётся по факту существования этих интерфейсов с навешенным ip/маской. Если надо «не туда», да, надо добавлять маршруты. Но прикладной софт опять же об этом ничего не обязан знать и его не надо как-то специально настраивать именно в плане интерфейсов.

Пример - астериск всегда ответит «куда надо»,с правильного интерфейса (с поправкой на общесистемные роуты), если ему просто разрешить слушать 0.0.0.0/0

yu-boot ★★★★★
()
Последнее исправление: yu-boot (всего исправлений: 2)
Ответ на: комментарий от yu-boot

Проблема в том, что для каждого интерфейса автоматически создается default роут. Если делаю ip route del default, удаленный роут вновь появляется в таблице маршрутизации. Как корректно убрать лишние default роуты, что бы они не появлялись вновь?

hitec
() автор топика
Ответ на: комментарий от hitec

Вангую криво настроенный network-manager, везде его отрывал и настраивал через конфиги дефолтным способом дистрибутива.

каждого интерфейса автоматически создается default роут

Не должно быть такого. Создал интерфейс - он светится у тебя в «ip l», без ip, без маршрутов, без ничего. Навесил на него xx.xx.xx.xx/24 - у тебя авто-появился маршрут в эту /24 и ничего более.

Дистрибутив какой и версия?

yu-boot ★★★★★
()
Ответ на: комментарий от vbr

Устанавливал, но метрики тоже переустанавливаются в исходные значения, как я понимаю, дело в proto kernel что означает, что роутинг был задан ядром автоматически при задании IP интерфейса

hitec
() автор топика
Ответ на: комментарий от hitec

Как понять автоматически? Роуты вроде автоматически не создаются. Я не знаю, чем там в убунте сейчас сеть настраивается, но в этом инструменте вероятно есть опция для задания метрики.

vbr ★★★★
()
Ответ на: комментарий от vbr

Решение вопроса тут: https://askubuntu.com/questions/1115213/lxd-how-to-avoid-double-default-gateway-in-ubuntu-18-04

sudo nano /etc/netplan/00-installer-config.yaml dhcp4-overrides: use-routes: false после этого, route-ы пересватаю автоматически создаваться/пересоздаваться. Всем спасибо.

hitec
() автор топика