Freebsd change la route par défaut des canaux Internet

10

J'ai deux canaux Internet et une passerelle sur freebsd. Lorsque je change de canal avec la commande route change default chan2, la commande netstat -nraffiche la route par défaut modifiée. Mais traceroutemontre que les paquets passent par l'ancienne route chan1.

Exemple:

$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

MAIS

$ 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

Tout fonctionne si je lance la combinaison suivante:

$ sudo route del default

$ dormir 10

$ sudo route add default xxx.xxx.144.125

Taron
la source
Quelle version utilisez-vous ( uname -adevrait afficher)?
Chris S
FreeBSD 8.2-RELEASE FreeBSD 8.2-RELEASE # 0: ven 15 avr 12:45:40 MSD 2011 [email protected]: / usr / src / sys / amd64 / compile / IXI_8_2_PF_x64 amd64
Taron
La passerelle dans votre première table de routage et le premier saut dans votre traceroute ne sont pas les mêmes (0,53 vs 0,54) - avez-vous copié et collé ou retapé cela? Pouvez-vous également publier la sortie complète de netstat -rnf inet?
James O'Gorman
traceroute fonctionnant à partir de mon GW (.54), .53 est l'appareil du premier fournisseur IP.
Taron
5
Vider le cache ARP arp -d -aet / ou les tables de routage route flushavant d'ajouter la nouvelle route par défaut. Il est possible que l'espace noyau / utilisateur consulte des données périmées.
inetplumber

Réponses:

0

Si vous utilisez la route changecommande, vous devez redémarrer le service réseau pour appliquer les modifications, par exemple:

$ sudo /etc/rc.d/netif restart
Vasil Jamalashvili
la source
0

Est-il possible que vous ayez une route en cache vers 8.8.8.8? La sortie complète de netstat -nrle montrerait. Si c'est le cas, vous devrez le supprimer avant de tester votre modification - soit cette route spécifiquement, soit vous pouvez route flush, puis ajouter plutôt que de modifier la passerelle par défaut (mais sachez que cela interrompra le trafic non local entre les deux commandes si vous y allez) façon).

user133831
la source