Freebsd изменить маршрут интернет-канала по умолчанию

10

У меня два интернет канала и шлюз на freebsd. Когда я переключаю канал с помощью команды route change default chan2, команда netstat -nrпоказывает измененный маршрут по умолчанию. Но tracerouteпоказывает, что пакеты проходят по старому маршруту chan1.

Пример:

$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 add default xxx.xxx.144.125

Тарон
источник
Какую версию вы используете ( uname -aдолжен показать)?
Крис С
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE # 0: пятница, 15 апреля 12:45:40 MSD 2011 root@grs.ru: / usr / src / sys / amd64 / compile / IXI_8_2_PF_x64 amd64
Тарон,
Шлюз в вашей первой таблице маршрутизации и первый прыжок в вашей трассировке не совпадают (.53 против .54) - вы скопировали и вставили или повторно набрали это? Можете ли вы также опубликовать полный вывод netstat -rnf inet?
Джеймс О'Горман
traceroute, запущенный от моего GW (.54), .53 - устройство первого провайдера IP.
Тарон
5
Очистите кэш ARP arp -d -aи / или таблицы маршрутизации route flushперед добавлением нового маршрута по умолчанию. Возможно, ядро ​​/ пользовательское пространство обращаются к устаревшим данным.
inetplumber

Ответы:

0

Если вы используете route changeкоманду, вам нужно перезапустить сетевую службу, чтобы применить изменения, например:

$ sudo /etc/rc.d/netif restart
Василь Джамалашвили
источник
0

Возможно ли, что у вас есть кэшированный маршрут до 8.8.8.8? Полный вывод netstat -nrпоказывает, что. Если это так, вам нужно будет удалить его перед тестированием вашего изменения - либо этот маршрут специально, либо вы могли бы, route flushа затем добавить, а не изменить шлюз по умолчанию (но помните, что это будет прерывать нелокальный трафик, в то время как между двумя командами, если вы идете, что путь).

user133831
источник