360 likes | 521 Views
Network Address Translation (NAT) and Dynamic Host Configuration Protocol (DHCP). Relates to Lab 7. Module about private networks and NAT. Network address translation: why?. A fix to the IP address depletion problem.
E N D
Network Address Translation (NAT) and Dynamic Host Configuration Protocol (DHCP) Relates to Lab 7. Module about private networks and NAT.
Network address translation: why? • A fix to the IP address depletion problem. • NAT is a router function where IP addresses (and possibly port numbers) of IP datagrams are replaced at the boundary of a private network • We’ve learned another solution. What is it?
Private Internet network Source = 10.0.1.2 Source = 128.143.71.21 Destination = 213.168.112.3 Destination = 213.168.112.3 NAT private address: 10.0.1.2 public address: 213.168.112.3 device public address: 128.143.71.21 H1 H5 Source = 213.168.112.3 Source = 213.168.112.3 Destination = 10.0.1.2 Destination = 128.143.71.21 Private Public Address Address 10.0.1.2 128.143.71.21 Basic operation of NAT • NAT device has address translation table
Private Network • Private IP network is an IP network that is not directly connected to the Internet • IP addresses in a private network can be assigned arbitrarily. • Not registered and not guaranteed to be globally unique • Question: how is public IP address assigned? • Generally, private networks use addresses from the following experimental address ranges (non-routable addresses): • 10.0.0.0 – 10.255.255.255 • 172.16.0.0 – 172.31.255.255 • 192.168.0.0 – 192.168.255.255
Main uses of NAT • Pooling of IP addresses • Supporting migration between network service providers • IP masquerading • Load balancing of servers
Pooling of IP addresses • Scenario: Corporate network has many hosts but only a small number of public IP addresses • NAT solution: • Corporate network is managed with a private address space • NAT device, located at the boundary between the corporate network and the public Internet, manages a pool of public IP addresses • When a host from the corporate network sends an IP datagram to a host in the public Internet, the NAT device picks a public IP address from the address pool, and binds this address to the private address of the host
Pooling of IP addresses 128.143.71..21
Supporting migration between network service providers • Scenario: In CIDR, the IP addresses in a corporate network are obtained from the service provider. Changing the service provider requires changing all IP addresses in the network. • NAT solution: • Assign private addresses to the hosts of the corporate network • NAT device has address translation entries which bind the private address of a host to the public address. • Migration to a new network service provider merely requires an update of the NAT device. The migration is not noticeable to the hosts on the network.
IP masquerading • Also called: Network address and port translation (NAPT), port address translation (PAT). • Scenario: Single public IP address is mapped to multiple hosts in a private network. • NAT solution: • Assign private addresses to the hosts of the corporate network • NAT device modifies the port numbers for outgoing traffic
Source = 10.0.1.2 Source = 128.143.71.21 Source port = 2001 Source port = 2100 private address: 10.0.1.2 NAT 128.143.71.21 Internet Private network H1 device private address: 10.0.1.3 H2 Source = 10.0.1.3 Source = 128.143.71.21 Source port = 3020 Source port = 4444 Private Public Address Address 10.0.1.2/2001 128.143.71.21/2100 10.0.1.3/3020 128.143.71.21/4444 IP masquerading
Load balancing of servers • Scenario: Balance the load on a set of identical servers, which are accessible from a single IP address • NAT solution: • Here, the servers are assigned private addresses • NAT device acts as a proxy for requests to the server from the public network • The NAT device changes the destination IP address of arriving packets to one of the private addresses for a server • A sensible strategy for balancing the load of the servers is to assign the addresses of the servers in a round-robin fashion.
Source: 213.168.12.3 Dest: 10.0.1.4 Load balancing of servers Private network Source: 128.195.4.120 Source = 128.195.4.120 Dest: 10.0.1.2 Destination = 128.143.71.21 NAT Source = 213.168.12.3 device Destination = 128.143.71.21 Internet 128.143.71.21 Inside network Outside network Public Public Address Address 10.0.1.2 128.143.71.21 128.195.4.120 10.0.1.4 128.143.71.21 213.168.12.3
Concerns about NAT • Performance: • Modifying the IP header by changing the IP address requires that NAT boxes recalculate the IP header checksum • Modifying port number requires that NAT boxes recalculate TCP checksum • Fragmentation • Care must be taken that a datagram that is fragmented before it reaches the NAT device, is not assigned a different IP address or different port numbers for each of the fragments.
Concerns about NAT • End-to-end connectivity: • NAT destroys universal end-to-end reachability of hosts on the Internet. • A host in the public Internet often cannot initiate communication to a host in a private network. • The problem is worse, when two hosts that are in a private network need to communicate with each other.
H1 NAT and FTP • Normal FTP operation • What problem will FTP run into if using unmodified NAT? FTP client FTP server public address: public address: 128.143.72.21 128.195.4.120 H2 PORT 128.143.72.21/1027 200 PORT command successful RETR myfile 150 Opening data connection establish data connection
NAT and FTP • NAT device with FTP support
NAT and FTP • FTP in passive mode and NAT.
Configuring NAT in Linux • Linux uses the Netfilter/iptable package to add filtering rules to the IP module
Configuring NAT with iptable • First example:iptables –t nat –A POSTROUTING –s 10.0.1.2 –j SNAT --to-source 128.143.71.21 • Pooling of IP addresses:iptables –t nat –A POSTROUTING –s 10.0.1.0/24 –j SNAT --to-source 128.128.71.0–128.143.71.30 • IP masquerading: iptables –t nat –A POSTROUTING –s 10.0.1.0/24 –o eth1 –j MASQUERADE • Load balancing: iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-destination 10.0.1.2-10.0.1.4
Dynamic Host Configuration Protocol (DHCP) Relates to Lab 7. Module about dynamic assignment of IP addresses with DHCP.
Dynamic Assignment of IP addresses • Dynamic assignment of IP addresses is desirable for several reasons: • IP addresses are assigned on-demand • Avoid manual IP configuration • Support mobility of laptops
DHCP • Dynamic Host Configuration Protocol (DHCP) • Designed in 1993 • Supports temporary allocation (“leases”) of IP addresses • DHCP client can acquire all IP configuration parameters • Sent as UDP packets • A client-server protocol • Server port: 67 • Client port: 68
DHCP Message Format (There are >100 different options)
DHCP • OpCode: 1 (Request), 2(Reply) Note: DHCP message type is sent in an option • Hardware Type: 1 (for Ethernet) • Hardware address length: 6 (for Ethernet) • Hop count: set to 0 by client • Transaction ID: Integer (used to match reply to response) • Seconds:number of seconds since the client started to boot • Client IP address, Your IP address, server IP address, Gateway IP address, client hardware address, server host name, boot file name:client fills in the information that it has, leaves rest blank
DHCP Message Type • Message type is sent as an option.
Src: 0.0.0.0, 68 Dest: 255.255.255.255, 67 DHCPDISCOVERY Yiaddr: 0.0.0.0 Transaction ID: 654 DHCP operations Src:128.195.31.1, 67 Dest: 255.255.255.255, 68 DHCPOFFER Yiaddr: 128.195.31.147 Transaction ID: 654 Server ID: 128.195.31.1 Lifetime: 3600 secs
DHCP operations Src: 0.0.0.0, 68 Dest: 255.255.255.255, 67 DHCPREQUEST Yiaddr: 128.195.31.147 Transaction ID: 655 server ID: 128.195.31.1 Lifetime: 3600 secs Src:128.195.31.1, 67 Dest: 255.255.255.255, 68 DHCPACK Yiaddr: 128.195.31.147 Transaction ID: 655 Server ID: 128.195.31.1 Lifetime: 3600 secs
More on DHCP operations • A client may receive DCHP offers from multiple servers • The DHCPREQUEST message accepts offers from one server. • Other servers who receive this message considers it as a decline • A client can use its address after receiving DHCPACK • DHCP replies can be unicast, depending on implementation • Client hardware address as MAC destination • Yiaddr as IP destination
Src: 0.0.0.0., 68 Src: 0.0.0.0., 68 Src: 128.195.41.1, 67 Src: 128.195.31.10, 67 Dest: 255.255.255.255, 67 Dest: 255.255.255.255, 68 Dest: 255.255.255.255, 67 Dest: 128.195.41.1, 67 Giaddr: 128.195.41.1 Giaddr: 128.195.41.1 Giaddr: 128.195.41.1 Giaddr: 0 DHCPDISCOVER DHCPDISCOVER DHCPOFFER …… DHCPOFFER …… DHCP relay agent 128.195.31.10 128.195.41.1 128.195.31.1
Lab question: • Why does DHCP choose well-known client port?
History of DHCP • Three Protocols: • RARP (until 1985, no longer used) • BOOTP (1985-1993) • DHCP (since 1993) • Only DHCP is widely used today.
Solutions for dynamic assignment of IP addresses • Reverse Address Resolution Protocol (RARP) • RARP is no longer used • Works similar to ARP • Broadcast a request for the IP address associated with a given MAC address • RARP server responds with an IP address • Only assigns IP address (not the default router and subnetmask)
BOOTP • BOOTstrap Protocol (BOOTP) • Host can configure its IP parameters at boot time. • 3 services. • IP address assignment. • Detection of the IP address for a serving machine. • The name of a file to be loaded and executed by the client machine (boot file name) • Not only assigns IP address, but also default router, network mask, etc. • Sent as UDP messages (UDP Port 67 (server) and 68 (host)) • Use limited broadcast address (255.255.255.255): • These addresses are never forwarded
BOOTP Interaction • BOOTP can be used for downloading memory image for diskless workstations • Assignment of IP addresses to hosts is static (b) (a) (c)
Lab errata • In Figure 7.1, the private network interface of Router2 should be labeled with IP address "10.0.1.1/24" (instead of 10.0.0.1/24).