170 likes | 253 Views
ECE 526 – Network Processing Systems Design. Network Address Translator. Overview. What is Network Address Translation (NAT) Conceptually Implementation Complexity and simplifying assumptions TCP/UDP packet processing ARP packet processing NAT table creation and management
E N D
ECE 526 – Network Processing Systems Design Network Address Translator
Overview • What is Network Address Translation (NAT) • Conceptually Implementation • Complexity and simplifying assumptions • TCP/UDP packet processing • ARP packet processing • NAT table creation and management • Head lookup and field changes • IXP Implementation • Software components and structure • NAT microblock implementation • Header caching, alignment ECE 526
What is NAT? • System allowing multiple computers share single global IP address • Changing packet header: address, port number, IDs and etc • Located between a set of computers at a site and rest of the Internet ECE 526
NAT Example • ISP Router • Local Area Network: • 10.0.0.0/8: net 10 prefix • Nonroutable • each computer has unique IP address • NAT • Global IP 192.168.0.2 • Local IP: 10.0.0.1 • Router for Local Area Network ECE 526
How does NAT Work • Rewrite packet header as packet pass through • Questions • 1. Which fields should be changed • 2. Are these change independent of packet types, packet flow direction • 3. How should they be changed • 4. What is the complexity ECE 526
Packet Type • TCP/UDP • IP address: global unique identify of IP network, looked by router • Source and destination • Port number: application dependent • Source • Destination • ARP (address resolution protocol) • IP address • MAC address • Any other fields? ECE 526
Packet Flow Direction • Outgoing: to the internet • SIP, DIP • Sport, Dport • IP Proto filed • Incoming: from internet • Is same as outgoing? ECE 526
Packet Field Change Cross NAT ECE 526
NAT Table Example • *.2 and *.3 access web server at 128.10.2.1 • *.4 ping 192.5.3.1 ECE 526
NAT Table Lookup • Incoming and outgoing different • Two independent hash tables used ECE 526
NAT Table Implementation • Packet direction: f_nat or r_nat • Extract fields, computer hash value and bucket value ECE 526
NAT Complexity • Fragmentation causes header of encapsulated protocol are only present in first fragment • E.g., no port number available for later fragments • IP datagram with options • Memory requirement for NAT table ECE 526
NAT Table Management • Creation • Automatically • Add one entry when it is first packet for new flow • Table entry lifetime • Based on packet header • E.g., Fin or reset for TCP • Aging • Counter down timer • Reset to maximum value once used • Decrease one every cycle • Table entry update • Least recent used • Priority heuristic • TCP > UDP > ARP >others ECE 526
NAT IXP Implementation ECE 526
NAT Overall Structure • What are implementation ideas to improve throughput? ECE 526
NAT Microblock Organization ECE 526
Reminder • Example System on IXP2400 II: chapter 25 • Example of other commercial NPs: chapter 15 ECE 526