Hierarchical Routing Our routing study thus far an

  • Slides: 44
Download presentation
Hierarchical Routing Our routing study thus far – an idealization r all routers are

Hierarchical Routing Our routing study thus far – an idealization r all routers are identical r the network is “flat” … not true in practice Why? scale: with 55 million+ destination hosts: r can’t store all destinations in routing tables! r routing table exchange would swamp links! administrative autonomy r internet = network of networks r each network admin may want to control routing in its own network 4: Network Layer 1

Hierarchical Routing r aggregate routers into regions, called “autonomous systems” (AS) r routers in

Hierarchical Routing r aggregate routers into regions, called “autonomous systems” (AS) r routers in same AS run same routing protocol m m “intra-AS” routing (i. e. , within an AS) protocol routers in different AS can run different intra. AS routing protocol gateway routers r special routers in AS r run intra-AS routing protocol with all other routers in AS r also responsible for routing to destinations outside AS m run inter-AS routing (i. e. , between AS) protocol with other gateway routers 4: Network Layer 2

Intra-AS and Inter-AS routing C. b a C Gateways: B. a A. a b

Intra-AS and Inter-AS routing C. b a C Gateways: B. a A. a b A. c d A a b c a c B b • perform inter-AS routing amongst themselves • perform intra-AS routers with other routers in their AS network layer inter-AS, intra-AS routing in gateway A. c data link layer physical layer 4: Network Layer 3

Intra-AS and Inter-AS routing C. b a Host h 1 C b A. a

Intra-AS and Inter-AS routing C. b a Host h 1 C b A. a Inter-AS routing between A and B A. c a d c b A Intra-AS routing within AS A B. a a c B Host h 2 b Intra-AS routing within AS B r We’ll examine specific inter-AS and intra-AS Internet routing protocols shortly (section 4. 5) 4: Network Layer 4

The Internet Network layer Host, router network layer functions… three major components: Transport layer:

The Internet Network layer Host, router network layer functions… three major components: Transport layer: TCP, UDP Network layer IP protocol • addressing conventions • datagram format • packet handling conventions Routing protocols • path selection • RIP, OSPF, BGP routing table ICMP protocol • error reporting • router “signaling” Link layer Physical layer 4: Network Layer 5

IP Addressing: introduction r IP address: 32 -bit identifier for host or router interface:

IP Addressing: introduction r IP address: 32 -bit identifier for host or router interface: connection between host or router and the physical link m m m routers typically have multiple interfaces hosts typically have only one IP addresses are associated with the interface, not the host or the router 223. 1. 1. 1 223. 1. 1. 2 223. 1. 1. 4 223. 1. 1. 3 223. 1. 2. 1 223. 1. 2. 9 223. 1. 3. 27 223. 1. 2. 2 223. 1 dotted-decimal notation: 223. 1. 1. 1 = 11011111 00000001 223 1 1 4: Network Layer 1 6

IP Addressing r IP address: m network part (high order bits) m host part

IP Addressing r IP address: m network part (high order bits) m host part (low order bits) r What’s a network ? (from the IP address perspective) m device interfaces with the same network part of their IP address m hosts can physically reach other without an intervening router 223. 1. 1. 1 223. 1. 1. 2 223. 1. 1. 4 223. 1. 1. 3 223. 1. 2. 1 223. 1. 2. 9 223. 1. 3. 27 223. 1. 2. 2 LAN 223. 1. 3. 2 Example: network consisting of 3 IP networks (for IP addresses starting with 223, the first 24 bits are the network address – more later) 4: Network Layer 7

IP Addressing How to find the networks? r Detach each interface from routers r

IP Addressing How to find the networks? r Detach each interface from routers r create “islands of isolated networks 223. 1. 1. 2 223. 1. 1. 1 223. 1. 1. 4 223. 1. 1. 3 223. 1. 9. 2 223. 1. 7. 0 223. 1. 9. 1 223. 1. 7. 1 223. 1. 8. 0 223. 1. 2. 6 Interconnected system consisting of six networks 223. 1. 2. 1 223. 1. 3. 27 223. 1. 2. 2 223. 1. 3. 2 4: Network Layer 8

IP Addresses Given the notion of a “network”, let’s look closer at IP addresses:

