【図解】ループバックアドレスの仕組みとメリット,使い方,ループバックインタフェースとの違い

ループバックアドレスとは

IP のループバックアドレスとは、その機器自身を表す IP アドレスです。

普通の IP アドレスは物理インタフェースに紐付いているため、インタフェースがリンクダウンするとその IP は使えなくなり、疎通が取れなくなります。

ですがループバックアドレスはその機器が起動していればその IP を使うことができます

例えば ファイルサーバ (SMB/CIFS) を構築した後のテストとして、まだネットワーク接続はしたくないけど IP 接続が可能かどうかを調べるときは、ファイルサーバの OS にログインし、ループバック IP アドレス宛に通信して確認することができます。具体的にはエクスプローラで \\127.0.0.1 と打ちます。

ループバックインタフェースとの関係

IP アドレスは通常は Ethernet 等の物理インタフェースに紐付きますが、ループバックアドレスはループバックインタフェースという論理インタフェースに紐付きます

SVI (VLAN インタフェース) も論理インタフェースですが、例えば VLAN 10 のインタフェースは VLAN 10 に所属する物理インタフェースが全て Down の場合、VLAN 10 のインタフェースも Down になります。そういう意味では物理インタフェースとの紐付けがあります。

Linux だと "ip a" コマンド等で "lo" というインタフェースが見えるでしょう。

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

IP 通信を行うためには IP の割り振られたインタフェースが必要です。ループバックインタフェースはループバックアドレスを割り振るためのインタフェースであり、ループバックアドレスはその機器自身を表す IP アドレスとなります。

ループバックアドレスの種類

ループバックアドレスは主に 2 種類あります

1つは RFC1122 や RFC6890 で定義されている 127.0.0.0/8 のアドレス帯で、主に前述の Linux や Windows 等の PC/サーバ向け OS でデフォルトで設定されています。ローカル・ループバックアドレスと呼ぶこともあります。

このアドレス帯は絶対に自身を表すものだとRFCで決まっており、基本的にルーティング設定はできません。なので、自分宛にしか通信できません。

もう1つは NW 機器のループバックインタフェースに設定する IP アドレスです。これは特にアドレス帯に制限はなく、普通のユニキャスト用アドレスが自由に割り振れます

こちらは通常のユニキャスト用アドレスなのでルーティング可能です。つまり他のホストからルーティングによりループバックアドレスに通信することができます。

PCやサーバでのメリットや使われ方

前述の通り、そのサーバ内で IP 接続テストを行うことができます。ファイルサービス (SMB/CIFS) だけでなく、Webサービス等、色々なサービスを確認することもできます。

他にもポートフォワードによるアクセス振り分けもできます。

例えば Oracle VM VirtualBox 上の仮想マシンのネットワークが NAT 方式で、SSH接続をしたいときはポートフォワードの設定を使います。以下のように設定すれば 127.0.0.22 への TCP:22 を VM の IP である 10.0.2.15:22 へフォワードできます。

SSL-VPN のエージェント型の接続方式でも同様にポートフォワードでリモートVPN接続できたりします。

NW機器でのメリットや使われ方

ネットワーク機器では IP の割り振られたインタフェースを複数持つため、代表 IP として分かりやすいループバックアドレスを使うことが多いです。

そのため、OSPF や BGP, MPLS 等の router-id はループバックアドレスから採用するのが最優先になっています。

その他のメリットとして、例えば BGP のネイバーを確立するときに 1 つのルータで経路を冗長化してるときはループバックアドレス同士で確立すると 1つのネイバーを作成するだけで安定した BGP ルート交換が実現できます。

また、例えばルータを ping で死活監視するケースでは、物理インタフェースに対して死活監視をするとインタフェースのリンクがダウンしたのかルータ自体がダウンしたのか分かりません。ループバックアドレスを監視することで機器自体の死活を確認できます

ループバックアドレスに Ping が通らないときの対処

RFC1122 / RFC6890 等のローカル・ループバックアドレスは基本的に疎通できないことはありません。もし疎通しないとしたらそもそも OS 等がそういう作りをしているのでしょう。例えば Cisco ルータだとこのアドレス帯の設定をしようとすると以下のエラーが出力されます。

Router(config-if)#ip add 127.0.0.1 255.0.0.0
Not a valid host address - 127.0.0.1

一方、NW 機器のループバックアドレスについては、疎通しない場合は単にそのループバックアドレスへのルートが無いか、ARP 解決に失敗しているのでしょう。

以前『あるルートからはループバックアドレスへの Ping について、WAN 側からは疎通するけど LAN側からは疎通しない』というトラブル報告がありました。

これはそもそもサブネットマスクがPCとルータで不整合を起こしていることが問題なのですが、PCは自身のIP=10.1.255.11/24 とルータのループバックアドレスIP=10.1.255.129 が同じセグメントなので ARP 解決しようとして失敗しています。

Proxy-ARP の設定をしていればおそらく疎通していたでしょう。

このように、もし疎通できないのであれば基本に立ち返って見てください。