Presentation is loading. Please wait.

Presentation is loading. Please wait.

NAT-PT (Network Address Translation-Protocol Translation)

Similar presentations


Presentation on theme: "NAT-PT (Network Address Translation-Protocol Translation)"— Presentation transcript:

1 NAT-PT (Network Address Translation-Protocol Translation)
Speaker: 林洹緯 Date: 2010/7/29

2 Outline Introduction to NAT-PT NAT-PT flavors
Application Level Gateway(ALG) Protocol Translation(PT) NAT-PT Operation NAPT-PT Operation

3 Introduction to NAT-PT
由於IPv4和IPv6需要共存,NAT-PT因應此轉換 的需求而產生 類似IPv4中NAT的作法 使用SIIT來處理不同通訊協定間的標頭轉換 IPv4 to IPv6位址轉換格式為 PREFIX::<IPv4 address>,其中PREFIX長度為 48bit

4 NAT-PT flavors Traditional NAT-PT Bi-Directional-NAT-PT
只能由IPv6往IPv4單向建立連線 又分為Basic-NAT-PT 和 NAPT-PT(Network Address Port Translation-Protocol Translation),兩者差別在於使用IPv4位址的多寡以及對應關係的不同 Bi-Directional-NAT-PT 可雙向建立連線,但需DNS_ALG的支援才可達成

5 Application Level Gateway(ALG)
ALG 是對應於特定應用程式的代理人,有些應用程式會把網路 位址存在封包的payload中,NAT-PT 本身並無法得知 payload 裡 存的是什麼,ALG 可以協助NAT-PT 來達到這個功能 假設有一個由IPv4端送出的SIP封包 Header如下,經過NAT-PT Server時,NAT-PT Server會將封包的Source address 和Destination address 修改為IPv6的格式,而NAT-PT Server中處理SIP的ALG負責的就是SIP Header中IPv4位址的轉換 INVITE SIP/2.0 Via: SIP/2.0/UDP :5060 From: Alice To: Bob Call-ID: CSeq: 1 INVITE Subject: meeting Contact: Content-Type: application/sdp Content-Length: 147

6 Protocol Translation(PT)
PT指的是能夠將IPv4和IPv6的封包之間做對等 的轉換,在RFC 2765(SIIT)中有詳細的描述 IPv6 field IPv4 field Action Version = 6 Version = 4 Overwrite Flow label N/A Set to 0 Payload length Total length Recalculate Next header Protocol Copy Hop limit TTL Source address Adjust Destination address

7 NAT-PT Operation - 1 Traditional NAT-PT(v6-to-v4), without DNS_ALG
IPv6 Host 發出v6封包,SRC=2001:6840:e10::b1,DST=PREFIX:: NAT-PT 接收到封包後查看該封包的SRC並未在 address mapping table內,於是從v4 address pool中挑選出一個尚未使用的address,將v6封包轉換成v4封包格式,並將其address對應關係記錄在mapping table中。 假設所分配到的IPv4 address為 ,該mapping table為( 2001:6840:e10::b1 – ,在此可能還包含其他狀態資訊) 接著傳送v4封包 SRC= , DST=

8 NAT-PT Operation - 2 Traditional NAT-PT(v6-to-v4), without DNS_ALG
IPv4 Host 接收到封包之後回傳v4封包SRC= ,DST= NAT-PT 收到回傳的封包後查詢相關資訊並將v4封包轉換為v6封包,SRC=PREFIX:: ,DST=2001:6840:e10::b1 上述的方式只適用於v6-to-v4單向聯通,若要完成雙向聯通則需透過DNS_ALG來完成。在此NAT-PT上萬一IPv4 address用完時,則當有其他v6 node欲與v4 node聯通時則無多餘的IPv4 address來完成,為解決該IPv4 address的不足則可利用之後會介紹到的NAPT-PT

9 NAT-PT Operation - 3 Bi-Directional-NAT-PT(v6-to-v4), with DNS_ALG
建立連線前IPv6 Host無法得知與IPv4 Host 相對應的IPv6 address,於是送出DNS request到IPv6 DNS Server 由於在IPv6 DNS Server中查詢不到該筆IPv4 Host的紀錄,IPv6 DNS Server轉而將此request送至NAT-PT Server處理 NAT-PT Server中的DNS_ALG收到這個request後,將所request的紀錄格式由AAAA改為A再送至IPv4 DNS Server,IPv4 DNS Server收到request後傳回IPv4 Host的address為

