在 LAN 上的 Linux 機器之間測試 IPv6

在 LAN 上的 Linux 機器之間測試 IPv6

我正在嘗試建立 IPv6 測試平台。非常基本:只有兩個 Ubuntu Linux 機器透過 LAN 相互通訊。兩個盒子都有有效的 IPv4 連接,但我沒有成功地使用 IPv6 上的 SSH。按照此如何,我已經給了兩台機器在站臺本地範圍內的位址(fec0::)。在第一個盒子上,我跑了:

sudo ifconfig eth0 inet6 add fec0::1/64

第二次,我跑了:

sudo ifconfig eth0 inet6 add fec0::2/64

然後我檢查了路由表,每個似乎都有一條透過 eth0 介面到達該網路的路由。接下來,我新增了一個條目,/etc/hosts從第二個方塊指向第一個方塊。但是當我嘗試從第二個盒子透過 SSH 連接到第一個盒子時,SSH 用戶端就會掛起。沒有錯誤或任何東西。如果我tcpdump在客戶端上運行,我根本看不到 IPv6 流量。這是怎麼回事?

請注意,如果我透過 SSH 連接到ip6-localhost伺服器電腦到其自身的位址,則它工作正常,因此這似乎不是 SSH 問題。非常感謝任何幫助。

答案1

首先,如果您已經ufw安裝,請檢查/etc/default/ufwIPV6=no選項是否已設定。您必須將其設定為yes預設ufw防火牆所有 IPv6 流量。

完成此操作後,請嘗試一些在學習 IPv6 時應該了解的基本診斷方法。

您應該做的第一件事是安裝該ndisc6軟體包,然後嘗試進行鄰居請求。 (這相當於在 IPv4 中進行 ARP 請求)

sudo apt-get install ndisc6

請注意,您需要universe為此啟用儲存庫。

然後,從您的第一台機器:

ndisc6 fec0::2 eth0

這將確保您可以找到 的 MAC 位址fec0::2

(請注意,該ndisc6軟體包還附帶了一個方便的實用程序,rdisc6如果您的網路上有 IPv6 路由器,該實用程式會很有用;它將檢查路由器是否正確響應。)

驗證鄰居發現有效後,下一步嘗試ping6 fec0::2

如果您仍然遇到問題,您可能需要發布其他診斷資訊:

/sbin/ip -6 addr
/sbin/ip -6 neigh
/sbin/ip -6 route
sudo /sbin/ip6tables -L

答案2

我們需要更多資訊才能真正提供協助 - 首先,您能否透過 IPv6 在兩台主機之間成功執行 ping 操作?如果您無法 ping 通,那麼您還有一個更基本的問題需要解決...

假設你ping(基本連線正常)在 netstat 中仔細檢查(或透過從本機 SSH 連線到 fec0::N 位址)以確保您的 SSH 守護程式正在偵聽您嘗試使用的 IPv6 位址。您可能需要編輯 sshd.conf 檔案和/或重新啟動 sshd,以便它意識到有新的 v6 位址可供偵聽。

相關內容