IPv6隧道及NAT-PT技術講解

39.1 IPv6隧道簡介
IPv6 技術相比 IPv4 技術而言具有許多優勢。然而,人們一致認爲,IPv6 部署的任何成功策略均需其
在一定持續時期內與IPv4共存。爲了管理這種從IPv4 到IPv6的長期複雜過渡,人們已制訂出許多策略。
以下部分將對若干此類策略予以闡述。
雙棧骨幹網
     在雙棧骨幹網部署中,網絡中的所有路由器均同時保持IPv4 與IPv6協議堆棧。應用程序在
使用 IPv4 或 IPv6 之間進行選擇,並由應用程序按照 IP 業務負載的類型與通信的特定需要選擇
正確的地址。
     如今,雙棧路由選擇是具有需要兩種協議的IPv4 與IPv6組合應用程序網絡基礎架構的首選
部署策略。然而,該策略卻有若干限制:網絡中的所有路由器必須升級到 IPv6;路由器還需要
雙尋址方案、 IPv4與IPv6選路協議的雙重管理以及IPv4與IPv6兩個選路表所需的足夠存儲空間。 
通過IPv4實現IPv6的隧道傳輸
通過IPv4實現IPv6的隧道傳輸方法是在IPv4 數據包內封裝IPv6業務負載,通過IPv4骨幹
網進行發送(如圖所示)。這使“孤島狀”IPv6 終端系統和路由器能夠通過現有IPv4基礎架構進行
通信。
 

如同RFC2893所定義的那樣,隧道的兩個端點需要使用適當的IPv6和IPv4地址進行配置。
坐落於端點的邊緣路由器,通常爲雙棧路由器,將按照配置轉發通過隧道的業務負載。
通用路由封裝(GenericRoutingEncapsulation,簡稱GRE)隧道
按照通過 IPv4 網絡傳輸數據的定義,GRE 通過將需要傳輸的數據包封裝在 GRE 數據包內,
從而使一個網絡協議能夠通過另一個網絡協議進行傳輸。GRE 是通過隧道傳輸 IPv6 業務負載的
一個理想機制。
兼容IPv4的隧道或6over4隧道
如同在 RFC2893 中定義的那樣,這些隧道機制在兼容 IPv4 的 IPv6 地址上自動建立隧道。
兼容 IPv4 的 IPv6 地址將最左側的 96 位定義爲零,後面跟隨着一個嵌在最後 32 位中的 IPv4 地
址。例如,0:0:0:0:0:0.64.23.45.21是一個兼容 IPv4的地址。
6to4隧道
如同 RFC3056 所定義的那樣,6to4 隧道使用嵌在 IPv6 地址中的一個 IPv4 地址來確認隧道
的端點,並自動建立隧道(如圖所示)。
 

站內自動隧道尋址協議(Intra-SiteAutomaticTunnelAddressingProtocol,簡稱ISATAP)隧道
如同在draft-ietf-ngtrans-isatap-16中定義的那樣,ISATAP隧道傳輸非常類似於6to4隧道傳
輸,但它是爲在本地站點或校園網中使用而設計的。ISATAP 地址包含 64 位網絡前綴 0000:5EFE
以及一個確認隧道端點地址的IPv4地址(如圖所示)。
 

多協議標記交換(Multi-ProtocolLabelSwitching,簡稱MPLS)隧道
使用 MPLS 技術,孤立的 IPv6 域能夠通過一個 MPLSIPv4 核心網絡在彼此間進行通信。因
爲 MPLS 轉發是基於標記的基礎之上,而非基於 IP 包頭本身,所以這種實施需要的骨幹網基礎
設施升級大大減少,核心路由器的重新配置也有所下降,從而爲部署IPv6提供了一個非常經濟
合算的方法。此外, MPLS固有的***與業務負載技術維護服務使IPv6網絡能夠通過支持IPv4***
與MPLS-TE的基礎架構併入***或外部網絡。
 
39.2 IPv6隧道配置
39.2.1雙棧隧道
我們來看如下拓撲:
 
