
我想透過 IPv6 位址到達此位址:
http://downloads.openwrt.org/attitude_ adjustment/12.09/ar71xx/generic/packages/
在我們的 Freifunk 路由器中沒有可用的 DNS,因此downloads.openwrt.org
無法解析名稱。網際網路上的所有伺服器只能透過 ipv6 位址存取。現在我們無法從路由器內部存取此包鏡像來通過opkg install
.
如果我們可以將其添加到我們的配置中,這將是一個解決方案,例如:
http://[2001:db8::1]/attitude_adjustment/12.09/ar71xx/generic/packages/
我們的路由器運行 OpenWRT 並且僅支援 IPv6,我想新增一個條目,/etc/hosts
以便網域名稱downloads.openwrt.org
解析為適當的 IPv6 位址
是否可以將 IPv6 重新導向到網域?
答案1
您不能簡單地「新增」IPv6 位址來存取只能透過 IPv4 存取的主機。這是兩個完全不同且不相容的協定。
為了您的 IPv6-僅有的為了能夠存取 IPv4 位址,需要有一個能夠存取 IPv4 的網關。這通常是透過 NAT64/DNS64 網關完成的,該網關將 IPv4 位址轉換為「假」IPv6 位址,並接受與這些「假」IPv6 位址的連接並將連接轉換為 IPv4 網路。這些 IPv6 位址將在該64:ff9b::/96
範圍內。
在OpenWrt中,NAT64是用Tayga完成的,DNS64是用bind完成的。有關如何設置它們的更多資訊是可在 OpenWrt wiki 中找到。你需要調整態度或打破障礙;以前的OpenWrt版本對IPv6和其他技術的支援不夠完整。
您可以將公共 DNS64/NAT64 解析器新增至 /etc/resolv.conf 中:
nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6
您也可以使用「復原」用戶端網站上的翻譯464x緯度。 464xlat 使用相同的工具。 (上面提到過,但只是以不同的方式)。使用 464xlat,您也可以透過文字 IP 存取 URL。
答案2
該網域downloads.openwrt.org
有 IPv4 位址,但沒有 IPv6 位址。因此,除非使用轉換機制,否則無法透過 IPv6 存取它。您可以使用 NAT64 來從純 IPv6 用戶端建立到該純 IPv4 伺服器的 TCP 連線。
但為什麼要使用僅支援 IPv6 的客戶端呢?採用雙堆疊是一個好主意,但目前純 IPv6 確實只對那些知道在擁有太多純 IPv4 主機的世界中引入的限制的人進行測試有用。
如果您設法打開與伺服器的 TCP 連接,您將面臨另一個挑戰。 HTTP 版本 1.1 要求用戶端傳送其透過 HTTP 連線聯繫的伺服器的名稱。許多網站(包括)都downloads.openwrt.org
需要發送此標頭。
如果您的 HTTP 用戶端知道要傳送的域名,則它只能傳送該標頭。因此,您最好讓用戶端知道原始 URL,並以某種方式授予其存取權限以將該名稱解析為 IP 位址。如果必須是 IPv6,那仍然意味著您需要 NAT64。然而,從網域名稱到 NAT64 IP 位址的對應可以放入 中/etc/hosts
,並且應該可以正常工作。
這對於單一網域來說可能效果很好。但是,如果您希望純 IPv6 主機能夠存取多個網域,而不必將每個網域都放入/etc/hosts
NAT64 位址,則需要對位址進行動態轉換。這就是 DNS64 的用途。
現在,如果客戶端確實具有 IPv4 存取權限並且僅缺少 DNS,那麼答案就會變得簡單得多。只需像 davidgo 建議的那樣輸入 IPv4 位址即可/etc/hosts
。當然,每次伺服器的 IP 位址發生變更時,您都需要更新該文件,但希望不會太頻繁。
答案3
我認為您可能問了錯誤的問題 - 您無法將 IPv6 位址重新導向到網域,因為該過程的工作方式相反,即網域解析為[或多個]主機。
我無法找到有關您的路由器的任何信息,但如果它運行 OpenWRT,您應該能夠在 /etc/hosts 中添加一個條目,以便域名解析為適當的 IP 位址。