On 4/25/24 12:55, Volodymyr Garnyk wrote:
А якщо зробити різні weight на маршрути?

Взагалі-то OSPF та інший динамічний роутинг не дуже добре живе разом з policy routing'ом. Зазвичай вважається що всі адреси всюду доступні всередені Routing Domain. Маршрут же може помінятися на протязі однієї сесії

Немає там policy routing :)

перше питання було таке - чому libresolv не bind'иться на INADDR_ANY, а самостійно ставить source address. Наступне питання виникло після консультації з RFC1122 - якщо libresolv робить все відповідно до інформації з route cache (according to RFC), то чому нетворк стек форвардить пакет не так, як записано в його route cache :)

Технічно проблему я вирішив й пакети тепер ходять незалежно від src ip та egress interface, просто осадочок залишається у вигляді не до кінця зрозумілого форвардінгу :)

Не дивився, дякую. Якщо йти по пунктах (a) - (d), то перший доступний - consult to route-cache, що я маю:

root@host:~# ip a
[ ... ]
24: tun2: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 100.100.2.250/30 scope global fks02
25: tun0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 100.100.0.250/30 scope global nmb02

root@host:~# ip route
[ ... ]
100.100.1.3 nhid 37506 proto ospf metric 20
        nexthop via 100.100.2.249 dev tun2 weight 1
        nexthop via 100.100.0.249 dev tun0 weight 1

й що бачу -

root@host:~# ip route get 100.100.1.3
100.100.1.3 via 100.100.2.249 dev **tun2** src 100.100.2.250 uid 0
    cache

root@host:~# tcpdump -i any 'port 53' -n
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
09:56:00.637547 **tun0** Out IP **100.100.2.250**.41102 > 100.100.1.3.53: 11893+ A? i.ua. (22)

тобто - пакет таки формується відповідно до раут-кеш, але лінух його форвардить трішки по іншому :)

-- 
Volodymyr Litovka
  "Vision without Execution is Hallucination." -- Thomas Edison