IPv4 的缺陷和Internet的飛速發展導致IPv6的產生和發展,目前,IPv6網絡正從試驗性網絡逐步走向實際應用,但未來一段時間內,IPv4網絡仍然占據主導地位,IPv4網絡和IPv6網絡并存的局面仍將繼續,這樣,實現IPv4網絡和IPv6網絡互連成為IPv6網絡走向實際應用的重要步驟。 1、NAT-PT實現互連原理 網絡地址和協議轉換(NAT-PT)是一種將實現IPv4分組格式和IPv6分組格式之間轉換和動態NAT有機結合的地址和協議轉換技術,它對IPv6 網絡中終端的地址配置沒有限制,也不需要對想和IPv4網絡通信的終端分配IPv4地址。它和IPv4網絡所采用的動態NAT一樣,在網絡邊界的地址和協議轉換器設置一組IPv4地址,并以此構成IPv4地址池,當IPv6網絡中的某個終端發起和IPv4網絡中的終端之間的會話時,由地址和協議轉換器為發起會話的終端分配一個IPv4地址,并將該IPv4地址和該終端發起的會話綁定在一起。如果會話是TCP連接,則可用會話兩端的源和目的地址、源和目的端口號來標識該會話。在會話存在期間,該IPv4地址一直分配給發起會話的終端,當屬于該會話的IPv6分組經過地址和協議轉換器進入IPv4網絡時,用該 IPv4地址取代IPv6分組的源地址,并完成IPv6分組至IPv4分組的轉換。IPv4網絡中的終端用該IPv4地址和發起會話的終端通信,當屬于該會話的IPv4分組進入地址和協議轉換器時,用該IPv4分組的目的地址檢索會話表,用會話表中給出的發起會話的終端的IPv6地址取代IPv4分組的目的地址,并完成IPv4分組至IPv6分組的轉換。在NAT-PT中,96bit網絡前綴可以是任意的網絡地址,但必須保證IPv6網絡將目的地址和該 96bit網絡前綴匹配的IPv6分組路由到網絡邊界的地址和協議轉換器。地址和協議轉換器將和96bit網絡前綴匹配的目的地址的低32bit作為 IPv4地址。反之,地址和協議轉換器在IPv4分組的源地址前加上96bit網絡前綴后作為IPv6分組的源地址。 2、單向會話通信過程 下面結合圖1詳細討論一下NAT-PT的工作機制。 圖1 NAT-PT實現網絡地址和協議轉動過程 在圖1中,當終端A發起和終端C的會話時,終端A發送一個以2001::2E0:FCFF:FE00:7為源地址,以2::10.1.1.1為目的地址的IPv6分組,該IPv6分組被IPv6網絡路由到路由器R3。 路由器R3在會話表中檢索該IPv6分組屬于的會話,由于該IPv6分組是發起會話的IPv6分組,會話表中找不到該IPv6分組所屬的會話,路由器 R3為終端A分配一個IPv4地址,這里假定是193.1.1.1,同時,在會話表中創建一項,將分配該終端A的IPv4地址和終端A發起的會話綁定在一起,如表1所示。 路由器R3將該IPv6分組轉換成IPv4分組,通過IPv4路由表確定的傳輸路徑將IPv4分組轉發給下一跳路由器R2。該IPv4分組經過路由器R2轉發后到達終端C,完成終端A至終端C的傳輸過程。 IPv6分組轉換成IPv4分組時各字段的轉換過程如表2所示,源和目的地址的轉換如圖2所示。 表1 IPv4地址和會話之間的綁定 表2 IPv6首部至IPv4首部轉換 表3 IPv4首部至IPv6首部轉換 當終端C向終端A發送數據時,終端C構建一個以10.1.1.1.1為源地址,193.1.1.1為目的地址的IPv4分組,該IPv4分組被IPv4網絡路由到路由器R3。 路由器R3用該IPv4分組的目的地址檢索會話表,找到對應項,用對應項給出的IPv6地址取代目的地址。 由于為路由器R3配置的網絡前綴為2::/96,源地址被轉換成2::10.1.1.1。 IPv4分組轉換成IPv6分組時各字段的轉換過程如表3所示,源和目的地址的轉換如圖2所示。 圖2 IPv4分組至IPv6分組轉換過程 圖3 用DNS應用層網關實現雙向會話 終端A后續發送給終端C的IPv6分組,由于在會話表中找到對應項,可以根據對應項中給出的IPv4地址進行源地址轉換。在會話存在期間,會話表中給出的地址映射一直保持。一旦會話結束,這種地址映射也隨之消除,分配的IPv4地址可以再次分配給其他IPv6網絡中的終端。不同類型會話的結束方式不同,有些類型的會話有會話結束過程,有些類型的會話沒有明顯的會話結束過程,后一種類型的會話用規定時間內一直沒有屬于該會話的IP分組通過作為該會話的結束條件。 3、雙向會話通信過程 和IPv4動態NAT一樣,NAT-PT只能用于由IPv6網絡中的終端發起會話的應用,如果某個應用需要由IPv4網絡中的終端發起會話,NAT-PT是無法實現的,因為,IPv4網絡中的終端是無法用某個IPv4地址來綁定IPv6網絡中的某個終端的。如果非要實現由IPv4網絡中的終端發起的會話,需要采用靜態NAT,即在路由器R3配置靜態的IPv4地址和IPv6地址之間的映射。在圖 3中,如果終端C希望訪問IPv6網絡中的DNS服務器(IPv6 DNS),就構建以10.1.1.1為源地址,以193.1.1.5為目的地址的IPv4分組,該IPv4分組到達路由器R3后,路由器R3通過配置的靜態地址映射,將目的地址轉換成2001::2E0:FCFF:FE00:9。但如果對IPv6中的其他終端也采用靜態地址映射,需要為所有可能和IPv4 網絡通信的終端靜態分配IPv4地址,這顯然是不可能的。對于圖3所示的網絡結構,路由器R3不僅是地址和協議轉換器,還是DNS應用層網關。DNS用于將完全合格的域名解析成IP地址,如果是IPv6網絡,則解析成IPv6地址,如果是IPv4網絡,則解析成IPv4地址。DNS服務器給出完全合格的域名和對應的IP地址之間的映射,如終端A 2001::2E0:FCFF:FE00:7。當終端C想發起和終端A之間的會話時,終端C通過終端A的完全合格的域名:終端A解析出終端A對應的 IPv4地址。由于在路由器R3中已經靜態配置了IPv6網絡中的DNS服務器的IPv6地址:2001::2E0:FCFF:FE00:9和IPv4地址:193.1.1.5之間的映射,終端C向IPv4地址為193.1.1.5的DNS服務器發送請求報文,請求報文被封裝成IPv4分組后進入IPv4 網絡,被IPv4網絡路由到路由器R3。由路由器R3完成IPv4 DNS請求報文至IPv6 DNS請求報文的轉換,并將請求報文封裝成以2::10.1.1.1為源地址,以2001::2E0:FCFF:FE00:9為目的地址的IPv6分組,通過IPv6網絡將該IPv6分組傳輸到IPv6網絡的DNS服務器。IPv6網絡的DNS服務器根據完全合格的域名:終端A解析出IPv6地址:2001::2E0:FCFF:FE00:7,并將該地址通過DNS響應報文回送給源地址為2::10.1.1.1的終端(終端C)。響應報文被 IPv6網絡路由到路由器R3,由路由器R3在IPv4地址池中選擇一個IPv4地址(這里假定是193.1.1.1)分配給終端A,同時在會話表中建立2001::2E0:FCFF:FE00:7和193.1.1.1之間的映射。路由器R3將IPv6 DNS響應報文轉換為IPv4 DNS響應報文,并將IPv4 DNS響應報文封裝成以10.1.1.1為目的地址的IPv4分組,通過IPv4網絡將該IPv4分組傳輸到終端C,終端C隨后用IPv4地址:193.1.1.1和終端A進行通信。需要指出的是,在上述通信過程中,IPv4網絡中的終端通過DNS的地址解析過程創建會話,并將地址映射和該會話綁定在一起,所有源地址為2001::2E0:FCFF:FE00:7的IPv6分組或目的地址為193.1.1.1的IPv4分組都屬于該會話,按照會話表中給出的地址映射完成地址轉換。這種類型的會話只能用規定時間內一直沒有屬于該會話的IP分組通過作為該會話的結束條件。 IPv4網絡中所有終端和服務器對應的IPv6地址是固定的,IPv6網絡中的終端可以獲取Pv4網絡中所有終端和服務器對應的IPv6地址,因此,IPv6網絡中的終端可以通過直接給出IPv6地址的方式和IPv4網絡中的終端通信。當然,記住完全合格的域名總比記住128bit的IPv6地址容易,因此,IPv6網絡中的終端可能通過完全合格的域名(如終端C)發起和IPv4網絡中的終端之間的會話。這種情況下,由IPv6終端向IPv4網絡的DNS服務器發送DNS請求報文,由路由器R3完成IPv6 DNS請求報文至IPv4 DNS請求報文的轉換。當路由器R3接收到IPv4網絡中的DNS服務器回送的DNS響應報文時,一方面通過加上網絡前綴2::,將解析出的IPv4地址轉換成IPv6地址,另一方面完成IPv4 DNS響應報文至IPv6 DNS響應報文的轉換。 |