在R1上的配置示例如下:
r1(config)#interface    tunnel 0
r1(config-if)#ipv6    address 3ffe:b00:fff:2::1/64
r1(config-if)#tunnel source 132.214.1.1
r1(config-if)#tunnel destination 132.214.1.2
r1(config-if)#tunnel mode ipv6ip
r1(config-if)#exit
r1(config)#ipv6 route ::/0 tunnel 0
r1(config)#do show ipv6 interface tunnel0
Tunnel0 is up, line protocol is up
   IPv6 is enabled, link-local address is FE80::84D6:101 [TEN]
   No Virtual link-local address(es):
   Global unicast address(es):
     3FFE:B00:FFF:2::1, subnet is 3FFE:B00:FFF:2::/64 [TEN]
   Joined group address(es):
     FF02::1
     FF02::2
    FF02::1:FF00:1
    FF02::1:FFA8:7
   MTU is 1476 bytes
   ICMP error messages limited to one every 100 milliseconds
   ICMP redirects are enabled
   ICMP unreachables are sent
   ND DAD is enabled, number of DAD attempts: 1
   ND reachable time is 30000 milliseconds
   Hosts use stateless autoconfig for addresses.

39.2.2 6to4隧道
6to4 Tunnel是一種通過對IPv6報文進行 2次封裝使其在IPv4網絡中傳輸的技術,
 
其配置方法如下:
r1(config)#int loopback 0
r1(config-if)#ip addr 13
r1(config-if)#ip addr 132.214.1.10 255.255.255.0
r1(config-if)#int fa0/0
r1(config-if)#ipv6 address 2002::1/64
r1(config-if)#int tunnel1
r1(config-if)#no ip address
r1(config-if)#ipv6 unnumbered fastEthernet 0/0
r1(config-if)#tunnel source loopback 0
r1(config-if)#tunnel mode ipv6ip 6to4  
r1(config-if)#
r1(config)#ipv6 route 2002::/16 tunnel1
 
39.2.3 GRE ipv6隧道
GRE方式封裝IPv6報文如下:
 
 
配置方法如下:
r1(config)#int tunnel 2
r1(config-if)#ipv6 address 3ffe:b00:ffff:2::1/64
r1(config-if)#tunnel source 206.123.31.200
r1(config-if)#tunnel destination 132.214.1.10
r1(config-if)#tunnel mode gre ipv6
 
39.2.4 ISATAPipv6隧道
站內自動隧道尋址協議(ISATAP:  IntraSite Automatic Tunnel Addressing Protocol)  過渡技術就是採用了
雙棧和隧道技術,並基於企業網和主機的一種過渡技術。  
ISATAP隧道不僅完成隧道功能,還可以通過IPv4網絡承載IPv6網絡的 ND協議,從而使跨IPv4網絡
的設備仍然可以進行IPv6設備的自動配置。分散在IPv4網絡中的各個IPv6孤島主機通過ISATAP技術自
動獲得地址並連接起來。 它使用特殊的地址格式: ::0:5efe:a.b.c.d  前64bit通過向ISATAP 發送請求獲得,
後64比特中5efe爲固定,a.b.c.d爲接口的IPv4地址。
 
ISATAP在路由器上的配置如下:
Router(config)#int fa0/0
Router(config-if)#ip address 206.123.31.200 255.255.255.0
Router(config)#int tunnel0
Router(config-if)#tunnel source fastEthernet 0/0
Router(config-if)#tunen
Router(config-if)#tunn  
Router(config-if)#tunnel mode ipv6ip isatap
Router(config-if)#no ipv6 nd suppress-ra
Router(config-if)#ipv6 address 3ffe:b00:ffff:2::/64 eui-64
39.2.5自動IPv4兼容隧道
自動隧道的特點是能夠完成點到多點的連接,手動隧道僅僅是點到點的連接。IPv4 兼容IPv6技術能
夠使隧道自動生成。IPv4 兼容 IPv6 隧道只需要告訴設備隧道的起點,終點由設備自動生成——隧道的
端口使用IPv4 兼容IPv6地址。格式如下:
000…000(96bit)  IPv4 地址
 
 
配置方式如下:
Router(config)#interface tunnel 0
Router(config-if)# tunnel source    fa 0/0
Router(config-if)# tunnel mode ipv6ip auto-tunnel
 
