ループバックネットワークインターフェースを備えたFreeBSDシステムで...
%ifconfig lo0 によって 0 リンクループバックdrv_runningマルチキャスト実行中 nd6 Performnud auto_linklocal no_radr リンク rxcsum txcsum hwcsum rxcsum_ipv6 txcsum_ipv6 リンクアドレス指標0mtu 16384 タイプ24リンクステータス0物理0転送レート0 inet4 アドレス 127.0.0.1 prefixlen 8 bdaddr 127.0.0.1 inet6 アドレス::1 範囲 0 prefixlen 128 bdaddr ::1 範囲 0 inet6 アドレス fe80::1 範囲 3 prefixlen 64 inet6 アドレス::2 範囲 0 prefixlen 128 inet4 アドレス 127.53.0.1 prefixlen 8 bdaddr 127.53.0.1 inet4 アドレス 127.53.1.1 prefixlen 8 bdaddr 127.53.1.1 %
... IPアドレス127.0.0.2(この(または他の)ネットワークインターフェイスに割り当てられていない)をpingするとエラーが発生します。
%ping-c 1 127.0.0.2 PING 127.0.0.2(127.0.0.2): 56 データバイト ping: sendto: ネットワークに接続できません。 --- 127.0.0.2 ping統計 --- 1パケット送信、0パケット受信、100.0%パケット損失 %
OpenBSDも同様です。
%ping-c 1 127.0.0.2 PING 127.0.0.2(127.0.0.2): 56 データバイト ping: sendto: ネットワークに接続できません。 ping:127.0.0.2 64文字の書き込み、ret = -1 --- 127.0.0.2 ping統計 --- 1パケット送信、0パケット受信、100.0%パケット損失 %
ただし、Linuxでは127.0.0.2も構成されていません。
%ifconfig LO ルオ リンクループバック操作 リンク先アドレス 00:00:00:00:00:00 bdaddr 00:00:00:00:00:00 inet4 アドレス 127.0.0.1 prefixlen 8 bdaddr 127.0.0.1 inet4 アドレス 127.53.0.1 prefixlen 8 bdaddr 127.255.255.255 inet6 アドレス::2 範囲 0 prefixlen 128 inet6 アドレス fe80:: 範囲 1 prefixlen 10 inet6 アドレス::1 範囲 0 prefixlen 128 %
... pingは驚くほど成功しています。
%ping-c 1 127.0.0.2 PING 127.0.0.2 (127.0.0.2) 56(84)バイトのデータ。 127.0.0.2の64バイト:icmp_seq=1 ttl=64 time=0.044 ms --- 127.0.0.2 ping統計 --- 1個のデータパケット転送、1個のデータパケット受信、パケット損失0%、時間0ms rtt 最小/平均/最大/mdev = 0.044/0.044/0.044/0.000 ミリ秒 %
どうですか?
関連質問
- 」ネットワークインターフェイスにIPアドレスを割り当てる必要がない場合はいつですか?" - "仮想インターフェイス"の説明を尋ねる非常にバイパスな質問です。この質問は直接尋ねます。
- 」127.0.0.0/8をすべて正常にpingするにはどうすればよいですか?- 質問ごとに1つの質問ではなく、複数の質問が1つに統合されました。実際に答えはありませんいわゆる繰り返しで
- 」ループバックインターフェイスを介してLinuxネットワークでこの動作が発生するのはなぜですか?
lo
- Linuxでインターフェースが見える理由返品割り当てられたIPアドレスのping機能を制御します。その他ネットワークインタフェース(やはりBSDでの動作ではない) - 」ループバックではなくアドレスに向かうLinuxのローカルLANトラフィックはどうなりますか?"——に関する話非ループバック行動
その他参考資料
- ジョナサンデボインポラード(2019)。
ifconfig
。 スナックガイド。ソフトウェア。
答え1
ip-route
カーネルルーティングテーブルのエントリを操作するために使用されます。パスタイプ:
unicast
- ルーティングエントリは、ルーティングプレフィックスを含む宛先への実際のパスを記述します。...
local
- 宛先がこのホストに割り当てられます。パケットがループバックしましたそして地元で配達。
$ ip -4 route show table all type local
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
local 172.16.8.139 dev wlp2s0 table local proto kernel scope host src 172.16.8.139
local 192.168.122.1 dev virbr0 table local proto kernel scope host src 192.168.122.1
$ ip -4 address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
4: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet 172.16.8.139/24 brd 172.16.8.255 scope global dynamic noprefixroute wlp2s0
valid_lft 36391sec preferred_lft 36391sec
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
インターフェイスにアドレスが追加されると、そのアドレスへのローカルパスが自動的に追加されます。また、ループバックインターフェイス()にアドレスが追加されると、IFF_LOOPBACK
そのインターフェイスへのローカルパスも追加されます。ネットワークプレフィックス住所Linux 5.0では、この実装を見つけることができます。fib_add_ifaddr()。
逆に、ループバックではなくインターフェイスにアドレスを追加する場合、ユニキャストネットワークプレフィックスへのパスを追加します。
$ ip -4 route show table all type unicast
default via 172.16.8.1 dev wlp2s0 proto dhcp metric 600
172.16.8.0/24 dev wlp2s0 proto kernel scope link src 172.16.8.139 metric 600
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
ローカルパスは、「local」という特定のテーブルに追加されます。これの最も明白な意味は、fastがip -4 route
ローカルテーブルを表示しないことです。と同等だからですip -4 route show table main
。
linux-ip.netにはいくつかありますより広い情報。ローカルテーブルの他の2つの用途について言及します。
上記は、使用しているすべてのLinuxバージョンに適用できます。正確にどれだけさかのぼるかはよくわかりません。しかし、このip route
コマンドは非常に古いものです。少なくともLinux 2.2時代にさかのぼります。