10 NAT-PT Operation - 4 Bi-Directional-NAT-PT(v6-to-v4), with DNS_ALG
DNS_ALG收到address訊息後,向NAT-PT要PREFIX,並把此address加上PREFIX變成IPv6 address=PREFIX:: ,並且將此紀錄由A改為AAAA並傳回IPv6 DNS Server, IPv6 DNS Server再將紀錄轉傳回IPv6 Host 接下來流程和Traditional NAT-PT相同,也就是NAT-PT由IPv4 address pool中挑出一個沒有使用的address當作與IPv6 Host相對應的IPv4 address進行連線

11 NAT-PT Operation - 5 Bi-Directional-NAT-PT(v4-to-v6), with DNS_ALG
建立連線前IPv4 Host無法得知與IPv6 Host 相對應的IPv4位址,於是送出DNS request到IPv4 DNS Server 由於在IPv4 DNS Server中查詢不到該筆IPv6 Host的紀錄,IPv4 DNS Server轉而將此request送至NAT-PT Server處理 NAT-PT Server中的DNS_ALG收到這個request後,將所request的紀錄格式由A改為AAAA再送至IPv6 DNS伺服器,IPv6 DNS伺服器收到request後傳回IPv6 Host的位址為2001:6840:e10::b1

12 NAT-PT Operation - 6 Bi-Directional-NAT-PT(v4-to-v6), with DNS_ALG
NAT-PT Server收到address訊息後,從IPv4 address pool中挑出一個尚未用到的address ,將紀錄格式由AAAA轉換成A送回IPv4 DNS Server,並將其address對應關係記錄在mapping table中,mapping table為(2001:6840:e10::b1 – ) IPv4 DNS Server 再將此紀錄送回IPv4 Host IPv4Host 得知與IPv6 Host相對應的IPv4 address 後即可進行連線

13 NAPT-PT Operation - 1 NAPT-PT(v6-to-v4)
NAPT-PT Server 只有一個IPv4 address為 IPv6 Host A 和IPv6 Host B 都要跟IPv4 Host 建立通訊,兩者SA(Source address)資訊分別為[2001:6840:e10:b1]:1025和[2001:6840:e10:b2]:1025,都使用port 1025對外連線,DA(Destination address)則為[PREFIX:: ]:23 NAPT-PT Server 收到這兩個IPv6 Host的封包之後,使用隨機的port分別將兩個封包的SA轉換為 :123 和 :456並儲存對應關係,轉換為v4封包後,使用同一個IPv4 address但是不同 的port 與IPv4 Host 連線

14 NAPT-PT Operation - 2 NAPT-PT(v6-to-v4)
IPv4 Host 收到封包後分別回應到 :123 及 :456,封包 SA= :23,DA= :123以及 :456 NAPT-PT Server 收到這兩個封包之後根據對應關係,將DA= :123 的封包轉換成v6封包,DA修改為[2001:6840:e10:b1]:1025 DA= :456 的封包轉換成v6封包,DA修改為[2001:6840:e10:b2]:1025 Mapping table :123 - [2001:6840:e10:b1]:1025 :456 - [2001:6840:e10:b2]:1025

15 NAPT-PT Operation - 3 NAPT-PT – static port mapping
除了隨機的port對應之外,NAPT-PT還可以使用static port mapping,也就是直接指定NAPT-PT Server 的IPv4 port 對應到IPv6 Host 的port 舉例來說,IPv6網路中有一台HTTP Server,設定NAPT-PT Server的port 80對應到該Server的port 80,則所有從NAPT-PT Server port 80 進入的連線都會被轉到IPv6網路中的HTTP Server,也就是說NAPT-PT Server 底下的IPv6 網路只允許有一台HTTP Server的存在,除非其他HTTP Server 使用非預設的port 連線

16 Reference NAT-PT (RFC 2766) SIIT (RFC 2765) Cisco IOS NAT-PT for IPv6


Download ppt "NAT-PT (Network Address Translation-Protocol Translation)"

Similar presentations


Ads by Google