Я столкнулся с немного странными трудностями с маршрутизацией на основе политик на сервере CentOS-6.6. У меня есть установка, в которой мне нужно направить все пакеты, отправленные из 172.25.0.0/16
предназначенный для 172.24.0.0/16
и немного XXX.155.106.50
через определенный шлюз (10.4.20.5
) за VPN-туннелем. Я просто делаю то, что делал всегда.
1) Я определил zone2
таблица в моем / etc / iproute2 / rt_tables:
255 local
254 main
253 default
0 unspec
25 zone2
2) Я добавил несколько правил, поэтому вот что я получаю в ответ ip rule show
:
0: from all lookup local
32762: from all to 172.25.0.0/16 lookup zone2
32763: from 172.25.0.0/16 lookup zone2
32766: from all lookup main
32767: from all lookup default
3) И, наконец, я добавил несколько маршрутов в таблицу, поэтому в ответ на ip route show table zone2
Получаю следующее:
XXX.155.106.50 via 10.4.20.5 dev tun0
172.25.64.0/24 dev cloudbr0 scope link
172.25.65.0/24 dev cloudbr0 scope link
172.24.0.0/16 via 10.4.20.5 dev tun0
Все кажется вполне законным, правда? Но, увы, эти правила, похоже, не работают, так как tcpdump показывает мне все пакеты из 172.25.0.0/16
отправляется не через мой туннель, а напрямую.
Самое смешное: когда я делаю что-то вроде ping -I 172.25.65.254 XXX.155.106.50
, все работает нормально и пакеты маршрутизируются через туннель. Но если пакет приходит из сети (кстати, сетевой интерфейс является мостовым) - все эти правила вроде бы игнорируются и пакеты идут напрямую. :(
Будем очень признательны за любые подсказки и подсказки!