IP Addresses Given the notion of a “network”, let’s look closer at IP addresses: “classful” addressing class A 0 network host 27 = 127 networks B 10 224 = 16. 8 million+ hosts network host 214 = 16, 384 networks C 221 = 2 million+ networks D 1110 24 = 16 networks (16 bits) 216 = 65, 536 hosts network 110 1. 0. 0. 0 to 127. 255 (24 bits) multicast address host (8 bits) 28 = 256 hosts (28 bits) 228 = 268. 4 million+ hosts 128. 0. 0. 0 to 191. 255 192. 0. 0. 0 to 223. 255 224. 0. 0. 0 to 239. 255 32 bits What is the address space size (number of hosts) for each class? 4: Network Layer 9

IP addressing: CIDR r classful addressing: m m inefficient use of address space, address

IP addressing: CIDR r classful addressing: m m inefficient use of address space, address space exhaustion e. g. , class B network is allocated enough addresses for 65 K hosts, even if only 2 K hosts exist in that network r CIDR: Classless Inter. Domain Routing m m network portion of address of arbitrary length address format: a. b. c. d/x, where x is # bits in the network portion of an address network part host part 11001000 00010111 00010000 200. 23. 16. 0/23 4: Network Layer 10

IP addresses: how to get one? Hosts (host portion): r hard-coded by system admin

IP addresses: how to get one? Hosts (host portion): r hard-coded by system admin in a file r DHCP: Dynamic Host Configuration Protocol: dynamically get address (RFC 2131): “plug-and-play” m host broadcasts “DHCP discover” msg m DHCP server responds with “DHCP offer” msg m host requests IP address: “DHCP request” msg m DHCP server sends address: “DHCP ack” msg 4: Network Layer 11

IP addresses: how to get one? Network (network portion): r get allocated portion of

IP addresses: how to get one? Network (network portion): r get allocated portion of ISP’s address space: ISP's block 11001000 00010111 00010000 200. 23. 16. 0/20 Organization 0 11001000 00010111 00010000 200. 23. 16. 0/23 Organization 1 11001000 00010111 00010010 0000 200. 23. 18. 0/23 Organization 2. . . 11001000 00010111 00010100 0000 …. 200. 23. 20. 0/23 …. Organization 7 11001000 00010111 00011110 0000 200. 23. 30. 0/23 4: Network Layer 12

Hierarchical addressing: route aggregation Hierarchical addressing allows efficient advertisement of routing information: Organization 0

Hierarchical addressing: route aggregation Hierarchical addressing allows efficient advertisement of routing information: Organization 0 200. 23. 16. 0/23 Organization 1 200. 23. 18. 0/23 Organization 2 200. 23. 20. 0/23 Organization 7 . . . Fly-By-Night-ISP “Send me anything with addresses beginning 200. 23. 16. 0/20” Internet Routing Hierarchy 200. 23. 30. 0/23 ISPs-R-Us “Send me anything with addresses beginning 199. 31. 0. 0/16” 4: Network Layer 13

Hierarchical addressing: more specific routes ISPs-R-Us has a more specific route to Organization 1

Hierarchical addressing: more specific routes ISPs-R-Us has a more specific route to Organization 1 (longest prefix matching): Organization 0 200. 23. 16. 0/23 Organization 2 200. 23. 20. 0/23 Organization 7 . . . Fly-By-Night-ISP 200. 23. 30. 0/23 ISPs-R-Us Organization 1 200. 23. 18. 0/23 “Send me anything with addresses beginning 200. 23. 16. 0/20” Internet Routing Hierarchy “Send me anything with addresses beginning 199. 31. 0. 0/16 or 200. 23. 18. 0/23” 4: Network Layer 14

IP addressing: the last word. . . Q: How does an ISP get a

IP addressing: the last word. . . Q: How does an ISP get a block of addresses? A: ICANN: Internet Corporation for Assigned Names and Numbers (RFC 2050) m non-profit organization m allocates addresses via regional registries (mid-2000) • ARIN - North and South America, part of Africa • RIPE – Europe and surrounding countries • APNIC – Asia Pacific region m manages DNS m assigns domain names, resolves disputes 4: Network Layer 15

Getting a datagram from source to dest. routing table* in A dest. next router

Getting a datagram from source to dest. routing table* in A dest. next router #hops IP datagram: misc. source dest fields IP addr 223. 1. 1 223. 1. 2 223. 1. 3 data r addresses remain unchanged, as the datagram travels from source to destination r address fields of interest here (provided by the source host A) * Note – more on this later A B 223. 1. 1. 4 1 2 2 223. 1. 1. 1 223. 1. 1. 2 223. 1. 1. 4 223. 1. 1. 3 223. 1. 2. 9 223. 1. 3. 27 223. 1. 2. 2 E 223. 1. 3. 2 4: Network Layer 16

