маршрутизировать трафик из другого шлюза по сети назначения
9
У меня есть несколько шлюзов, и я хотел бы направить некоторый трафик из разных шлюзов в зависимости от его назначения. Я предполагаю, что мне нужно использовать комбинацию правил iproute2 и iptables, но я не уверен, с чего начать.
Может кто-нибудь привести пример?
Вы, вероятно, можете делать то, что вы хотите с ip route:
ip route add 8.8.8.8 via 10.0.0.1 dev enp3s8
ip route add 10.0.0.0/24 dev eth0
Первый ip route addпоказывает один IP-адрес, отправленный данным интерфейсом Ethernet (ep3s8) на маршрутизатор следующего перехода, 10.0.0.1
Второй маршрут для всей сети, 10.xyz, разослал данную сетевую карту, eth0. Это «локальная сеть», в которой нет маршрутизатора следующего перехода, все по одному и тому же логическому каналу.
Вы хотите читать, man ip-routeпрежде чем что-то делать, хотя. Кроме того, будьте готовы к перезагрузке и не делайте этого удаленно. Вы можете очень легко создавать неправильные маршруты, которые прерывают ваш удаленный доступ. Я голос опыта в этой последней рекомендации.
Обратите внимание, что вы также можете указать шлюзы для целых блоков, `` ip route add 10.1.0.0/16 через 192.168.0.1`
jthill
Спасибо за ваш ответ, который поможет направить меня в правильном направлении. Я попробую и дам вам знать.
Уолтер
5
То, о чем вы спрашиваете, есть policy-based routingили source-based routing. На этом же сайте Дэвид Шварц предлагает отличное вступление .
Я хотел бы отметить, что есть также небольшая изящная программа, которую можно найти здесь , которая позволяет вам связывать определенные приложения с данным интерфейсом. Это, конечно, легко с такими приложениями, как openssh, у которых есть опции привязки к желаемому адресу прослушивания. Но эта библиотека позволяет привязывать даже приложения без таких параметров (например, Firefox) к заданному IP-адресу.
Таким образом, вы можете выбрать, хотите ли вы предоставить отдельные таблицы маршрутизации для всех приложений или переопределить те же спецификации для каждого приложения.
Вам не нужна политика маршрутизации, если вы хотите направить по месту назначения.
Диего Войтасен
Привет, это также хороший момент, хм, который позволит большую гибкость, которая, вероятно, более продвинута, чем я хочу быть в этой точке. Определенно, чему-то научиться.
В общем, вы должны добавить правило (я добавил интерфейс eth1 только для демонстрационных целей, его можно опустить)
#ip rule add dev eth1 to 170.10.0.10 table 2 priority 20000
здесь: dev eth1 - устройство, которое будет использоваться для отправки пакетов на 170.10.0.10 - таблица назначения 2 - таблица, в которой вы должны назначить приоритет вашим маршрутам 20000 - приоритет правила
вы можете увидеть свое правило по
#ip ru sh
0: from all lookup local
20000: from all to 170.10.0.10 iif eth1 lookup 2
32766: from all lookup main
32767: from all lookup default
Далее вы должны добавить маршруты обычным способом, но вы должны указать таблицу (таблица 2), куда вы бы поместили маршрут
То, о чем вы спрашиваете, есть
policy-based routing
илиsource-based routing
. На этом же сайте Дэвид Шварц предлагает отличное вступление .Я хотел бы отметить, что есть также небольшая изящная программа, которую можно найти здесь , которая позволяет вам связывать определенные приложения с данным интерфейсом. Это, конечно, легко с такими приложениями, как openssh, у которых есть опции привязки к желаемому адресу прослушивания. Но эта библиотека позволяет привязывать даже приложения без таких параметров (например, Firefox) к заданному IP-адресу.
Таким образом, вы можете выбрать, хотите ли вы предоставить отдельные таблицы маршрутизации для всех приложений или переопределить те же спецификации для каждого приложения.
источник
Хорошее место для чтения об исходной базовой маршрутизации - Linux Advanced Routing & Traffic Control,
вы также можете прочитать руководства
В общем, вы должны добавить правило (я добавил интерфейс eth1 только для демонстрационных целей, его можно опустить)
здесь:
dev eth1 - устройство, которое будет использоваться для отправки пакетов
на 170.10.0.10 -
таблица назначения 2 - таблица, в которой вы должны назначить
приоритет вашим маршрутам 20000 - приоритет правила
вы можете увидеть свое правило по
Далее вы должны добавить маршруты обычным способом, но вы должны указать таблицу (таблица 2), куда вы бы поместили маршрут
чтобы увидеть ваши маршруты, вы должны бежать
источник