|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene B. Berdnikov 2:5020/400 09 Jun 2003 13:03:27 To : Alexander Kulak Subject : Re: TOS as routing key -------------------------------------------------------------------------------- Alexander Kulak <Alexander.Kulak@f208.n450.z2.fidonet.org> wrote: AK>>> как сделать, чтобы subj работал не только для форвардящихся пакетов, AK>>> но и для пакетов с источником - данной машиной? AK>>> ядра 2.4.20, 2.2.19, вроде все включено. EBB>> Указать oif. Hа 2.4.18 - работает, проверено. AK> AK> 2.4.20, debian unstable, iproute 20010824-9. AK> AK> ip ro add default tos 4 via 194.158.213.6 AK> или AK> ip ro add default tos 4 via 194.158.213.6 oif ppp0 AK> или AK> ip ro add default tos 4 via 194.158.213.6 dev ppp0 AK> AK> приводят к одинаковому результату: устанавливается маршрут, AK> который работает, но только для форвардящихся пакетов. AK> пакеты, идущие с локальной машины с помощью AK> AK> traceroute -t 4 ... AK> или AK> telnet -S 4 ... AK> AK> не идут по этому маршруту. # ip r a 192.168.77.106 oif eth0 dev eth0 via 192.168.77.254 tos 0x10 # ip r g 192.168.77.106 192.168.77.106 dev eth0 src 192.168.77.107 cache mtu 1500 advmss 1460 # ip r g 192.168.77.106 tos 0x10 192.168.77.106 tos 0x10 via 192.168.77.254 dev eth0 src 192.168.77.107 cache mtu 1500 advmss 146 # slogin 192.168.77.106 [...] # tcpdump -nle host 192.168.77.106 or host 192.168.77.254 11:57:03.347717 0:1:2:64:a:11 aa:0:4:0:e9:df ip 78: 192.168.77.107.36002 > 192.168.77.106.ssh: P 771:783(12) ack 512 win 6432 <nop,nop,timestamp 354881245 26991067> (DF) [tos 0x10] 11:57:03.348199 aa:0:4:0:e9:df 0:1:2:58:ae:76 ip 78: 192.168.77.107.36002 > 192.168.77.106.ssh: P 771:783(12) ack 512 win 6432 <nop,nop,timestamp 354881245 26991067> (DF) [tos 0x10] 11:57:03.364380 0:1:2:58:ae:76 0:1:2:64:a:11 ip 66: 192.168.77.106.ssh > 192.168.77.107.36002: . ack 783 win 32120 <nop,nop,timestamp 26991069 354881245> (DF) [tos 0x10] Как видно по маку aa:00:04:00:e9:df, пакеты с 192.168.77.107 идут через гейт (192.168.77.254). Можно проверить иначе: # ping -c 1 -nR 192.168.77.106 PING 192.168.77.106 (192.168.77.106) from 192.168.77.107 : 56(124) bytes of data. 64 bytes from 192.168.77.106: icmp_seq=1 ttl=255 time=0.430 ms RR: 192.168.77.107 192.168.77.106 192.168.77.106 192.168.77.107 - --- 192.168.77.106 ping statistics --- 1 packets transmitted, 1 received, 0% loss, time 0ms rtt min/avg/max/mdev = 0.430/0.430/0.430/0.000 ms # ping -c 1 -nR -Q 16 192.168.77.106 PING 192.168.77.106 (192.168.77.106) from 192.168.77.107 : 56(124) bytes of data. 64 bytes from 192.168.77.106: icmp_seq=1 ttl=255 time=2.69 ms RR: 192.168.77.107 192.168.77.254 192.168.77.106 192.168.77.106 192.168.77.107 - --- 192.168.77.106 ping statistics --- 1 packets transmitted, 1 received, 0% loss, time 0ms rtt min/avg/max/mdev = 2.698/2.698/2.698/0.000 ms Чем хорош ssh для этих экспериментов - он tos меняет на ходу, можно проследить все варианты сразу (со включенным и выключенным tos). Аналогичный результат достигается через ip rule, как правильно написали в соседнем постинге (это тоже проверил - работает). В обоих случаях traceroute посылает пакеты напрямую. Почему так происходит - не знаю, надо разбираться в опциях, которые вешаются на raw socket (для ping и traceroute эти опции разные, какая-то из них нарушает маршрутизацию). Телнета с поддержкой parsetos() у меня под рукой нет. -- Eugene Berdnikov --- ifmail v.2.15dev5 * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/36515cd29d94.html, оценка из 5, голосов 10
|