lo
1つのループバックインターフェイスと2つの物理ネットワークインターフェイスeth0
、3つのネットワークインターフェイスを持つサーバーがありますeth1
。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:1d:09:f0:92:ab brd ff:ff:ff:ff:ff:ff
inet 93.184.216.34/22 brd 93.184.219.255 scope global eth0
inet6 fe80::21d:9ff:fef0:92ab/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:1d:09:f0:92:ac brd ff:ff:ff:ff:ff:ff
inet 10.228.2.2/24 scope global eth1
inet6 fe80::21d:9ff:fef0:92ac/64 scope link
valid_lft forever preferred_lft forever
これで、255.255.255.255または0.0.0.0.0(以前のIPブロードキャストアドレス)へのルートを確認すると、パケットは3つのネットワークインターフェイスすべてで転送されると予想されます。代わりに、255.255.255.255の場合は、eth0
0.0.0.0の場合は次のようにしてくださいlo
。
root@server:~# ip route get 255.255.255.255
broadcast 255.255.255.255 dev eth0 src 93.184.216.34
cache <local,brd>
root@server:~# ip route get 0.0.0.0
local 127.0.0.1 dev lo src 127.0.0.1
cache <local>
root@server:~#
なぜこれが起こるのですか?
答え1
0.0.0.0
ブロードキャストアドレスではありません。ソフトウェアはしばしばこれを「ランダム」アドレスとして使用します。これは、見つかった最初のインターフェイスを表示する理由を説明できます。どんな状況でもルーティングできません。
アドレス255.255.255.255
はルーティングできません。これを使用するときにインターフェイスを指定します。放送機能を備えた最初のインターフェースを見せているようです。
しかし、どちらの場合も、アドレスがルーティング可能であるという仮定が間違っているので、ルートを見つけようとしたときにまったく情報を取得できなかったことに驚きました。