ループバックデバイスはどのように実装されていますか?


8

ループバックネットワークインターフェイス

完全にソフトウェアで実装された仮想ネットワークデバイスです。

しかし、この実装は実際にどのように達成され、どのように操作しますか?

私の知る限り、IPはローカルルーティングテーブルでローカルとしてマークされています。

ip route show table local  

ローカルとしてマークされたIPに送信すると、ループバックデバイスがトリガーされます。 しかし、この検出は純粋にルーティングテーブルによって行われますか、それとも他のカーネル操作によって行われますか?

編集:私の最終的な目標は、ループデバイスの構成を操作することです。これにより、ラップトップ上のインターフェイス(2つのwlanアダプター)間でデータグラムを送信すると、ローカルループではなく、ネットワーク内に実際のトラフィック/データグラムが発生します。インターフェース1-> WLAN->インターフェース2およびNOT:インターフェース1-> LOOP->インターフェース2

回答:


5

ルーティングテーブルを通じて完全に処理されます。

楽しみたい場合は、仮想マシンで試してみるのはかなり簡単です。あなたがこれを試すマシンで起こり得ることについて私は責任を負いません。

まず、ネットマスク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応答が戻ってくるのがわかります。ルーターがうまく機能しない可能性があることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.