Getting a datagram from source to dest. misc data fields 223. 1. 1. 1

Getting a datagram from source to dest. misc data fields 223. 1. 1. 1 223. 1. 1. 3 dest. next router #hops 223. 1. 1 223. 1. 2 223. 1. 3 Starting at A, given an IP datagram addressed to B: r look up network address of B r find B is on same network as A A r link layer will send datagram directly to B inside link-layer frame m B and A are directly connected B 223. 1. 1. 4 1 2 2 223. 1. 1. 1 223. 1. 1. 2 223. 1. 1. 4 223. 1. 1. 3 223. 1. 2. 9 223. 1. 3. 27 223. 1. 2. 2 E 223. 1. 3. 2 4: Network Layer 17

Getting a datagram from source to dest. misc data fields 223. 1. 1. 1

Getting a datagram from source to dest. misc data fields 223. 1. 1. 1 223. 1. 2. 2 dest. next router #hops 223. 1. 1 223. 1. 2 223. 1. 3 Starting at A, destination E: r look up network address of E r E on different network A, E not directly attached routing table: next hop router to E is 223. 1. 1. 4 link layer sends datagram to router 223. 1. 1. 4 inside linklayer frame datagram arrives at 223. 1. 1. 4 continued…. . A 223. 1. 1. 4 223. 1. 1. 1 m r r B 1 2 2 223. 1. 1. 4 223. 1. 1. 3 223. 1. 2. 9 223. 1. 3. 27 223. 1. 2. 2 E 223. 1. 3. 2 4: Network Layer 18

Getting a datagram from source to dest. misc data fields 223. 1. 1. 1

Getting a datagram from source to dest. misc data fields 223. 1. 1. 1 223. 1. 2. 2 Arriving at 223. 1. 1. 4, destined for 223. 1. 2. 2 r look up network address of E r E on same network as router’s interface 223. 1. 2. 9 m router, E directly attached r link layer sends datagram to 223. 1. 2. 2 inside link-layer frame via interface 223. 1. 2. 9 r datagram arrives at 223. 1. 2. 2!!! dest. next network router #hops interface 223. 1. 1 223. 1. 2 223. 1. 3 A B - 1 1 1 223. 1. 1. 4 223. 1. 2. 9 223. 1. 3. 27 223. 1. 1. 1 223. 1. 1. 2 223. 1. 1. 4 223. 1. 1. 3 223. 1. 2. 9 223. 1. 3. 27 223. 1. 2. 2 E 223. 1. 3. 2 4: Network Layer 19

Next Lesson: IP Structure and Routing in the Internet 4: Network Layer 20

Next Lesson: IP Structure and Routing in the Internet 4: Network Layer 20

IP datagram format IP protocol version number header length (bytes) “type” of data max

IP datagram format IP protocol version number header length (bytes) “type” of data max number of remaining hops (decremented at each router) upper layer protocol to deliver payload to (e. g. TCP, UDP, … see RFC 1700) 32 bits type of ver. head. len. service datagram length fragment 16 -bit identifier flgs offset time to upper header layer live checksum total datagram length (bytes) for fragmentation/ reassembly 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) e. g. timestamp, record route taken, specify list of routers to visit (field is rarely used in practice). 4: Network Layer 21

IP Fragmentation & Reassembly r network links have MTU (Max. Transfer Unit) size -

IP Fragmentation & Reassembly r network links have MTU (Max. Transfer Unit) size - largest possible link-level frame. m different link types, different MTUs r large IP datagram divided (“fragmented”) within net m one datagram becomes several datagrams m “reassembled” only at final destination m IP header bits used to identify and order related fragments fragmentation: in: one large datagram out: 3 smaller datagrams reassembly 4: Network Layer 22

IP Fragmentation and Reassembly length ID More bit offset =3980 =x =0 =0 One

IP Fragmentation and Reassembly length ID More bit offset =3980 =x =0 =0 One large datagram becomes several smaller datagrams length ID More bit offset =1480 =x =1 =0 length ID More bit offset =1480 =x =1 =1480 length ID More bit offset =1020 =x =0 =2960 Note: Offset is actually specified as number of 8 -byte (64 -bit) units. 4: Network Layer 23

Transport and application layer in the network core? application transport network data link physical

Transport and application layer in the network core? application transport network data link physical Application and transport layer uses in the core • routing table updates/broadcasts • router management • router error reporting application transport network data link data physical application transport network data link physical application transport network data link data physical application transport network data link physical application physical transport network data link data physical application transport network data link data physical application transport network data link physical 4: Network Layer 24