39.3 IPv6 NAT-PT
NAT-PT 是一種純 IPv6 節點和 IPv4 節點間的互通方式,所有包括地址、協議在內的轉換工作都由網
絡設備來完成。支持 NAT-PT 的網關路由器應具有 IPv4 地址池,在從 IPv6 向 IPv4 域中轉發包時使用,地
址池中的地址是用來轉換 IPv6 報文中的源地址的。此外網關路由器需要 DNS-ALG 和 FTP-ALG 這兩種常
用的應用層網關的支持,在 IPv6 節點訪問 IPv4 節點時發揮作用。如果沒有 DNS-ALG 的支持,只能實現
由 IPv6 節點發起的與 IPv4 節點之間的通信,反之則不行。如果沒有 FTP-ALG 的支持,IPv4 網絡中的主
機將不能用FTP軟件從IPv6 網絡中的服務器上下載文件或者上傳文件,反之亦然。
39.3.1 NAT-PT分類
NAT-PT一共有 3種模式:
1. 靜態NAT-PT,
它使用了一種靜態的ipv6 和ipv4地址一一對應的處理方式。類似於IPv4 中的靜態NAT
2. 動態NAT-PT
它使用一個IPv4地址池,然後再IPv6網絡中動態的將預定義的NAT-PT前綴加到目前的IPv4地
址。這種模式需要一個IPv4 地址池來執行,類似於IPv4 的動態NAT
3.  NAPT-PT
它使用多個有NAT-PT前綴的IPv6地址和一個源IPv4地址之間多對一的動態映射,   轉換同時在
3層和UDP/TCP層上進行。它和IPv4中的PAT類似。
39.3.2  靜態NAT-PT
配置方式如下:
Router(config)#int fa0/0
Router(config-if)#ip address 1.1.1.1 255.255.255.0
Router(config-if)#ipv6 nat
Router(config-if)#int fa0/1
Router(config-if)#ipv6 address 2001:aaaa::1/64
Router(config-if)#ipv6 nat
Router(config-if)#exit                        
Router(config)#ipv6 nat prefix 2001:aaaa:ffff::/96
Router(config)#ipv6 nat v6v4 source 2001:aaaa::1 1.1.1.1
Router(config)#ipv6 nat v4v6 source 1.1.1.1 2001:aaaa::1
 
Router(config)#do show ipv6 nat translation
Prot    IPv4 source                            IPv6 source
        IPv4 destination                  IPv6 destination
------    ------------------------              ------------------------
          1.1.1.1                                2001:AAAA::1
Tcp        1.1.1.1,80               2001:AAAA::1,80
            1.1.1.1,22               2001:AAAA::1,22

39.3.3  動態NAT-PT
Router(config)#int fa0/0
Router(config-if)#ip address 1.1.1.1 255.255.255.0
Router(config-if)#ipv6 nat
Router(config-if)#int fa0/1
Router(config-if)#ipv6 address 2001:aaaa::1/64
Router(config-if)#ipv6 nat
Router(config-if)#exit                        
Router(config)#ipv6 nat prefix 2001:aaaa:ffff::/96
Router(config)#ipv6 access-list ipv6 permit 2001:aaaa::/48 any
Router(config)#ipv6 nat v6v4 pool ipv4-pool 1.1.1.1 1.1.1.30 prefix-length 24
Router(config)#ipv6 nat v6v4 source list ipv6 pool ipv4-pool
 
39.3.4    NAPT-PT
 
Router(config)#int fa0/0
Router(config-if)#ip address 1.1.1.1 255.255.255.0
Router(config-if)#ipv6 nat
Router(config-if)#int fa0/1
Router(config-if)#ipv6 address 2001:aaaa::1/64
Router(config-if)#ipv6 nat
Router(config-if)#exit                        
Router(config)#ipv6 nat prefix 2001:aaaa:ffff::/96
Router(config)#ipv6 access-list ipv6 permit 2001:aaaa::/48 any
Router(config)#ipv6 nat v6v4 pool ipv4-pool 1.1.1.1 1.1.1.30 prefix-length 24
Router(config)#ipv6 nat v6v4 source list ipv6 pool ipv4-pool overload
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章