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:
mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 inet 100.100.2.250/30 http://100.100.2.250/30 scope global fks02 25: tun0: mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 inet 100.100.0.250/30 http://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 http://i.ua. (22)
тобто - пакет таки формується відповідно до раут-кеш, але лінух його форвардить трішки по іншому :)
-- Volodymyr Litovka "Vision without Execution is Hallucination." -- Thomas Edison