ICMP: Internet Control Message Protocol r used by hosts, routers, gateways to communicate network-level

ICMP: Internet Control Message Protocol r used by hosts, routers, gateways to communicate network-level information m error reporting: unreachable host, network, port, protocol m echo request/reply (used by ping) r network-layer “above” IP: m ICMP messages are carried in IP datagrams r ICMP message: type, code, and checksum, plus header and first 8 bytes of IP datagram causing error/ response Type 0 3 3 3 4 Code 0 0 1 2 3 6 7 0 8 9 10 11 12 … 0 0 0 description echo reply (ping) dest network unreachable dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement* router discovery* TTL expired bad IP header (See RFC 792, 1296*) 4: Network Layer 25

Routing in the Internet r The Global Internet consists of Autonomous Systems (AS) interconnected

Routing in the Internet r The Global Internet consists of Autonomous Systems (AS) interconnected with each other: m m m Stub AS: small corporation Multi-homed AS: large corporation (no transit) Transit AS: provider r Two-level routing: m Intra-AS: administrator is responsible for choice m Inter-AS: unique standard 4: Network Layer 26

Internet AS Hierarchy Inter-AS border (exterior gateway) routers Intra-AS (interior gateway) routers 4: Network

Internet AS Hierarchy Inter-AS border (exterior gateway) routers Intra-AS (interior gateway) routers 4: Network Layer 27

Intra-AS Routing r Also known as Interior Gateway Protocols (IGP) r Most common IGPs:

Intra-AS Routing r Also known as Interior Gateway Protocols (IGP) r Most common IGPs: m RIP: Routing Information Protocol (legacy) m OSPF: Open Shortest Path First (common) m EIGRP: Enhanced Interior Gateway Routing Protocol (proprietary – Cisco Systems) 4: Network Layer 28

RIP ( Routing Information Protocol) r Distance vector algorithm r Included in BSD-UNIX Distribution

RIP ( Routing Information Protocol) r Distance vector algorithm r Included in BSD-UNIX Distribution in 1982 m RFC 1058 (version 1), RFC 1723 (version 2) r Distance metric: # of hops (max = 15 hops) m Can you guess why? r Distance vectors: exchanged every 30 seconds via Response Message (also called advertisement) r Each advertisement: routing info for maximum of 25 destination nets within the AS 4: Network Layer 29

RIP (Routing Information Protocol) z w A x D B y C Destination Network

RIP (Routing Information Protocol) z w A x D B y C Destination Network w y z x … Next Router A B B -… Num. of hops to dest. 2 2 7 1 … Routing table in D 4: Network Layer 30

RIP: Link Failure and Recovery If no advertisement heard after 180 sec --> neighbor/link

RIP: Link Failure and Recovery If no advertisement heard after 180 sec --> neighbor/link declared dead m routes via that neighbor are invalidated m new advertisements sent to neighbors m neighbors in turn send out new advertisements (if tables changed) m link failure info quickly propagates to entire net m poison reverse used to prevent ping-pong loops (infinite distance = 16 hops) 4: Network Layer 31

RIP Table processing example (BSD UNIX) r RIP routing tables managed by application-level process

RIP Table processing example (BSD UNIX) r RIP routing tables managed by application-level process called route-d (BSD UNIX daemon) r advertisements sent in UDP packets, periodically repeated 4: Network Layer 32

RIP Table example (continued) Router: giroflee. eurocom. fr Destination ----------127. 0. 0. 1 192.

RIP Table example (continued) Router: giroflee. eurocom. fr Destination ----------127. 0. 0. 1 192. 168. 2. 193. 55. 114. 192. 168. 3. 224. 0. 0. 0 default Gateway Flags Ref Use Interface ---------- --------127. 0. 0. 1 UH 0 26492 lo 0 192. 168. 2. 5 U 2 13 fa 0 193. 55. 114. 6 U 3 58503 le 0 192. 168. 3. 5 U 2 25 qaa 0 193. 55. 114. 6 U 3 0 le 0 193. 55. 114. 129 UG 0 143454 r Three attached class C networks (LANs) r Router only knows routes to attached LANs r Default router used to “go up” to next logical level r Route multicast address: 224. 0. 0. 0 r Loopback interface (for debugging) 4: Network Layer 33

Problems/limitations with RIP r Good for small systems, but doesn’t scale well r Count-to-infinity

