1 / 20

IPv4-IPv6 Interworking without using NATs in ISP infrastructures

IPv4-IPv6 Interworking without using NATs in ISP infrastructures The Global Address Protocol ( GAP ) Rémi Després draft-despres-v6ops-apbp-01 IETF 72 - 2008-07-28. Considered Scenarios. The 4p-6-4 Scenario. Global Address Server GAS. Server. Client. CPE. 4p. 6. 4. 4. 4. ?. ?. ?.

jackie
Download Presentation

IPv4-IPv6 Interworking without using NATs in ISP infrastructures

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IETF 72 - RD IPv4-IPv6 Interworking without using NATs in ISP infrastructures The Global Address Protocol (GAP) Rémi Després draft-despres-v6ops-apbp-01 IETF 72 - 2008-07-28

  2. IETF 72 - RD Considered Scenarios

  3. IETF 72 - RD The 4p-6-4 Scenario Global Address Server GAS Server Client CPE 4p 6 4 4 4 ? ? ? Router CPE Server Client 4p RFC 1918 4 4 4 NAT4p4 ALGs (App Level Gways) - FTP, RTSP, etc. UPnP+ (Port Frwrdng, var. NAT-PMP) Applis(CPE ALGs) UPnP+ (CPE)

  4. IETF 72 - RD 4 6 4 The 6-4 Scenario Server or Client Client or Server GAS DS 4 ? ? Server or Client Client or server 4 4 All Applis

  5. IETF 72 - RD The GAP Solutionsfor these 2 scenarios

  6. IETF 72 - RD The GAP Solution - 4p-6-4 Scenario Router CPE Server GAPS Client 4p 6 4 4 4 Applis(CPE ALGs) UPnP+(CPE) NAT4p4 ALGs UPnP+ GAP client (*) GAP server Per site port range <====== GAP ======> The GAP client obtains from the GAP server a public IPv4 address AND, in IPv4, a reserved port range Then, IPv4 packets are tunnelled between CPE and GAPS (*) Reserved ports only in the obtained port range

  7. IETF 72 - RD 4 The GAP Solution - 6-4 Scenario Server or Client Client or Server GAPS (*) 6 DS 4 GAP client DSTM-like socket handling All Applis GAP server Per site port range <============= GAP ============> The GAP client obtains from the GAP server a public IPv4 address AND, in IPv4, a reserved port range Then, IPv4 packets are tunnelled between CPE and GAPS (*) Server ports only in the reserved port range

  8. IETF 72 - RD The Carrier Grade NAT Solutions (CGN)for these 2 scenarios

  9. IETF 72 - RD The CGN solution - 4p-6-4 Scenario Server CGN Client CPE 4p 6 4 4 4 Applis(CGN ALGs) UPnP (CGN) (No NAT) Tunnel req. Tunnel accept. Per site port max number? NAT4p4 ALGs (App Level Gways) UPnP+?

  10. IETF 72 - RD 6 4 The CGN solution - 6-4 Scenario Server or Client Client or Server CGN DS 4 Tunnel accept. Per site port max number NAT4p4 ALGs UPnP+ Tunnel estab. Dummy 4p address Applis(CGN ALGs) UPnP+(CGN)

  11. IETF 72 - RD Comparison of CGN and GAP solutions • Pro CGN • CPEs are simpler and more stable (no NAT) • NAT behavior is unified by each ISP (ALGs and UPnP+) • Port max numbers may be overbooked • Almost completely based on existing specifications • Pro GAP • GAS are simpler, more stable, easier to dimension (data pkt encap-decap; no NAT, no ALG, no UPnP+ ) • NAT behavior may differ from CPE to CPE (->Easier guarantee of backward compatibility with existing NAT44s; localized bug effect, etc.) • IPv4 E2E transparency for IPv6 address DS hosts  A GAS and a router CPE can do both to leave the choice

  12. IETF 72 - RD GAP vs APBP Terminology • APBP = Address-port-borrowing-protocol • GAP = Global Address Protocol • The purpose is to provide global addresses (to devices that need one but have none locally) • Extensions to IPv6 scenarios are envisaged • IPv6 devices may also have private scope addresses (ULAs) • If they have no public address locally, they may need one • There are enough addresses to work withoutports • OUT OF SCOPE TODAY

  13. Questions ? IETF 72 - RD

  14. Detailed protocol slides for an experiment IETF 72 - RD

  15. IETF 72 - RD Basics of a proposed GAP GAP client GAP server c C C Anycast D d F G g DS v6 E v4 Reservation => IPv6,C,D(UDP,c,d(REQ)) IPv6,C,D(UDP,c,d(ALL,F,f-range,E)) <= => IPv6,C,E(UDP,c,d(ON,F,f-range)) Data exchanges (fi in f-range) <=> IPv6,C,E(P41(IPv4,F,G(any,fi,g(…))))<=> IPv4,A,G(any,fi,g) <=> Keep Alive IPv6,C,E(UDP,c,d(ALL,F,f-range,E)) <= => IPv6,C,E(UDP,c,d(ON,F,f-range)) Release by server IPv6,C,E(UDP,c,d(OFF,F,f-range)) <= Release by client => IPv6,C,E(UDP,c,d(RLS)) IPv6,C,E(UDP,c,d(TST)) <=5 times in 2s No answers

  16. IETF 72 - RD Format of messages 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | COMMAND | Nb of bits | Port range prefix | | | of port range | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global IPv4 address | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | + Global address server unicast address + | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Successive fields are present or not depending on the command

  17. IETF 72 - RD Global address server Final State Machine Inactive • ? Recieve. IPv6,C,D(UDP,c,d(REQ)) • ? C is not in known list • ? k is first in inactive list • > Insert C in known list • > extract k from inactive list FSM of address-port range k > Send IPv6,C,E(UDP,c,d(OFF)) > Insert k into inactive list > Insert C into unknown list > TO counter  5 ? TO counter ≠ 0 > TO decreased by 1 Test > Send IPv6,C,D(UDP,c,d(ALL,F,APrange-k,E)) > Start TO (.5s) ? TO counter = 0 ? TO expired • ? Recieve IPv6,C,E(P41(IPv4,F,?(any,fi,?(…)))) • ? fi is in APrange-k • > Forward IPv4,F,?(any,fi,?(…)) • ? Recieve IPv6,C,E(UDP,c,d(ONF,f-range)) > Start TO (10 min) > TO conter  5 ? TO counter = 0 Active ? TO conter ≠ 0 > TO counter decreased by 1 ? TO expired • ? Recieve IPv6,C,E(UDP,c,d(OFF,F,f-range))

  18. Global address client Final State Machine IETF 72 - RD Idle • Internal decision • N  1 ? Send IPv6,C,D(UDP,c,d(REQ)) > Start TO (.5s x N) > IF N < 128 THEN N  N x 2 Waiting • ? TO expired ? Recv. IPv6,C,D(UDP,c,d(ALL,F,f-range,E)) > Send IPv6,C,E(UDP,c,d(ONF,f-range)) Active • Internal decision • > Start TO (2s) A ? TO expired > Send IPv6,C,E(UDP,c,d(OFF,F,f-range)) Releasing

  19. IETF 72 - RD Next Steps?

  20. Thank you remi.despres@free.fr IETF 72 - RD

More Related