Як маршрутизувати лише певну підмережу (джерело ip) до певного інтерфейсу?


31

Як маршрутизувати лише певну підмережу (джерело ip) до певного інтерфейсу?
ОС: Linux

Я знаю, що я можу легко зробити IP-адресу призначення, використовуючи щось подібне

route add 1.2.3.4/24 dev eth4

але я не бачу, як можна прокласти маршрут на основі джерела IP.

Відповіді:


30

Вам потрібно використовувати маршрутизацію на основі політики. Щось подібне

ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>

<name>або ім'я таблиці, вказане в, /etc/iproute2/rt_tablesабо ви можете використовувати числовий ідентифікатор ...

Це в значній мірі говорить про те, що весь трафік від 1.2.3.4/24буде спрямований за допомогою таблиці маршрутизації <name>. IIRC він не використовує таблицю за замовчуванням після цього, тому якщо вам потрібні інші маршрути (тобто шлюз за замовчуванням), вам потрібно також додати їх до таблиці.


1
одне виправлення (але не впевнений, чи працюватиме і ваш. Для другої команди: ip route add default dev eth4 table <name>( tableдиректива має йти в кінці, я думаю, як і в першій команді ... також defaultможна замінити підмережу, як у вашому прикладі) )
Олексій

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.