Problems/limitations with RIP r Good for small systems, but doesn’t scale well r Count-to-infinity problem… poisoned reverse only r Comparatively slow convergence r 1979 – RIP version 2, link state algorithm r 1988 – IETF initiates work on replacement r 1990 – OSPF became new standard 4: Network Layer 34

OSPF (Open Shortest Path First) r “open”: publicly available r Uses Link State algorithm

OSPF (Open Shortest Path First) r “open”: publicly available r Uses Link State algorithm m LS packet dissemination m Topology map at each node m Route computation using Dijkstra’s algorithm However…. r OSPF advertisement carries only one entry per neighbor router r Advertisements disseminated to entire AS (via flooding) 4: Network Layer 35

OSPF “advanced” features (not in RIP) r Security: all OSPF messages are authenticated (to

OSPF “advanced” features (not in RIP) r Security: all OSPF messages are authenticated (to prevent malicious intrusion); TCP connections used r Multiple same-cost paths allowed (only one path in RIP) r For each link, multiple cost metrics for different Types Of Service (e. g. , satellite link cost set “low” for best effort; high for real time) r Integrated uni- and multicast support: m Multicast OSPF (MOSPF) uses same topology data base as OSPF r Hierarchical OSPF in large domains. 4: Network Layer 36

Hierarchical OSPF 4: Network Layer 37

Hierarchical OSPF 4: Network Layer 37

Hierarchical OSPF r Two-level hierarchy: local area and backbone. m link-state advertisements only in

Hierarchical OSPF r Two-level hierarchy: local area and backbone. m link-state advertisements only in local area m each node has detailed area topology; only know direction (shortest path) to nets in other areas. r Area border routers: “summarize” distances to nets in own area, advertise to other Area Border routers. r Backbone routers: run OSPF routing, limited to backbone. r Boundary routers: connect to other ASs. (Note: synonymous with the “gateway routers” we discussed in section 4. 3) 4: Network Layer 38

EIGRP (Enhanced Interior Gateway Routing Protocol) r CISCO proprietary; successor of RIP (mid 80’s)

EIGRP (Enhanced Interior Gateway Routing Protocol) r CISCO proprietary; successor of RIP (mid 80’s) r uses Distance Vector, like RIP r several cost metrics (delay, bandwidth, reliability, load etc) r uses TCP (!) to exchange routing updates r Loop-free routing via a distributed update routing algorithm (called DUAL) based on diffused computation 4: Network Layer 39

Inter-AS routing 4: Network Layer 40

Inter-AS routing 4: Network Layer 40

Internet inter-AS routing: BGP r BGP (Border Gateway Protocol): the de facto standard r

Internet inter-AS routing: BGP r BGP (Border Gateway Protocol): the de facto standard r Path Vector protocol: m similar to Distance Vector protocol m each Border Gateway broadcasts to neighbors (peers) the entire path (I. e, sequence of ASs) to destination m E. g. , Gateway X may send its path to destination Z: Path (X, Z) = X, Y 1, Y 2, Y 3, …, Z 4: Network Layer 41

Internet inter-AS routing: BGP Suppose: gateway X send its path to peer gateway W

Internet inter-AS routing: BGP Suppose: gateway X send its path to peer gateway W r W may or may not select a path offered by X m cost, policy (don’t route via competitors AS), loop prevention reasons. r If W selects a path advertised by X, then: Path (W, Z) = W, Path (X, Z) r Note: X can control incoming traffic by controlling its route advertisements to peers: m e. g. , don’t want to route traffic to Z -> don’t advertise any routes to Z 4: Network Layer 42

Internet inter-AS routing: BGP r BGP messages exchanged using TCP. r BGP messages: m

Internet inter-AS routing: BGP r BGP messages exchanged using TCP. r BGP messages: m OPEN: opens TCP connection to peer and authenticates sender m UPDATE: advertises new path (or withdraws old) m KEEPALIVE keeps connection alive in absence of UPDATES; also ACKs OPEN request m NOTIFICATION: reports errors in previous message; also used to close connection 4: Network Layer 43

Why different Intra- and Inter-AS routing ? Policy: r Inter-AS: admin wants control over

Why different Intra- and Inter-AS routing ? Policy: r Inter-AS: admin wants control over how its traffic is routed, who routes through its net. r Intra-AS: single admin, so no policy decisions needed Scale: r hierarchical routing saves table size, reduces update traffic Performance: r Intra-AS: can focus on performance r Inter-AS: policy may dominate over performance 4: Network Layer 44