правило ip и маршрут не соблюдаются

Я пытаюсь маршрутизировать пакеты на основе их адреса источника и добавил следующее:

# ip rule add from 10.10.10.0/16 dev eth0 table foobar
# ip route add default via 100.100.100.1 dev eth0 table foobar

Однако проверка маршрутизации дает неправильный ответ через адрес:

# ip route get 4.3.2.1 from 10.10.10.1
4.3.2.1 from 10.10.10.1 via 100.0.0.1 dev eth0

Почему это не соблюдается?

Это мои обычные маршруты

# ip route list
default via 100.0.0.1 dev eth0

и

# ip route show table foobar
default via 100.100.100.1 dev eth0

и

# ip rule list
0:  from all lookup local
32765:  from 10.10.10.0/16 iif eth0 lookup foobar
32766:  from all lookup main
32767:  from all lookup default
6
задан 3 May 2019 в 15:38
1 ответ

Ваша проблема не является проблемой. В правиле используется не только исходный адрес, но и соответствие входного интерфейса. Итак, есть два способа решить вашу «проблему»:

  1. Не используйте dev eth0 в правиле
  2. Добавьте iif eth0 в ip маршрут получить ... команда. Параметр iif позволяет использовать нелокальные адреса в команде ip route get , поэтому вы можете использовать что-то вроде: ip route get 4.3.2.1 от 10.10.20.253 iif eth0
5
ответ дан 3 December 2019 в 00:31

Теги

Похожие вопросы