ルーティングテーブルを通じて完全に処理されます。
楽しみたい場合は、仮想マシンで試してみるのはかなり簡単です。あなたがこれを試すマシンで起こり得ることについて私は責任を負いません。
まず、ネットマスクlo
を255.255.0.0に変更します。
sudo ip addr del 127.0.0.1/8 dev lo; sudo ip addr add 127.0.0.1/16 dev lo
今私たちを見てみましょうlo
:
$ ip -4 addr show dev lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
inet 127.0.0.1/16 scope host lo
127.1.1.1へのパケットはどこに行きますか?
$ sudo ip route get 127.1.1.1
127.1.1.1 via 172.16.22.2 dev eth0 src 172.16.22.130
cache mtu 1500 advmss 1460 hoplimit 64
別のターミナルでpingを開始します。
$ ping 127.1.1.1
eth0のICMPトラフィックを監視してみましょう:
$ sudo tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
07:28:42.060077 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 4, length 64
07:28:43.059920 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 5, length 64
lo
リモートマシンのネットマスクを255.255.0.0に変更し、IPアドレス127.1.1.1をネットワークインターフェースに追加するという演習を行います。ICMP応答が戻ってくるのがわかります。ルーターがうまく機能しない可能性があることに注意してください。