関連質問

関連質問

ループバックネットワークインターフェースを備えた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 ミリ秒
%

どうですか?

関連質問

その他参考資料

  • ジョナサンデボインポラード(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時代にさかのぼります。

関連情報