闲谈IPv6-6to4隧道和ISATAP隧道
浙江溫州皮鞋濕,下雨進水不會胖!
本來我是不準備涉及這個話題的,我希望看到的是一個純粹的IPv6網絡,而對為了與IPv4網絡共存而引入的兼容性技術沒有絲毫的興趣。所以說,我就一直沒有去寫這方面的東西。
但是,具有諷刺意義的是,那些IPv6所特有的炫酷技術,比如Anycast,比如自動配置,比如源地址選擇,比如聚類分配等等,一般技術開發和運維人員涉及的還真不多,反而大家都必須要打交道的就是IPv6如何與IPv4網絡共存的技術。
所以,這是繞不開的。
本文主要閑聊一下關于隧道的技術。
以前做VPN的時候,徹底把隧道玩惡心了,但同時也馴服了各種各樣的隧道技術。任何隧道技術,都逃不開一句話,即 用一種協議作為運輸協議承載另一個作為載荷的協議。 之所以我們可以見到各種五花八門的隧道技術,那是因為以下的真理:
- 任何協議都可以做運輸協議
- 任何協議都可以做載荷
- so 任何協議都可以承載任何協議
就這么簡單!
于是,用IPv4作為運輸協議去承載IPv6報文,這是理所當然的啊!本文到底就能結束了。但是本文想表達的還有另一個點,那就是:
- IPv6地址具有非常強的編碼能力!
按照隧道的概念,就像曾經配置IPSec的隧道模式ESP一樣,在兩個IPv6孤島網絡的邊緣配置兩臺固定的雙棧路由器作為隧道的兩個端點,然后 IPv6報文就能被兩個路由器用IPv4封裝起來傳輸了, 一條隧道連接了兩座孤島!
這太沒有意思了。無聊!
但是在配置IPSec隧道時,大致也只能這么做了吧,充其量有個叫做easy vpn的技術或者類似的技術可以稍微減少一些工作量,但我并不覺得它們有多easy,相反,只要是配置IPSec這類,我就會嚴重發愁。
我真的為這個發愁了好幾年,為此還患上了電話狂躁癥,而且是晚期,只要我的電話一響,我就想摔手機,因為我知道電話那頭肯定要問網絡拓撲,隧道配置之類的常規問題。
若干年后,我接觸了IPv6相關的隧道配置。
IPv4承載IPv6報文的隧道可比這好玩多了。它竟然可以全自動地運行!
嗯,是的,不光純IPv6節點可以實現自動配置,IPv6-in-IPv4隧道也可以自動化!
那么,是什么機制讓IPv6-in-IPv4隧道具備了這種能力呢?答案就是 IPv4
地址可以被編碼藏匿在IPv6地址中,從而使用IPv6的自動配置特性!
直接看例子吧。
我們已經對于 6to4隧道 , ISATAP隧道 聽得太多了,概念我就不扯了,自行百度,谷歌,一搜一大堆。我這里想把這兩類隧道的操作流程展示一下。讓我們暫且拋開技術細節和理論概念以及實現的源碼,來一個感官上的體驗。
在展示之前,我們先要理解為什么需要隧道,隧道解決什么問題。
無論如何,隧道解決的是 如何讓一個孤立于IPv4網絡中的IPv6節點A訪問另一個IPv6節點B。
我們把被訪問的IPv6節點B視為存在于一個IPv6中心網絡中,這意味著在兩種場景下有兩種方案可以滿足需求:
- 節點A處在純IPv6孤立站點中,采用站點到IPv6中心網絡的方案
啊哈,這就是 6to4隧道! 也許概念上或者術語上還不筋道,但原理上就是如此。
- 節點A孤立存在,采用節點到IPv6中心網絡的方案
啊哈,這就是 ISATSP隧道! 概念上不太嚴謹,但差不多,就是這么回事兒。
大概就這么多東西,沒別的東西了。剩下的,自己動手配置一下可好?
嗯,相關的配置,請使用iproute2,參看ip-address manual,可知一切!
IPv6全網實施以后,人們的思維必須轉變。
IPv6其實不是在分配IP地址,而是在分配IP網段,要只知道,其實大多數情況下,IPv6只是分配一個64位的地址前綴,而不是分配一個全128位的IPv6地址。最典型的情況,IPv6在最精細的情形下,分配的是一個/64的前綴…
天吶,按IPv4的理解方式,你只要把IPv6地址當成是一個擁有64位地址空間的地址集就好了。剩下的低64位,那是可以由你自己自己來支配的,比如你可以根據你的設備MAC地址用EUI-64規則生成,也可以隨機生成,反正一切隨你自己。
IPv6時代,沒有誰可以有能力完全管理到獨立的/128地址,宇宙大帝也不能。
所以說,對于隧道,不再需要用單獨的IP地址來建立隧道,而是可以用網段來建立,然后這些網段前綴就可以結合IPv6自動配置去配置IPv4隧道了,多么好!不過說白了,IPv6-in-IPv4隧道的簡便性,還是因為 IPv6地址空間足夠大,足以將IPv4地址編碼于其中 所受益。
浙江溫州皮鞋濕,下雨進水不會胖!
總結
以上是生活随笔為你收集整理的闲谈IPv6-6to4隧道和ISATAP隧道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6to4与isatap的区别
- 下一篇: 我的Isatap隧道