Routing
Classless Inter-Domain Routing Classful addressing scheme wasteful – IP address space exhaustion – A class B net allocated enough for 65K hosts Even if only 2K hosts in that network Solution: CIDR – Eliminate class distinction No A,B,C – Keep multicast class D
Classless Addressing Addresses allocated in blocks – Number of addresses assigned always power of 2, and always on the boundary. That is, if 2048 addresses, it will start with some address with all lower 11 bits being 0. Network portion of address is of arbitrary length Address format: a.b.c.d/x – x is number of bits in network portion of address network part host part /23
Allocating Addresses Assume abundant addresses are available starting at Cambridge university needs 2048 addresses, it is given to Mask Oxford need 4096 addresses. Because the requirement is that must be on the boundary, it is given to Mask Edinburg needs 1024 addresses, is given to Mask
CIDR A router keeps routing table with entries – IP address, 32-bit mask, outgoing line When an IP packet arrives, the router checks its routing table to find the longest match. Match means anding the IP address with the network address mask (1111…10000), and check if the result is the same as the network address.
CIDR Example. – Cambridge / – Edinburgh / – (Available) / – Oxford / When a packet addressing to arrives, where should it be sent to? And with all masks, find one that matches the longest.
CIDR – Entry aggregation How does a router in Tallahassee route packet to C,E and O, assuming that he has only two outgoing links? All to New York. Can it reduce the size of his routing table? C E O N T H
CIDR Entry Aggregation From to , all to N. So aggregate the three entries into one /19. The N router can do the same thing. C E O N T H
CIDR If later the free address space / is assigned to Pittsburgh and has to go through Houston, what should the router at Tallahassee do? C E O N T H P
CIDR When a packet arrives addressing , the router checks the routing table and there will be two matches: /22 and /19. Pick the longest match.
NAT – Network Address Translation IP address is a scarce resource. So, give a company only one or a few IP addresses used by the gateway router. Within the company, each machine has an unique IP address, chosen from – /8 – /12 – /16 – These addresses can only appear within a company but never on the outside Internet
NAT Whenever a machine wants to send a packet to the outside, the packet will be sent to the NAT box. The NAT box will convert the internal IP address to the real IP address of the company, and pass the packet to the gateway router. When there is a packet destined for an internal machine arrived at the router, what should the router and NAT box do? For IP packets carrying TCP or UDP, use port number. Other protocols are much more complicated.
NAT For IP packets carrying TCP or UDP, use port number. When an outgoing packet arrives at the NAT box, – The IP address is replaced – The source port number is replaced – Header checksum is recomputed When a reply came for this process, use the replaced source port number as index to find the correct IP address and original port number.