Вот что-то не пойму одну ситуацию. Есть сервер, у него кучка статических маршрутов в разные подсети, заюзан src-based роутинг для того чтобы он отвечал с тех же интерфейсов на которые получает запрос, проблем нет.
Понадобилось добавить маршрут до одного хоста который лежит за цисковским впном, ну делаю как обычно:
ip route add 172.16.1.1 via 10.1.0.1 dev vlan2 src 10.1.0.3
# sh capture cap1
10 packets captured
1: 11:53:33.711617 802.1Q vlan#8 P0 <EXT_IP> > 172.16.1.1: icmp: echo request
2: 11:53:34.717110 802.1Q vlan#8 P0 <EXT_IP> > 172.16.1.1: icmp: echo request
ping -I 10.1.0.3 172.16.1.1
tcpdump на самом серваке показывает то же что и цыска:
# tcpdump -n -i vlan2 'icmp and host 172.16.1.1'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on vlan2, link-type EN10MB (Ethernet), capture size 68 bytes
12:04:04.241353 IP <EXT_IP> > 172.16.1.1: ICMP echo request, id 14, seq 1, length 64
12:04:05.247592 IP <EXT_IP> > 172.16.1.1: ICMP echo request, id 14, seq 2, length 64
Куда еще покопать?