У меня быстрый вопрос относительно поведения приоритета при использовании маршрутизации на основе политик. Я использую 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-адресу интерфейса.