IPv6 自訂環回位址並從另一台主機 ping 它

IPv6 自訂環回位址並從另一台主機 ping 它

我可以或如何在主機 A 的環回介面上新增自訂 IPv6 位址並從主機 B 對其執行 ping 操作?

我嘗試添加類似這樣的內容::ffff:5:4:3:2,但是ip -6 route說,這個目的地是unreachablewith error 101,但我可以從主機 A ping 它tap0。 ping 通」我不明白環回允許哪些位址、為什麼我的自訂無法存取、為什麼我可以從主機 A ping 它、如何啟用route_localnetIPv6 rp_filter

作業系統:ArchLinux,核心 4.10。

我知道 IPv4 的方法,但 IPv6 的工作方式完全(或不是?)不同。

答案1

是的。正如您可以使用 IPv4 執行此操作一樣,這稱為路由。您必須告訴一台主機如何到達另一台主機。

假設我們有兩個主機,A 和 B。

::1主機 A在環回介面上有其預設環回位址以及您的自訂位址。 (在我的範例中,自訂地址將為fd56:dcaa:2099::1。我從唯一本地地址中選擇了該地址。您應該使用 ULA 位址用於此類目的。

主機A還有一個乙太網路接口,暫且稱之為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

該清單中有四個不同的地址(您可能有更多)。出於我們的目的,您需要在其後顯示“範圍連結”。在我的系統上(在我的範例中也是如此),那就是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

我們正在做的是告訴主機 B 的核心它可以到達fd56:dcaa:2099::1(主機 A 在其環回介面上的特殊位址)fe80::5520:a68f:5416:a68c(主機 A 在其介面上的鏈路本地位址eth0),但主機 B 需要嘗試fe80::5520:a68f:5416:a68c主機B的 eth0介面. (這就是鏈路本地地址的棘手之處。地址本身僅在給定網段的上下文中才有意義。請研究 OSI 網路模型以獲取更多詳細資訊。)

一旦主機 B 的路由表中有該條目,您應該能夠從主機 B ping 主機 A 的自訂位址,因為主機 B 現在知道使用主機 A 的連結本機位址作為路由器來到達該位址。

答案2

因為環回位址和介面是在單一主機中的。不適用於與其他設備通訊。

相關內容