У мене є два Інтернет-канали та шлюз у freebsd. Коли я перемикаю канал за допомогою команди route change default chan2, команда netstat -nrпоказує змінений маршрут за замовчуванням. Але tracerouteпоказує, що пакети проходять через старий канал1 маршруту.
Приклад:
$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire
default xxx.xxx.183.54 US 0 8432 em3
$sudo route change default xxx.xxx.144.125
change net default: gateway> xxx.xxx.144.125
$netstat -nr
Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire
default xxx.xxx.144.125 US 2 16450 em3
АЛЕ
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 xxx.xxx.183.53 (xxx.xxx.183.53) 0.527 ms 0.415 ms 0.483ms
Все працює, якщо я запускаю таку комбінацію:
$ sudo route del default
$ сон 10
$ sudo route додати за замовчуванням xxx.xxx.144.125
netstat -rnf inet?
arp -d -aта / або таблиці маршрутів, route flushперш ніж додавати новий маршрут за замовчуванням. Можливо, ядро / користувацький простір консультують несвіжі дані.
uname -aмає відображатися)?