これは思ったより難しいことがわかりました。削除したいルートは「!」拒否されたルートですが、適切な「route del」コマンドを作成してそれを引き出すようには思えません。
これがルーティングテーブルです...
Destination Gateway Genmask Flags Metric Ref Use Iface
67.40.227.206 * 255.255.255.255 UH 0 0 0 ppp0
192.168.46.79 * 255.255.255.255 UH 0 0 0 ipsec0
192.168.46.79 - 255.255.255.255 !H 2 - 0 -
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
10.1.0.0 * 255.255.0.0 U 0 0 0 ipsec0
10.1.0.0 - 255.255.0.0 ! 2 - 0 -
default * 0.0.0.0 U 3 0 0 ppp0
default * 0.0.0.0 U 4 0 0 ppp0
192.168.46.79と10.1.0.0の2つのエントリがあります。これらは、私が使用している小さなLinuxベースのルーターによって自動生成されます。シェル自体からIPSECトンネルにpingを実行できますが、LANからのトラフィックは2番目のルート(拒否された「!」または「!H」ルート)を使用します。
とともに route -n
取得するコマンド
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.178.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 160.98.123.1 0.0.0.0 UG 600 0 0 wlan0
Sudo route del -net 0.0.0.0 gw 192.168.178.1 netmask 0.0.0.0 dev eth0
上からそれぞれすべてのパラメーターを取得します
!
フラグの付いたルートのタイプは、到達できないか禁止されています。 route
は、net-toolsの古代のユーティリティであり、2つを区別しません。 iproute2を使用します。
これらのルートを削除するnet-toolsの方法は、route del
を使用することです。ただし、net-toolsは、拒否されたルートと他のルートを区別する方法を提供しません(デバイスを指定しないと到達できないルートが削除される可能性がありますが、dev引数はオプションであるため)。
iproute2を使用すると、次のように実行できます。
ip route del unreachable 10.1.0.0/24
ip route del unreachable 192.168.46.79/32
到達不可能ではないかもしれませんが、禁止されています。引数なしでip route
を使用して、どちらかを判別します。
これだと思います:route del -net 10.1.0.0 netmask 255.255.0.0 metric 2
100%確実ではありません。しかし、デフォルトのルートが2つあるので、他に何か間抜けなことが起こっていると思います。