IPv6カスタムループバックアドレスと別のホストからのping

IPv6カスタムループバックアドレスと別のホストからのping

ホスト A のループバック インターフェイスにカスタム IPv6 アドレスを追加し、ホスト B から ping を実行することはできますか?

私はこのようなものを追加しようとしました::ffff:5:4:3:2が、 では、この宛先はであるip -6 routeと表示されますが、ホスト A からは ping できます。たとえば、このアドレスを に設定すると、ルートには到達できますが、ホスト B からは依然として「ping できません」。ループバックがどのアドレスを許可するのか、カスタムが到達できないのはなぜなのか、ホスト A から ping できるのはなぜなのか、IPv6 でと を有効にする方法がわかりません。unreachableerror 101tap0route_localnetrp_filter

OS: ArchLinux、カーネル4.10。

IPv4 の場合のやり方はわかっていますが、IPv6 の場合はまったく(あるいはまったく)異なる動作をします。

答え1

はい。IPv4 でこれを行うのと同じように、これはルーティングと呼ばれます。あるホストに別のホストに到達する方法を伝える必要があります。

ホスト A と B の 2 つのホストがあるとします。

ホストAには、デフォルトのループバックアドレス::1と、ループバックインターフェース上のカスタムアドレスがあります。(私の例では、カスタムアドレスは になりますfd56:dcaa:2099::1。これは、ユニークローカルアドレスから選択しました。ULAアドレスを使用するこのような目的のためです。

ホスト A には Ethernet インターフェイスもあります。これを と呼びますeth0。IPv6 では、IPv6 リンク ローカル アドレスを持ちます。他の IPv6 アドレスを持つ場合もあります。これらを見つけるには、 を実行しますip -6 addr eth0。私のシステムの例を次に示します。

$ ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2601:404:ce00:adc0:9d6c:9e16:a9a9:b03b/64 scope global temporary dynamic 
       valid_lft 593594sec preferred_lft 74600sec
    inet6 2601:404:ce00:adc0:bc87:129a:ed5d:814/64 scope global temporary deprecated dynamic 
       valid_lft 78769sec preferred_lft 0sec                                                                                                                                                                                      
    inet6 2601:404:ce00:adc0:1453:3734:6742:4500/64 scope global mngtmpaddr noprefixroute dynamic                                                                                                                                 
       valid_lft 2591820sec preferred_lft 604620sec                                                                                                                                                                               
    inet6 fe80::5520:a68f:5416:a68c/64 scope link                                                                                                                                                                                 
       valid_lft forever preferred_lft forever

このリストには 4 つの異なるアドレスがあります (さらに多い場合もあります)。ここでは、その後に「scope link」と表示されているアドレスを使用します。私のシステムでは (つまり、私の例では)、それは ですfe80::5520:a68f:5416:a68c

ホスト B にもインターフェースがありますeth0。ホスト B がホスト A の特別なループバック アドレスにアクセスできるようにするには、ホスト B がそのアドレスの場所を知っている必要があります。これを行うには、ホスト B のルーティング テーブルにエントリを追加します。

# ip route add fd56:dcaa:2099::1 via fe80::5520:a68f:5416:a68c dev eth0

fd56:dcaa:2099::1ここで行っていることは、ホストBのカーネルに、(ホストAのループバックインターフェース上の特別なアドレス)にfe80::5520:a68f:5416:a68c(ホストAのインターフェース上のリンクローカルアドレス)で到達できるが、ホストBは(ホストAのループバックインターフェース上の特別なアドレス)からeth0到達しようとする必要があることを伝えている。fe80::5520:a68f:5416:a68cホストBの eth0インターフェース。(これがリンクローカル アドレスの難しいところです。アドレス自体は、特定のネットワーク セグメントのコンテキストでのみ意味を持ちます。詳細については、OSI ネットワーク モデルを調べてください。)

ホスト B のルーティング テーブルにそのエントリが作成されると、ホスト B はホスト A のリンク ローカル アドレスをルーターとして使用してそのアドレスに到達できることを認識するため、ホスト B からホスト A のカスタム アドレスに ping を実行できるようになります。

答え2

ループバック アドレスとインターフェイスは単一のホスト内向けです。別のデバイスとの通信を目的としたものではありません。

関連情報