300 likes | 498 Views
Internet Routing (COS 598A) Today: Addressing and Routing. Jennifer Rexford http://www.cs.princeton.edu/~jrex/teaching/spring2005 Tuesdays/Thursdays 11:00am-12:20pm. Outline. IP addressing Address allocation blocks Packet forwarding Routing protocols Autonomous Systems
E N D
Internet Routing (COS 598A)Today: Addressing and Routing Jennifer Rexford http://www.cs.princeton.edu/~jrex/teaching/spring2005 Tuesdays/Thursdays 11:00am-12:20pm
Outline • IP addressing • Address allocation blocks • Packet forwarding • Routing protocols • Autonomous Systems • Interdomain routing • Intradomain routing • Practical realities • Asymmetric routing • IP address != host • Autonomous System != institution • Discussion of Saltzer84 and Clark88
00001100 00100010 10011110 00000101 IP Addressing • 32-bit number in dotted-quad notation (12.34.158.5) • Divided into network & host portions (left and right) • 12.34.158.0/24 is a 24-bit prefix with 28 addresses 12 34 158 5 Network (24 bits) Host (8 bits)
Some History: Why Dotted-Quad Notation? • In the olden days… • Class A: 0* • Very large /8 blocks (e.g., MIT has 18.0.0.0/8) • Class B: 10* • Large /16 blocks (e.g,. Princeton has 128.112.0.0/16) • Class C: 110* • Small /24 blocks (e.g., AT&T Labs has 192.20.225.0/24) • Class D: 1110* • Multicast groups • Class E: 11110* • Reserved for future use (sounds a bit scary…) • And then, address space became scarce…
00001100 00000100 00000000 00000000 Address 11111111 11111110 00000000 00000000 Mask Network Prefix for hosts Classless Inter-Domain Routing (CIDR) Use two 32-bit numbers to represent a network. Network number = IP address + Mask IP Address : 12.4.0.0 IP Mask: 255.254.0.0 Usually written as 12.4.0.0/15
12.0.0.0/16 : : : 12.1.0.0/16 12.3.0.0/24 12.2.0.0/16 12.3.1.0/24 : : 12.3.0.0/16 : : : 12.0.0.0/8 12.3.254.0/24 12.253.0.0/19 12.253.32.0/19 12.253.64.0/19 12.253.0.0/16 12.253.96.0/19 12.254.0.0/16 12.253.128.0/19 12.253.160.0/19 12.253.192.0/19 CIDR = Hierarchy in Address Allocation • Prefixes are key to Internet scalability • Address allocation by ARIN/RIPE/APNIC and by ISPs • Routing protocols and packet forwarding based on prefixes • Today, routing tables contain ~150,000-200,000 prefixes
Figuring Out Who Owns an Address • Address registries • Public record of address allocations • ISPs should update when giving addresses to customers • However, records are notoriously out-of-date • Ways to query • UNIX: “whois –h whois.arin.net 128.112.136.35” • http://www.arin.net/whois/ • http://www.geektools.com/whois.php • …
Example Output for 128.112.136.35 OrgName: Princeton University OrgID: PRNU Address: Office of Information Technology Address: 87 Prospect Avenue City: Princeton StateProv: NJ PostalCode: 08544-2007 Country: US NetRange: 128.112.0.0 - 128.112.255.255 CIDR: 128.112.0.0/16 NetName: PRINCETON NetHandle: NET-128-112-0-0-1 Parent: NET-128-0-0-0-0 NetType: Direct Allocation RegDate: 1986-02-24
Longest Prefix Match Forwarding • Forwarding tables in IP routers • Maps each IP prefix to next-hop link(s) • Destination-based forwarding • Packet has a destination address • Router identifies longest-matching prefix • Cute algorithmic problem: very fast lookups forwarding table 4.0.0.0/8 4.83.128.0/17 12.0.0.0/8 12.34.158.0/24 126.255.103.0/24 destination 12.34.158.5 outgoing link Serial0/0.1
Where do Forwarding Tables Come From? • Routers have forwarding tables • Map prefix to outgoing link(s) • Entries can be statically configured • E.g., “map 12.34.158.0/24 to Serial0/0.1” • But, this doesn’t adapt • To failures • To new equipment • To the need to balance load • … • That is where routing protocols come in…
Two-Tiered Internet Routing Architecture • Goal: distributed management of resources • Internetworking of multiple networks • Networks under separate administrative control • Solution: two-tiered routing architecture • Intradomain: inside a region of control • Okay for routers to share topology information • Routers configured to achieve a common goal • Interdomain: between regions of control • Not okay to share complete information • Networks may have different/conflicting goals • Led to the use of different protocols…
Connections Between Networks interdomain protocols dial-in access ISP 2 private peering intradomain destination protocols IXP ISP 1 gateway router access router ISP 3 destination commercial customer
Internet Routing Architecture • Divided into Autonomous Systems • Distinct regions of administrative control • Routers/links managed by a single “institution” • Service provider, company, university, … • Hierarchy of Autonomous Systems • Large, tier-1 provider with a nationwide backbone • Medium-sized regional provider with smaller backbone • Small network run by a single company or university • Interaction between Autonomous Systems • Internal topology is not shared between ASes • … but, neighboring ASes interact to coordinate routing
AS Numbers (ASNs) ASNs are 16 bit values. 64512 through 65535 are “private” Currently around 20,000 in use. • Level 3: 1 • MIT: 3 • Harvard: 11 • Yale: 29 • Princeton: 88 • AT&T: 7018, 6341, 5074, … • UUNET: 701, 702, 284, 12199, … • Sprint: 1239, 1240, 6211, 6242, … • … ASNs represent units of routing policy
Interdomain Routing (Between ASes) Path: 6, 5, 4, 3, 2, 1 4 3 5 2 6 7 1 Web server Client
“12.34.158.0/24: path (2,1)” “12.34.158.0/24: path (1)” 2 3 Interdomain Routing: Border Gateway Protocol • ASes exchange info about who they can reach • IP prefix: block of destination IP addresses • AS path: sequence of ASes along the path • Policies configured by the AS’s operator • Path selection: which of the paths to use? • Path export: which neighbors to tell? 1 data traffic data traffic 12.34.158.5
Zooming in to AS 3 • Border router • Learns BGP route from neighbor AS • Creates forwarding-table entry for prefix • But, how do the other routers get there? Border router: 12.34.158.0/24
iBGP session How do Other Routers Learn the BGP Route? • Internal BGP • iBGP sessions between the routers • Allows other routers to get the big picture • Simplest case: “full mesh” of iBGP sessions “12.34.158.0/24 through red router” 12.34.158.0/24
How To Get to the Egress Router? • Interior Gateway Protocol (OSPF/IS-IS) • Routers flood information to learn topology • Routers determine “next hop” to other routers… • Compute shortest paths based on the link weights • Link weights configured by the operator 2 1 3 1 3 2 1 5 “Use Serial0/0.1 to get to the red router” 4 3
Constructing the Forwarding Table • Three protocols • External BGP: learn the external route • Internal BGP: propagate inside the AS • IGP: learn outgoing link on path to other router • Router joins the data • Prefix 12.34.158.0/24 reached through red router • Red router reached via link Serial0/0.1 • Forwarding entry: 12.34.158.0/24 Serial0/0.1 • Router forwards packets • Lookup destination 12.34.158.5 in table • Forward packet out link Serial0/0.1
What if There are Multiple Choices? Hot-potato routing 192.44.78.0/24 egress 2 egress 1 IGP distances 56 15 This router has two BGP routes to 192.44.78.0/24. Hot potato: get traffic off of your network as soon as possible. Go for egress 1!
Topology information is flooded within the routing domain Best end-to-end paths are computed locally at each router. Best end-to-end paths determine next-hops. Based on minimizing some notion of distance Works only if policy is shared and uniform Examples: OSPF, IS-IS Each router knows little about network topology Only best next-hops are chosen by each router for each destination. Best end-to-end paths result from composition of all next-hop choices Does not require any notion of distance Does not require uniform policies at all routers Examples: RIP, BGP Two Kinds of Routing Protocols Link State Vectoring
IP Address != Host Machine • Dynamic IP address assignment (DHCP) • Single client may have multiple addresses over time • Address may correspond to multiple clients over time • Shared machines • Multiple users on a shared compute server • Transfers traveling through proxies and firewalls • Multiple Web sites hosted on a single machine • Replicated sites • Multiple machines hosting a single (popular) Web site • Addresses do not correspond to geographic location • Similar prefix does not necessarily imply nearby hosts • Single prefix may span hosts in large geographic region • Source IP address may be spoofed (e.g., DoS attack)
AS != Institution • Not equivalent to an AS • Many institutions span multiple autonomous systems • Some institutions do not have their own AS number • Ownership of an AS may be hard to pinpoint (whois) • Not equivalent to a block of IP addresses (prefix) • Many institutions have multiple (non-contiguous) prefixes • Some institutions are a small part of a larger address block • Ownership of a prefix may be hard to pinpoint (whois) • Not equivalent to a domain name (att.com) • Some sites may be hosted by other institutions • Some institutions have multiple domain names (att.net)
Routing is Not Symmetric Web request and TCP ACKs client server Web response
Discussion of Saltzer84 • End-to-end argument • Better to implement functions close to application • … except when performance requires otherwise • Why? • … • What should be the “end” for routing? • Router? • End host? • Enterprise edge? • Autonomous System?
Discussion of Clark88 • Basic story of Clark88 • Enumerate (and prioritize) system goals • … and see what decisions that leads you to make • Clark88 doesn’t say much about routing, but • “Some of the most significant problems with the Internet today relate to lack of sufficient tools for distributed management, especially in the area of routing.” • What should be goals & priorities for routing? • …
For Next Tuesday’s Class… • Topology: Inside an Autonomous System • “Measuring ISP topologies with RocketFuel” (SIGCOMM’02) • “A first-principles approach to understanding the Internet’s router-level topology” (SIGCOMM’04) • Written review, one page each (hard-copy) • Brief summary of the paper • Reasons to accept the paper • Reasons to reject the paper • Three suggestions for future research directions • Other materials • Short paper on path diversity (Teixeira03) • Internet topology pictures (Maps)