ルーティングに使用されるゲートウェイを見つける方法


45

これはUNIX環境にあります。ホストに複数のルートがあります(「ip route show」コマンドで表示可能)。アドレスにpingを送信している場合、どのゲートウェイがトラフィックのルーティングに使用されているかをどのように確認できますか?

tracerouteコマンドを使用してみましたが、直接のゲートウェイが表示されません。

以下の出力から、10.58.227.1が私のデフォルトゲートウェイです。

# ip r l
10.58.227.0/24 dev front_eth1  proto kernel  scope link  src 10.58.227.231
169.254.0.0/17 dev bond0  proto kernel  scope link  src 169.254.0.4
default via 10.58.227.1 dev front_eth1  proto gated

外部アドレスにtracerouteを実行すると、使用されるゲートウェイ(デフォルトゲートウェイ10.58.227.1)が出力に表示されません。

# traceroute -n -I 10.63.21.118
traceroute to 10.63.21.118 (10.63.21.118), 30 hops max, 40 byte packets
 1  10.58.112.1  0.507 ms  1.008 ms  1.017 ms
 2  10.63.21.118  0.228 ms  0.233 ms  0.234 ms

ルーティングに使用されるゲートウェイなど、tracerouteコマンドで指定されたものと同じ情報を表示するオプションはありますか?

回答:


73

このip route get <address>コマンドを使用して、指定したアドレスにパケットを送信するために使用するルートを報告するようカーネルに要求できます。

$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0  src 192.168.0.121 
    cache 
$ 

192.168.0.1私のデフォルトのルートです。デフォルトルートを経由しないアドレスを要求した場合:

$ ip route get 192.168.0.116
192.168.0.116 dev eth0  src 192.168.0.121 
    cache 
$ 

たくさんの悪臭。:)これで問題が解決します。

ランダム側の質問- Ifは192.168.0.1を参照するために使用されるものの名前...「デフォルトルート」または「ゲートウェイ」ですか192.168.0.121?ただ「ソース」?
dtmland

@sarnold、そのサーバーでインターネットが必要かどうかを確認してください。
kd12

@ kd12では、パケットをインターネットにルーティングする場合にのみ、そのサーバーでインターネット接続が必要です。必要に応じて、インターネットに接続せずにIPネットワークをセットアップできます。ルーティングテーブルは認識せず、気にしません。すべて同じように動作します。:)
sarnold
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.