Не дивився, дякую. Якщо йти по пунктах (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)
тобто - пакет таки формується відповідно до раут-кеш, але
лінух його форвардить трішки по іншому :)