ufm: (Default)
[personal profile] ufm
Какое-то немного неожидаемое поведение.

Делаем раз:
route add -net 10.0.0.0/24 gw 127.0.0.1
route add -net 10.0.1.0/24 gw 10.0.0.1

Делаем два:
route add 10.0.0.1 gw 192.168.2.1

Я, на голубом глазу был уверен, что поле "Делаем два" весь трафик для 10.0.1.0/24 пойдёт через 192.168.2.1 А вот фиг там.
Причём поведение и Фри и Лялиха - одинаковое (ну почти).
Вот как таблица роутинга выглядит во фре:

Destination        Gateway            Flags     Netif Expire
default            192.168.2.1        UGS         em0
10.0.0.0/24        127.0.0.1          UGS         lo0
10.0.0.1           192.168.2.1        UGHS        em0
10.0.1.0/24        10.0.0.1           UGS         lo0
127.0.0.1          link#2             UH          lo0
192.168.2.0/24     link#1             U           em0


А вот так в Линуксе:
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 eth0
10.0.0.0        127.0.0.1       255.255.255.0   UG        0 0          0 lo
10.0.0.1        192.168.2.1     255.255.255.255 UGH       0 0          0 eth0
10.0.1.0        10.0.0.1        255.255.255.0   UG        0 0          0 lo
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0


Отличие в поведении между фрёй и линуксом в том, что при выдаче команды ping 10.0.1.1 во фре пакеты в lo0 влетают с source address 127.0.0.1, а в линуксе с адресом eth0.
Но вот то, что они вобще влетают в lo вместо того, что-бы роутиться - для меня неожиданность.

P.S. Впрочем, я допускаю, что и во фре и в линуксе есть какой-нибудь sysctl, который исправляет такое поведение, но что-то быстро он не нагуглился...
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting