
複数のインターフェースを使用している場合、ルーターのアドレスを知るにはどうしたらよいでしょうか。netstat -rn を使用すると、ルーターのアドレスである、支配的なインターフェースのゲートウェイを取得できることはわかっています。しかし、他のインターフェースについてはどうでしょうか。
私の場合、eth0 と wlan0 は別のルーター上にあり、OS は eth0 をデフォルトとして選択しますが、インターフェイスのルーター アドレスを照会できる汎用的な方法はありますか?
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
$ ifconfig
eth0 Link encap:Ethernet HWaddr b4:b5:2f:32:f3:22
inet addr:192.168.1.132 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::b6b5:2fff:fe32:f322/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3035 (3.0 KB) TX bytes:9857 (9.8 KB)
Interrupt:17 Memory:d4400000-d4420000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:569 errors:0 dropped:0 overruns:0 frame:0
TX packets:569 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:53950 (53.9 KB) TX bytes:53950 (53.9 KB)
wlan0 Link encap:Ethernet HWaddr 60:67:20:00:56:6c
inet addr:192.168.2.115 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::6267:20ff:fe00:566c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8152 errors:0 dropped:0 overruns:0 frame:0
TX packets:4030 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:6316155 (6.3 MB) TX bytes:574275 (574.2 KB)
答え1
完全な解決策ではありませんが、確認してくださいarp -n
。
ddd@mmm ~ $ arp -n
Address HWtype HWaddress Flags Mask Iface
xxx.xxx.xxx.xxx ether 00:e0:1e:b4:12:42 C eth0
yyy.yyy.yyy.yyy ether 00:14:78:52:28:d2 C wlan0
答え2
インターネットにアクセスするために使用する最初のホップ インターフェイスを見つけるには:
ping -I <interface or ip of interface> -t 1 8.8.8.8
-t 1 - パケットの ttl を 1 に制限します。つまり、パケットは通過を試みる最初のルータによって破棄されます。そのルータは、そのパケットを生成したデバイスの IP アドレスを示す「存続時間超過」パケットを返します。
From 192.168.0.254 icmp_seq=1 Time to live exceeded
Windows ではコマンドが若干異なります:
ping -S <ip address of interface> -i 1 8.8.8.8
-i 1 は、Windows で ttl を 1 に制限するオプションです。応答は次のようになります。
Reply from 192.168.0.254: TTL expired in transit.
-t/-i の後の数字を増やすと、パケットが通過する n 番目のホップが取得されます。この手法は、tracert がなく、パケットが通過するパスを知る必要がある場合に使用できます。
インターネットおよび一部の LAN 上でパケットがたどるルートは、パケットが送信されるたびに変更される可能性があることに注意してください。