2017-07-30 38 views
2

如果我有一個地址10.3.3.2,將其映射到v6將導致0:0:0:0:0:ffff:a03:302。 我可以ping通10.3.3.2但ping 0:0:0:0:0:ffff:a03:302給出「無路由到主機」錯誤。現在,我無法從我的網絡中ping任何IPv6地址,因此錯誤是預期的。我可以ping一個v6映射的v4地址嗎?

我很好奇,如果
ping6 0:0:0:0:0:FFFF:A03:302

如果IPv6流量正要出去完美。

+1

您不能簡單地將IPv4地址映射到您認爲的IPv6方式。 IPv4和IPv6是兩個完全獨立的協議,不能直接通信。 –

+1

您使用的表示法通常用於需要用IPv6表示法表示IPv4地址的軟件。但它仍然代表IPv4地址,不能用作真正的IPv6地址。 –

回答

2

你正在做的事情叫做NAT64,描述在RFC-6146

你必須做更多的事情才能發揮作用。

首先,映射地址必須以64:ff9b::(它是一個保留的前綴,專門用於NAT64)而不是0:0:0:0:0:ffff:(這個舊的前綴,最初出現在1995年末,在RFC-1884中,不用於IPv6 IPv4網關 - 例如,它用於映射網絡軟件存儲的地址,但不是當您想通過IPv6網絡連接到IPv4主機時)。

因此,映射10.3.3.2到IPv6給64:ff9b::a03:302

但在現實世界中,沒有人做這樣一個奇怪的映射,你只需要進行IP地址爲10.3.3.2主機名的DNS請求轉換爲符合DNS64的解析器(這種DNS解析器稱爲DNS64解析器,如RFC-6147中所述)。谷歌提供這一個(其中包括):2001:4860:4860::6464,免費供大家使用。所以,你只需要配置你的DNS解析器來請求這個Google主機(不要忘記刪除任何其他的解析器)。

請注意,Google公有DNS64解析器不支持私有IPv4地址。因此,在您的示例中,我們需要用公共地址替換10.3.3.2。所以,我選擇1.3.3.2,這是一個公開地址。

爲了讓您做出測試,我創建了以下DNS記錄:tstaupreti.fenyo.fr,映射到1.3.3.2。

然後使用,你可以很容易地檢查它是如何工作的:

1 - 首先,你可以問一個標準的公共DNS,像8.8.8.8(由谷歌公共DNS,但不符合DNS64),以舉一個IPv4地址用於該主機:

% dig @8.8.8.8 tstaupreti.fenyo.fr. a +short 
1.3.3.2 
% 

現在2-,你可以檢查有與主機名相關聯的IPv6地址:

% dig @8.8.8.8 tstaupreti.fenyo.fr. aaaa +short 
% 

3-那麼,讓我們看看^ h appens與谷歌DNS64解析:

% dig @2001:4860:4860::6464 tstaupreti.fenyo.fr. a +short 
1.3.3.2 
% 

這是正常的,因爲我們有請的IPv4地址,DNS64解析器,當然,IPv4的兼容。

4-但現在,讓我們來看看DNS64分解工作來計算你的映射:

% dig @2001:4860:4860::6464 tstaupreti.fenyo.fr. aaaa +short 
64:ff9b::103:302 
% 

正如你可以看到,谷歌NAT64解析器還沒有見過tstaupreti.fenyo相關的任何IPv6地址。 FR,所以想看看,如果IPv4地址被分配給這個主機名,它發現1.3.3.2和,因此,它轉換爲NAT64 IPv6格式:64:ff9b::103:302

但這是不夠的,能夠在使用IPv6對tstaupreti.fenyo.fr進行ping時獲得icmp回覆。

這是因爲您還需要訪問NAT64 IPv6到IPv4網關並將IPv6數據包64:ff9b::/96路由到此NAT64網關。這樣,無論DNS64映射返回什麼值,您的ICMP請求(ping)都將轉到NAT64網關。這個網關將你的數據包從IPv6轉換爲IPv4(或多或少像標準的NAT IPv4網關 - 更多細節參見RFC,有細微的變化)。

不幸的是,NAT64將64:ff9b::/96定義爲不能在Internet上路由的保留前綴(這是因爲每個提供NAT64網關的專用網絡上的地址是相同的,例如通常在專用路由上的10.xxx網絡,因此,出於同樣的原因,它不能在互聯網上路由)。因此,沒有公共NAT64網關與NAT64前綴64:ff9b::/96一起工作(您可以使用另一個前綴,並將其路由到配置有此不常見前綴的NAT64網關,但這是另一個故事)。一些互聯網服務提供商將這種地址路由到專用於其客戶的專用NAT64網關。如果您的ISP不這樣做,您需要自己在您的專用IPv6網絡上安裝這樣的網關。要做到這一點,您可以使用Linux的Tayga

因此,在執行了最後一步(例如安裝Tayga)後,您將收到來自ping請求的ICMP回覆。在將ping數據包發送到互聯網上的任何IPv4純服務器時它將工作。

相關問題