Назад | Перейти на главную страницу

Поведение приоритета маршрутизации на основе политик

У меня быстрый вопрос относительно поведения приоритета при использовании маршрутизации на основе политик. Я использую Ubuntu 18.04 (ядро 4.15.0-1021-aws).

Я использую эту машину как шлюз для пересылки пакетов с одного интерфейса на другой. Скажем, eth0 -> eth1.

Что касается пакетов, генерируемых самой машиной, я не хочу, чтобы они когда-либо маршрутизировались через eth1. Однако пакеты, исходящие с разных машин (в той же подсети, что и eth0, 192.168.0.0/24) необходимо маршрутизировать через eth1.

IP-адрес eth0: 192.168.0.1. Таблица маршрутизации для пересылки пакетов называется forwarded. Итак, я добавил следующие правила:

0:  from all lookup local 
1:  from 192.168.0.1/32 lookup default 
10: from 192.168.0.1/24 lookup forwarded 
32766:  from all lookup main 
32767:  from all lookup default 

Однако, когда я пытаюсь выполнить эхо-запрос с этого компьютера, он использует forwarded таблица маршрутизации. Есть ли способ сделать это или я допустил здесь ошибку?

Пакеты, созданные на локальной машине, в первую очередь получают 0.0.0.0/32 в качестве исходного IP-адреса, который называется unspecified address и этот адрес в какой-то момент заменяется ядром с IP-адресом интерфейса, через который пакет покидает машину.

Для правильной маршрутизации пакетов локального источника часто бывает полезно использовать from 0.0.0.0/32 правило направлять тех, кто в правильном направлении. Это особенно важно для пакетов от служб, которые не привязаны к определенному IP-адресу интерфейса.