IPv6與NAT(Network Address Translation)皆為IETF組織所制定的規範,前者為下一世代網際網路協定,而後者則為網址轉換之機制。
IPv6與NAT簡介
IPv6的發展過程,除了一般所知的IPv4位址不足之問題外,還有諸多技術上的考量,包括網路架構的簡單化、網路組態的自動化、路由效能的改善、網路安全的提昇、行動性的支援,以及服務品質的提供等。
IPv6位址長度為128位元,最多可提供3.4 x 1038個固定位址。讀者可將圖一的IPv6標頭格式,與圖二的IPv4標頭格式比較,可以發現前者少了6個欄位,所以IPv6可節省不少封包處理之時間。
我們可以看出其中最明顯的差異在於IPv6標頭的流量標籤(Flow Label),而在IPv4中並無類似的欄位。流量標籤的目的,在於標示特定的即時與多媒體訊務;而下層標頭(Next Header)則是用來標示緊接於IPv6標頭後的延伸標頭種類,包括節點選項標頭(Hop – by – Hop Options Header)、收端選項標頭(Destination Options Header)、路由標頭(Routing Header)、分割標頭(Fragment Header)、認證標頭(Authentication Header)、加密安全資料標頭(Encrypted Security Payload Header)與其它上層之標頭(Upper Layer Header),圖三顯示出IPv6延伸標頭的架構。
IPv4位址的不足
這些延伸標頭的先後次序,需依照上述的先後次序來排列。在IPv6普遍出現後,全世界網際網路位址不足的情形可望能夠解決。至於IPv4位址,目前已被註冊使用的位址數約佔全部的70%,專家預估2010年將會用盡。因為美國擁有約四分之三的IPv4位址,所以亞洲及歐洲等資訊先進國家,已慢慢開始面臨IP位址不足的問題了。而無線行動通訊與網際網路家電設備在日漸普及後,將會需要固定的IP位址來做網路的連結。
雖然IPv6標準已大致完備,但要推動全球化,的確不是短時間內就能完成。究其原因,絕大多數的網路使用者目前只用到電子郵件與WWW,這些應用不一定需要公共的IP位址,所以使用者不易感受到IPv6的迫切需要。因此要將IPv6全面取代IPv4,可能需要相當長的一段時間。有關詳細之IPv6相關規範,可以參考RFC 2460 – 2463與其它數十份相關的RFC。
NAT的網址轉換
網址轉換基本上是將一個網路位址轉成另一個不同的位址的機制,最常見的是,利用一個IP位址將多部電腦連接上網際網路。NAT的機制通常是安裝在路由器上,它的一邊連到末端網域(Stub Domain),就像是區域網路或企業網路,在此我們稱之為內部網路;另一邊則連到骨幹網路,被稱為外部網路。
一個送往外部網路的封包(Packet),NAT會將它的送端區域位址轉換為全球單一位址;反之一個送往內部網路之封包,NAT會將它的全球單一位址轉成內部區域位址;這種方式提供了企業網路(Intranet)使用者一種有效且便宜的網際網路擷取服務。不過透過網址轉換後,雖然外部網路使用者無法知道NAT的存在,但對內部而言,每個使用者還是可以連線上網。
圖四顯示了NAT的運作方式,假設內部網路上的工作站A(192.168.100.100)送一封包至外部網路的伺服器B(208.208.111.222),此封包在經過NAT路由器時,NAT機制會將送端位址192.168.100.100改成公共位址140.113.100.200。
因此當伺服器B收到工作站A的封包時,送端的位址將會是140.113.100.200;而伺服器B回應封包的收端位址也會是140.113.100.200,此封包在經過NAT路由器時,收端位址將被轉換成192.168.100.100,然後再送至內部網路上的工作站A。如果內部工作站A與C都同時都連到伺服器B,那麼就必須以不同的TCP埠號(Port Number)來區分,因為對於不同的網路連線,其識別方法就是要利用收端與送端的IP位址與TCP埠號來作區分。
由圖四的轉址表可以看出,工作站A與C的外送封包使用同一個公共IP位址,但TCP埠號卻不一樣,因此NAT可以透過TCP埠號來分辨不同的內部區域網址。利用NAT的動機,除了因應日益短缺IPv4位址外,網路與資訊安全的考量以及管理上的方便也是重要的因素之一。
至於內部的網址不同於外部的網址也具有多項的意義,它可用在負載平衡(Load Balancing),例如熱門網站可以利用NAT將大量查詢要求分散到不同的網頁伺服器,以平衡各伺服器的負載,並避免造成塞車。因為NAT轉址的速度遠比伺服器執行網頁查詢的速度為快,因此只要內部區域位址不會太多,便不會造成NAT設備之塞車,同樣的方法也可以用在大型資料庫伺服器上。
NAT的防火牆機制
NAT同時也提供了各式的擷取安全管制,最典型之例子就是防火牆(Firewall)的機制。
由於NAT可以將網路分隔成內部與外部,所有經過NAT設備的IP封包標頭都需要在此重寫,因此外部網路的使用者事實上無法看到內部網路的狀況,如此一來,可防止非法之入侵。NAT為提供網路管理者作業上的方便,面對日漸不足的IP位址,網路管理者可以使用私有IP,例如192.168.x.x或10.x.x.x;這些IP位址若只用於內部網路,可以不用登記註冊。
另外一種日漸重要的網路轉址應用為NAT – PT(Network Address Translation-Protocol Translation,RFC 2766),它是用來做IPv4與IPv6之間的協定轉換。由於將IPv4轉移至IPv6的過程是漸進式,因此預期兩種協定將會同時存在相當長的一段時間,並且互相對話,而NAT – PT將繼續扮演“翻譯者”的角色。NAT – PT通常是路由器,並安裝在網路的分界點(Network Boundary)。
IPv6與NAT的優缺點
從技術觀點而言,IPv4已使用了二十多年,面對日新月異的各種應用,功能難免會有所不足。而IPv6則是針對這些不足之處加以改進,如在IP層的每個節點做錯誤檢查(Checksum)、不用做封包切割(Fragmentation)、沒有標頭選項(Header Options)、以群播(Multicast)取代廣播(Broadcast)、以64位元取代原來之32位元、最小MTU加大至1280字元(Bytes)、延伸標頭(Extended Header)使選項部份不受限制,以及可以將選項的處理交給接收端等。因此整體而言,IPv6的效能將比IPv4更為強化。
此外,從使用者之觀點來看,IPv6可以支援隨插隨用(Plug and Play)的功能,大幅簡化了網管者的作業。用戶可以無接縫式的連上網際網路、可以得到確保品質的服務,及可以提供更方便的多駐地(Multi – homing)功能,簡單說就是同時連上多個ISP。
NAT的最大好處為簡化網路異動的管理程序,例如當內部網路的伺服器或主機的位址改變時,只要更改NAT路由器的設定,往後外部網路的主機想要連線到這些伺服器或主機時,仍可以用原有的位址。
當然NAT也有一些缺點,如實際上它並沒提供更多公用的IPv4位址,和它破壞了端對端的雙向通訊模式;一部電腦可以透過NAT直接連到一部在公共IP網路上的電腦,但反過來看,後者卻無法“看”到前者並直接與其連接。此外,它會造成單點當機,也就是說,如果NAT設備當機,所有經過它的連線都會因而中斷。其餘的缺點則有讓IPsec功能失效,及行動式設備使用NAT將容易造成問題等。
IPv6與 NAT實務上的問題
IETF並非一開始就決定發展IPv6為下一世代網際網路協定,事實上它有好幾個競爭者。1994年初,下一世代IP建議書被制定出來後,一直到了1995年底,才完成第一份IPv6規範(RFC1883)。目前的IPv6規範(RFC 2460)則是在1997年底修正改進後的版本。至於網路位址轉換器(The IP Network Address Translator,RFC 1631),則是在CIDR與 DHCP通過後,於1994年制定。雖然NAT比IPv6早一步制定,不過NAT很快地被普遍的接受與使用,而IPv6的推展則相對地緩慢。
IPv6的瓶頸與解決方案
IPv6發展緩慢的原因是可以理解,因為目前網際網路大多數的應用系統都是在IPv4的架構底下,使用NAT並不會影響這些使用者的日常應用,而且在技術上不受外部網路架構之影響。不過一旦更新為IPv6,那麼所有相關的網際網路連線作業、應用程式與所經過的路由設備都必須能夠支援IPv6;也就是說牽涉到的層面很廣,就算網路管理者改用新的IPv6協定,也只能更新內部網路的部份,並不能保證使用者的各種應用都可以照常順利執行。這些複雜度與不確定性,也間接地造成了許多系統管理者的觀望。
目前漸進式的解決辦法是使用雙堆疊(Dual Stack)的方式,即網路設備商提供同時支援IPv4與IPv6的路由器;如此一來,不論是IPv4或IPv6的應用程式,使用起來都不成問題。不過為了要讓所有網際網路上的路由設備都更新成雙堆疊系統,所有應用程式也應更新為IPv6版本,但這絕非短期間內可以完成。
除了實現過程上的複雜度外,還有IPv6的一些規範可能會造成問題。由於IPv6協定中有延伸標頭的選項,因此如果為了安全考量而啟動封包過濾機制,那麼所有封包上之延伸標頭皆須檢查;如果這些動作由網路節點來處理,那麼將會大大降低路由器的效能。雖然透過硬體設計可以加速封包處理速度,但對於選項的處理並不易由硬體來實現,因此這方面的顧慮是可以理解的。
NAT發展的情況
簡單小型的NAT設備在成本上比IPv6路由器設備便宜許多,其安裝也十分容易,這也是它在發展與實現過程上之優勢。不過NAT不見得適合大規模的系統,一方面是由於效能的考量,另一方面,它的單點當機影響也是個重要因素。目前網路攻擊事件層出不窮,NAT也很容易造成駭客攻擊的目標;假如駭客一旦知道一個NAT的存在,並弄垮它,那麼就等於癱瘓掉一個網路。
假如在NAT – PT的過程中,只是做位址的轉換,那應該沒什麼問題,但若要轉換協定中的其它欄位,例如IPv6中的流量標籤或是延伸標頭,因IPv4中沒有這些項目,其結果是封包仍然可以到達目的地,但一些訊務特性將因NAT – PT而無法顯現。
IPv6的未來趨勢
目前在許多資訊先進的國家,都有IPv6的大型或試用計畫在進行,例如日本的WIDE、德國的JOIN/DFN、加拿大的Viagenie、挪威的UNINETT、瑞士的SWITCH、法國的G6/Renater2、奧地利的ACOnet,以及歐盟的Quantum等知名國際大廠也都相繼投入了IPv6的發展與應用。在美國,微軟(Microsoft)與思科(Cisco)與昇陽(Sun)都宣佈支援IPv6;在歐洲,英國電信(British Telecommunications)也提供了免費的IPv6來作試用;而Nokia則在英國展示了IPv6的模擬生活,並採用IPv6來實現行動網際網路(Mobile Internet)。
日本發展最快,據估計NTT將成為全世界第一個利用IPv6的ISP,至於時間表所預期的狀況是在未來三、五年內,IPv4與IPv6將同時並存一段時間。至於台灣,目前IPv6聯盟已於2002年成立,並計畫在2007年完成全台網路升級。
結語
隨著IPv4的位址越來越難取得,且有越來越多的應用程式轉移到IPv6上,使用者將會慢慢改用IPv6;不過可能要等到網際網路上的IPv4使用者少到廠商不願再提供服務時,IPv6才會全面實現。但要多久的時間,目前並不容易斷定。
至於NAT,因為IPv6的位址充裕,因此不需要NAT再來擴充位址,不過網路轉址的目的不一定是擴充位址,有些是用在負載平衡與安全防護方面,還有前面提到的IPv4/IPv6協定之轉換。因此NAT預期在未來數年內還會持續地發展,就算IPv6全面實施,NAT仍是有一定的角色要扮演。
<作者任職於交通大學資訊工程系:ycchen@cise.nctu.edu.tw>