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

У меня есть два интернет-канала и Шлюз на 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 направляют del значение по умолчанию

10$sleep

Маршрут $sudo добавляет значение по умолчанию xxx.xxx.144.125

10
задан 5 February 2015 в 13:08
2 ответа

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

$ sudo /etc/rc.d/netif restart
0
ответ дан 2 December 2019 в 22:16

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

0
ответ дан 2 December 2019 в 22:16

Теги

Похожие вопросы