Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2...
Transcript of Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2...
![Page 1: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/1.jpg)
1CS 640
Network Layer - 1
OutlineNetwork addresses
Forwarding vs RoutingARP, RARPIP Service Model
![Page 2: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/2.jpg)
2CS 640
Addressing
• IP Address: byte-string that identifies a node– usually unique (some exceptions)– Dotted decimal notation: 128.92.54.32
• Types of addresses– unicast: node-specific– broadcast: all nodes on the network– multicast: some subset of nodes on the network
![Page 3: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/3.jpg)
3CS 640
Global Addresses• Properties
– globally unique– hierarchical: network + host
• Dotted Decimal Notation– 120.3.2.4– 128.96.33.81– 192.12.69.77
• Address classes– A, B, C (shown)
• Network respresented as Network Part / Num. Bits– E.g. 120/8 or 128.96/16
Network Host
7 24
0A:
Network Host
14 16
1 0B:
Network Host
21 8
1 1 0C:
Exercise: Find out about private addresses
![Page 4: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/4.jpg)
4CS 640
Other Addresses
• Private address:– 10.0.0.0 to 10.255.255.255 (10/8)
– 172.16.0.0 to 172.31.255.255 (172.16/12)
– 192.168.0.0 to 192.168.255.255 (192.168/16)
– 169.254.0.0 to 16.254.255.255 (169.254/16) – link local addresses
• Class D: multicast addresses: 224.0.0.0 to 224.255.255.255
• Host part all 1’s: broadcast in local network• Host part all 0’s: unspecified (not allowed)
1 1 1 0
![Page 5: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/5.jpg)
5CS 640
Route Propagation• Know a smarter router
– hosts know local router– local routers know site routers– site routers know core router– core routers know everything
• Autonomous System (AS)– corresponds to an administrative domain– examples: University, company, backbone network– assign each AS a 16-bit number
• Two-level route propagation hierarchy– interior gateway protocol (each AS selects its own)– exterior gateway protocol (Internet-wide standard)
![Page 6: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/6.jpg)
6CS 640
Data forwarding
![Page 7: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/7.jpg)
7CS 640
IP Internet
• Concatenation of Networks
• Protocol Stack
R2
R1
H4
H5
H3H2H1
Network 2 (Ethernet)
Network 1 (Ethernet)
H6
Network 3 (FDDI)
Network 4(point-to-point)
H7 R3 H8
R1
ETH FDDI
IPIP
ETH
TCP R2
FDDI PPP
IP
R3
PPP ETH
IP
H1
IP
ETH
TCP
H8
interface1
interface0
![Page 8: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/8.jpg)
8CS 640
Forwarding and Routing
• Routing: involves computation of routes– Which path to take
• Forwarding: select an output interface at each hop– Assumes routes have been computed– Depends only on destination IP address
• They are independent of each other
![Page 9: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/9.jpg)
9CS 640
Forwarding
R2
R1
H4
H5
H3H2H1
Network 2: 128.20/16
Network 1: 12/8
H6
Network 3 128.30/16
Network 4200.12.8/24
H7 R3 H8
Interface1 (200.12.8.1)
interface0
128.20.0.8
128.20.0.1
128.30.0.2
200.12.8.2
![Page 10: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/10.jpg)
10CS 640
Forwarding Tables
• Suppose there are n possible destinations, how many bits are needed to represent addresses in a routing table?– log2n
• So, we need to store and search n * log2n bits in routing tables?– We’re smarter than that!
![Page 11: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/11.jpg)
11CS 640
Datagram Forwarding • Strategy
– every datagram contains destination’s address– if directly connected to destination network, then forward to
host– if not directly connected to destination network, then
forward to some router– forwarding table maps network number into next hop– each host has a default router– each router maintains a forwarding table
• Example Network Next Hopfor router R2 1 R3in previous figure 2 R1
3 interface 1 4 interface 0
default R3
![Page 12: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/12.jpg)
12CS 640
Subnetting and Supernetting
• Fixed network sizes are wasteful– What happens if a site asks for 256 IP addresses?– Subnetting
• Too many entries at a router can be combined– Keep routing tables small– Supernetting
• Classless Inter-Domain Routing (CIDR)
![Page 13: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/13.jpg)
13CS 640
Subnetting• Add another level to address/routing hierarchy: subnet• Subnet masks define variable partition of host part• Subnets visible only within site
Network number Host number
Class B address
Subnet mask (255.255.255.0)
Subnetted address
111111111111111111111111 00000000
Network number Host IDSubnet ID
![Page 14: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/14.jpg)
14CS 640
Subnet Example
Forwarding table at router R1Subnet Number Subnet Mask Next Hop
128.96.34.0 255.255.255.128 interface 0
128.96.34.128 255.255.255.128 interface 1
128.96.33.0 255.255.255.0 R2
Subnet mask: 255.255.255.128Subnet number: 128.96.34.0
128.96.34.15 128.96.34.1
H1R1
128.96.34.130Subnet mask: 255.255.255.128Subnet number: 128.96.34.128
128.96.34.129128.96.34.139
R2H2
128.96.33.1128.96.33.14
Subnet mask: 255.255.255.0Subnet number: 128.96.33.0
H3
![Page 15: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/15.jpg)
15CS 640
Forwarding Algorithm
D = destination IP addressfor each entry (SubnetNum, SubnetMask, NextHop) D1 = SubnetMask & D if D1 = SubnetNum if NextHop is an interface deliver datagram directly to D else deliver datagram to NextHop
• Use a default router if nothing matches• Not necessary for all 1s in subnet mask to be contiguous • Can put multiple subnets on one physical network• Subnets not visible from the rest of the Internet
![Page 16: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/16.jpg)
16CS 640
Supernetting
• Assign block of contiguous network numbers to nearby networks
• Called CIDR: Classless Inter-Domain Routing• Represent blocks with a single pair
(first_network_address, count)• Restrict block sizes to powers of 2• Use a bit mask (CIDR mask) to identify block size• All routers must understand CIDR addressing
![Page 17: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/17.jpg)
17CS 640
Forwarding Table Lookup
• Longest prefix match– Each entry in the forwarding table is:
< Network Number / Num. Bits> | interface-id
Suppose we have:
192.20./16 | i0
192.20.12/24 | i1
And destination address is: 192.20.12.7, choose i1
![Page 18: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/18.jpg)
18CS 640
Address Translation • Map IP addresses into physical addresses
– destination host– next hop router
• Techniques– encode physical address in host part of IP address– table-based
• ARP– table of IP to physical address bindings– broadcast request if IP address not in table– target machine responds with its physical address– table entries are discarded if not refreshed
![Page 19: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/19.jpg)
19CS 640
ARP Details
• Request Format– HardwareType: type of physical network (e.g., Ethernet)– ProtocolType: type of higher layer protocol (e.g., IP)– HLEN & PLEN: length of physical and protocol addresses– Operation: request or response – Source/Target-Physical/Protocol addresses
• Notes– table entries timeout in about 10 minutes– update table with source when you are the target – update table if already have an entry– do not refresh table entries upon reference
![Page 20: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/20.jpg)
20CS 640
ARP Packet Format
TargetHardwareAddr (bytes 2 – 5)
TargetProtocolAddr (bytes 0 – 3)
SourceProtocolAddr (bytes 2 – 3)
Hardware type = 1 ProtocolT ype = 0x0800
SourceHardwareAddr (bytes 4 – 5)
TargetHardwareAddr (bytes 0 – 1)
SourceProtocolAddr (bytes 0 – 1)
HLen = 48 PLen = 32 Operation
SourceHardwareAddr (bytes 0 – 3)
0 8 16 31
![Page 21: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/21.jpg)
21CS 640
IP Service Model• Connectionless (datagram/packet-based)• Best-effort delivery (unreliable service)
– packets are lost– packets are delivered out of order– duplicate copies of a packet are delivered– packets can be delayed for a long time
• Datagram formatVersion HLen TOS Length
Ident Flags Offset
TTL Protocol Checksum
SourceAddr
DestinationAddr
Options (variable) Pad(variable)
0 4 8 16 19 31
Data
![Page 22: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/22.jpg)
22CS 640
Fragmentation and Reassembly
• Each network has some MTU• Design decisions
– fragment when necessary (MTU < Datagram)– try to avoid fragmentation at source host– re-fragmentation is possible – fragments are self-contained datagrams– delay reassembly until destination host– do not recover from lost fragments
![Page 23: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/23.jpg)
23CS 640
Example
H1 R1 R2 R3 H8
ETH IP(1460) FDDI IP (1460) PPP IP (512)
PPP IP(436)
PPP IP (512)
ETH IP (512)
ETH IP(436)
ETH IP (512)
Ident = x Offset = 0
Start of header
0
Rest of header
1460 data bytes
Ident = x Offset = 0
Start of header
1
Rest of header
512 data bytes
Ident = x Offset = 64
Start of header
1
Rest of header
512 data bytes
Ident = x Offset = 128
Start of header
0
Rest of header
436 data bytes
1960
ETH IP (500) FDDI IP (500)
PPP IP (500) FDDI IP (500)
![Page 24: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/24.jpg)
24CS 640
Network Layer - 2
Intra-domain RoutingInter-domain Routing
![Page 25: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/25.jpg)
25CS 640
Overview• Forwarding vs Routing
– forwarding: to select an output port based on destination address and routing table
– routing: process by which routing table is built• Network as a Graph
• Problem: Find lowest cost path between two nodes• Factors
– static: topology– dynamic: load
4
3
6
21
9
1
1D
A
FE
B
C
![Page 26: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/26.jpg)
26CS 640
Distance Vector• Each node maintains a set of triples
– (Destination, Cost, NextHop)
• Directly connected neighbors exchange updates– periodically (on the order of several seconds)– whenever table changes (called triggered update)
• Each update is a list of pairs:– (Destination, Cost)
• Update local table if receive a “better” route– smaller cost– came from next-hop
• Refresh existing routes; delete if they time out
![Page 27: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/27.jpg)
27CS 640
Example
Destination Cost NextHop A 1 A C 1 C D 2 C E 2 A F 2 A G 3 A
D
G
A
F
E
B
C
Routing table for B
![Page 28: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/28.jpg)
28CS 640
Routing Loops• Example 1
– F detects that link to G has failed– F sets distance to G to infinity and sends update t o A– A sets distance to G to infinity since it uses F to reach G– A receives periodic update from C with 2-hop path to G– A sets distance to G to 3 and sends update to F– F decides it can reach G in 4 hops via A
• Example 2– link from A to E fails– A advertises distance of infinity to E– B and C advertise a distance of 2 to E– B decides it can reach E in 3 hops; advertises this to A– A decides it can read E in 4 hops; advertises this to C– C decides that it can reach E in 5 hops…
![Page 29: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/29.jpg)
29CS 640
Loop-Breaking Heuristics
• Set infinity to 16
• Split horizon
• Split horizon with poison reverse
![Page 30: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/30.jpg)
30CS 640
Link State• Strategy
– send to all nodes (not just neighbors) information about directly connected links (not entire routing table)
• Link State Packet (LSP)– id of the node that created the LSP– cost of link to each directly connected neighbor– sequence number (SEQNO)– time-to-live (TTL) for this packet
![Page 31: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/31.jpg)
31CS 640
Link State (cont)
• Reliable flooding– store most recent LSP from each node– forward LSP to all nodes but one that sent it– generate new LSP periodically
• increment SEQNO– start SEQNO at 0 when reboot– decrement TTL of each stored LSP
• discard when TTL=0
![Page 32: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/32.jpg)
32CS 640
Route Calculation• Dijkstra’s shortest path algorithm• Let
– N denotes set of nodes in the graph– l (i, j) denotes non-negative cost (weight) for edge (i, j)– s denotes this node– M denotes the set of nodes incorporated so far– C(n) denotes cost of the path from s to node n
M = {s}for each n in N - {s}
C(n) = l(s, n)while (N != M)
M = M union {w} such that C(w) is the minimum for all w in (N - M)
for each n in (N - M)C(n) = MIN(C(n), C (w) + l(w, n ))
![Page 33: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/33.jpg)
33CS 640
Metrics • Original ARPANET metric
– measures number of packets queued on each link– took neither latency or bandwidth into consideration
• New ARPANET metric– stamp each incoming packet with its arrival time (AT)– record departure time (DT)– when link-level ACK arrives, compute
Delay = (DT - AT) + Transmit + Latency– if timeout, reset DT to departure time for retransmission – link cost = average delay over some time period
• Fine Tuning– compressed dynamic range– replaced Delay with link utilization
![Page 34: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/34.jpg)
34CS 640
Internet StructureRecent Past
NSFNET backboneStanford
BARRNETregional
BerkeleyPARC
NCAR
UA
UNM
Westnetregional
UNL KU
ISU
MidNetregional…
![Page 35: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/35.jpg)
35CS 640
Internet Structure
Today
Backbone service provider
Peeringpoint
Peeringpoint
Large corporation
Large corporation
Smallcorporation
“Consumer ” ISP
“Consumer” ISP
“Consumer” ISP
![Page 36: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/36.jpg)
36CS 640
Route Propagation• Know a smarter router
– hosts know local router– local routers know site routers– site routers know core router– core routers know everything
• Autonomous System (AS)– corresponds to an administrative domain– examples: University, company, backbone network– assign each AS a 16-bit number
• Two-level route propagation hierarchy– interior gateway protocol (each AS selects its own)– exterior gateway protocol (Internet-wide standard)
![Page 37: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/37.jpg)
37CS 640
Popular Interior Gateway Protocols
• RIP: Route Information Protocol– developed for XNS
– distributed with Unix
– distance-vector algorithm
– based on hop-count
• OSPF: Open Shortest Path First– recent Internet standard
– uses link-state algorithm
– supports load balancing
– supports authentication
![Page 38: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/38.jpg)
38CS 640
Lecture 6 and 7 (Feb 5 and 10, 2004)
OutlineExterior Gateway Protocol- Border Gateway Protocol – BGPv4
![Page 39: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/39.jpg)
39CS 640
EGP: Exterior Gateway Protocol• Overview
– designed for tree-structured Internet– concerned with reachability, not optimal routes
• Protocol messages– neighbor acquisition: one router requests that another be its peer;
peers exchange reachability information
– neighbor reachability: one router periodically tests if the another is still reachable; exchange HELLO/ACK messages; uses a k-out-of-n rule
– routing updates: peers periodically exchange their routing tables (distance-vector)
![Page 40: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/40.jpg)
40CS 640
BGP-4: Border Gateway Protocol• AS Types
– stub AS: has a single connection to one other AS• carries local traffic only
– multihomed AS: has connections to more than one AS• refuses to carry transit traffic
– transit AS: has connections to more than one AS• carries both transit and local traffic
• Each AS has:– one or more border routers– one BGP speaker that advertises:
• local networks• other reachable networks (transit AS only)• provides path information
![Page 41: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/41.jpg)
41CS 640
BGP Example• Speaker for AS2 advertises reachability to P and Q
– network 128.96, 192.4.153, 192.4.32, and 192.4.3, can be reached directly from AS2
• Speaker for backbone advertises– networks 128.96, 192.4.153, 192.4.32, and 192.4.3 can be reached
along the path (AS1, AS2).• Speaker can cancel previously advertised paths
Backbone network(AS 1)
Regional provider A(AS 2)
Regional provider B(AS 3)
Customer P(AS 4)
Customer Q(AS 5)
Customer R(AS 6)
Customer S(AS 7)
128.96192.4.153
192.4.32192.4.3
192.12.69
192.4.54192.4.23
![Page 42: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/42.jpg)
42CS 640
Charlotte
Portland
Providence
Newark
Cedar Knolls
Syracuse
Buffalo
White Plains
Rochester
Columbia
New Orleans
Nashville
Austin
Houston
TulsaOklahomaCity
Albuquerque
Phoenix
AnaheimAnaheim
Las Vegas
Salt LakeCity
ColoradoSprings
Milwaukee
Detroit
Columbus
Cincinnati
Seattle Spokane
Portland
Louisville
Little Rock
Jacksonville
Ft. Lauderdale
Miami
Raleigh
Richmond
DenverIndianapolis
Pittsburgh
Baltimore
Plymouth
Atlanta
Minneapolis
Gardena
Tampa
SanBernardino
Arlington
Ft. Worth
Rochelle Pk
Honolulu
Orlando
Sherman Oaks
Ojus
Hamilton SquareSilver
Springs
Wayne
Chicago
RollingMeadows
Omaha
St Louis
San Diego
Anchorage, AK
N X OC48
Backbone Node
Gateway Node
N X DS3N X OC3
Remote Access Router
R Remote GSR Access Router
N X OC12
NX OC192
Cambridge
Framingham
Stamford
Bridgeport
Grand Rapids Providence
GlenviewAlbany
Sacramento
Oakland
Redwood City
San Jose
San Francisco
ChicagoSan Francisco
Florissant
Davenport
Worcester
Madison
Camden, NJ
Norcross
New Brunswick
Birmingham
San Antonio
Oak Brook
South Bend
Dayton
Bohemia
Hartford
San Juan PR
W. Palm Beach
HarrisburgDes Moines
Memphis
Greensboro
Norfolk
R
KansasCity
AkronRR
R
Los Angeles
Dallas
Wash.DC
St. Paul
Freehold
R
Manchester
R
R
RFt.
Lauderdale
Dunwoody
Note: Connectivity and nodes shown are targeted for deployment; actual deployment
may vary. Maps should not be used to predict service availability.
R
R
R
Phil
NYC
Cleveland
R
RNYC-Bdwy
Birmingham
LA-Airport Blvd
AT&T IP BackboneYear end 2001
Rev. 6-4-01
![Page 43: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/43.jpg)
43CS 640
Sprint, USA
![Page 44: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/44.jpg)
44CS 640
WorldCom (UUNet)
![Page 45: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/45.jpg)
45CS 640
Telstra international
![Page 46: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/46.jpg)
46CS 640
(Winter '02)
(Winter '02)
(Summer '03)
UW-Superior
UW-StoutUW-River Falls
Fox Valley TC
UW-Oshkosh
UW-Milwaukee
UW-ParksideUW-Whitewater
UW-Madison
UW-Platteville
UW-La Crosse
UW-Eau Claire
UW-Stevens Point
UW-Green Bay
Marshfield
Rhinelander
Rice Lake
Clintonville
StilesJct.
Portage
Dodgeville
La Crosse
Genuity
OC-3 (155Mbps)
DS-3 (45Mbps)
T1 (1.5Mbps)
OC-12 (622Mbps)
(Summer '02)
Qwestand OtherProvider(s)
(Summ
er '02)
Internet 2& Qwest
Peering - Public and PrivateCommodity Internet TransitInternet2Merit and Other State NetworksNational Education NetworkRegional Research Peers
Wausau
Gigabit Ethernet
(Summer '02)
(Sum
mer '03)
Chicago - 1
Chicago - 2(Winter '02)
Chicago
wiscnet.net
![Page 47: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/47.jpg)
47CS 640
Partial View of cs.wisc.edu Neighborhood
AS 2381WiscNet
AS 209Qwest
AS 59 UW Academic Computing
128.105.0.0/16
AS 3549Global Crossing
AS 1Genuity
AS 3136 UW Madison
AS 7050 UW Milwaukee
129.89.0.0/16 130.47.0.0/16
![Page 48: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/48.jpg)
48CS 640
Customers and Providers
Customer pays provider for access to the Internet
provider
customer
IP trafficprovider customer
![Page 49: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/49.jpg)
49CS 640
The “Peering” Relationship
peer peer
customerprovider
Peers provide transit between their respective customers
Peers do not provide transit between peers
Peers (often) do not exchange $$$trafficallowed
traffic NOTallowed
![Page 50: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/50.jpg)
50CS 640
Examples of Peering
Peering also allows connectivity betweenthe customers of “Tier 1” providers. peer peer
customerprovider
![Page 51: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/51.jpg)
51CS 640
To Peer or Not to Peer?
• Reduces upstream transit costs
• Can increase end-to-end performance
• May be the only way to connect your customers to some part of the Internet (“Tier 1”)
• You would rather have customers
• Peers are usually your competition
• Peering relationships may require periodic renegotiation
Peering struggles are by far the most contentious issues in the ISP world!
Peering agreements are often confidential.
Peer Don’t Peer
![Page 52: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/52.jpg)
52CS 640
Autonomous Systems (ASes)
An autonomous system is an autonomous routing domainthat has been assigned an Autonomous System Number (ASN).
RFC 1930: Guidelines for creation, selection, and registration of an Autonomous System
… the administration of an AS appears to other ASes to have a single coherent interior routing plan and presents a consistent picture of what networks are reachable through it.
![Page 53: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/53.jpg)
53
BGP-4• BGP = Border Gateway Protocol
• Is a Policy-Based routing protocol
• Is the de facto EGP of today’s global Internet
• Relatively simple protocol, but configuration is complex and the
entire world can see, and be impacted by, your mistakes.
• 1989 : BGP-1 [RFC 1105]– Replacement for EGP (1984, RFC 904)
• 1990 : BGP-2 [RFC 1163]• 1991 : BGP-3 [RFC 1267]• 1995 : BGP-4 [RFC 1771]
– Support for Classless Interdomain Routing (CIDR)
![Page 54: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/54.jpg)
54
BGP Operations (Simplified)
Establish session on TCP port 179
Exchange all active routes
Exchange incremental updates
AS1
AS2
While connection is ALIVE exchangeroute UPDATE messages
BGP session
![Page 55: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/55.jpg)
55
Two Types of BGP Neighbor Relationships
• External Neighbor (eBGP) in a different Autonomous Systems
• Internal Neighbor (iBGP) in the same Autonomous System AS1
AS2
eBGP
iBGP
iBGP is routed (using IGP!)
![Page 56: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/56.jpg)
56
Four Types of BGP Messages
• Open : Establish a peering session.
• Keep Alive : Handshake at regular intervals.
• Notification : Shuts down a peering session.
• Update : Announcing new routes or withdrawing previously
announced routes.
announcement = prefix + attributes values
![Page 57: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/57.jpg)
57CS 640
BGP Attributes
Value Code Reference----- --------------------------------- --------- 1 ORIGIN [RFC1771] 2 AS_PATH [RFC1771] 3 NEXT_HOP [RFC1771] 4 MULTI_EXIT_DISC [RFC1771] 5 LOCAL_PREF [RFC1771] 6 ATOMIC_AGGREGATE [RFC1771] 7 AGGREGATOR [RFC1771] 8 COMMUNITY [RFC1997] 9 ORIGINATOR_ID [RFC2796] 10 CLUSTER_LIST [RFC2796] 11 DPA [Chen] 12 ADVERTISER [RFC1863] 13 RCID_PATH / CLUSTER_ID [RFC1863] 14 MP_REACH_NLRI [RFC2283] 15 MP_UNREACH_NLRI [RFC2283] 16 EXTENDED COMMUNITIES [Rosen] ... 255 reserved for development
From IANA: http://www.iana.org/assignments/bgp-parameters
Mostimportantattributes
Not all attributesneed to be present inevery announcement
![Page 58: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/58.jpg)
58CS 640
Attributes are Used to Select Best Routes
192.0.2.0/24pick me!
192.0.2.0/24pick me!
192.0.2.0/24pick me!
192.0.2.0/24pick me!
Given multipleroutes to the sameprefix, a BGP speakermust pick at mostone best route
(Note: it could reject them all!)
![Page 59: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/59.jpg)
59CS 640
Route Selection Summary
Highest Local Preference
Shortest ASPATH
Lowest MED
i-BGP < e-BGP
Lowest IGP cost to BGP egress
Lowest router ID
traffic engineering
Enforce relationships
Throw up hands andbreak ties
![Page 60: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/60.jpg)
60
BGP Route Processing
Best Route Selection
Apply Import Policies
Best Route Table
Apply Export Policies
Install forwardingEntries for bestRoutes.
ReceiveBGPUpdates
BestRoutes
TransmitBGP Updates
Apply Policy =filter routes & tweak attributes
Based onAttributeValues
IP Forwarding Table
Apply Policy =filter routes & tweak attributes
Open ended programming.Constrained only by vendor configuration language
![Page 61: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/61.jpg)
61
BGP Next Hop Attribute
Every time a route announcement crosses an AS boundary, the Next Hop attribute is changed to the IP address of the border router that announced the route.
AS 6431AT&T Research
135.207.0.0/16Next Hop = 12.125.133.90
AS 7018AT&T
AS 12654RIPE NCCRIS project
12.125.133.90
135.207.0.0/16Next Hop = 12.127.0.121
12.127.0.121
![Page 62: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/62.jpg)
62CS 640
Forwarding Table
Forwarding Table
Join EGP with IGP For Connectivity
AS 1 AS 2192.0.2.1
135.207.0.0/16
10.10.10.10
EGP
192.0.2.1135.207.0.0/16
destination next hop
10.10.10.10192.0.2.0/30
destination next hop
135.207.0.0/16Next Hop = 192.0.2.1
192.0.2.0/30
135.207.0.0/16
destination next hop
10.10.10.10
+
192.0.2.0/30 10.10.10.10
![Page 63: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/63.jpg)
63CS 640
Implementing Customer/Provider and Peer/Peer relationships
• Enforce transit relationships – Outbound route filtering
• Enforce order of route preference– provider < peer < customer
Two parts:
![Page 64: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/64.jpg)
64CS 640
Import Routes
From
peer
From
peer
Fromprovid
er
Fromprovid
er
From custom
er
From custom
er
provider route customer routepeer route ISP route
![Page 65: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/65.jpg)
65CS 640
Export Routes
Topee
r
Topee
r
Tocustomer
Tocustom
er
Toprovider
From provider
provider route customer routepeer route ISP route
filtersblock
![Page 66: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/66.jpg)
66
So Many Choices
Which route shouldFrank pick to 13.13.0.0./16?
AS 1
AS 2
AS 4
AS 3
13.13.0.0/16
Frank’s Internet Barn
peer peer
customerprovider
![Page 67: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/67.jpg)
67
LOCAL PREFERENCE
AS 1AS 2
AS 4
AS 3
13.13.0.0/16
local pref = 80
local pref = 100
local pref = 90
Higher Localpreference valuesare more preferred
![Page 68: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/68.jpg)
68
ASPATH Attribute
AS7018135.207.0.0/16AS Path = 6341
AS 1239Sprint
AS 1755Ebone
AT&T
AS 3549Global Crossing
135.207.0.0/16AS Path = 7018 6341
135.207.0.0/16AS Path = 3549 7018 6341
AS 6341
135.207.0.0/16
AT&T Research
Prefix Originated
AS 12654RIPE NCCRIS project
AS 1129Global Access
135.207.0.0/16AS Path = 7018 6341
135.207.0.0/16AS Path = 1239 7018 6341
135.207.0.0/16AS Path = 1755 1239 7018 6341
135.207.0.0/16AS Path = 1129 1755 1239 7018 6341
![Page 69: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/69.jpg)
69CS 640
In fairness: could you do this “right” and still scale?
Exporting internalstate would dramatically increase global instability and amount of routingstate
Shorter Doesn’t Always Mean Shorter
AS 4
AS 3
AS 2
AS 1
But BGP says that path 4 1 is better than path 3 2 1
![Page 70: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/70.jpg)
70
Interdomain Loop Prevention
BGP at AS YYY will never accept a route with ASPATH containing YYY.
AS 7018
12.22.0.0/16ASPATH = 1 333 7018 877
Don’t Accept!
AS 1
![Page 71: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/71.jpg)
71
Hot Potato Routing: Go for the Closest Egress Point
192.44.78.0/24
15 56 IGP distances
egress 1 egress 2
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!
![Page 72: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/72.jpg)
72
Sometimes hot potato is not enough
15 56
172865High bandwidth
Provider backbone
Low bandwidthcustomer backbone
Heavy Content Web Farm
Many customers want their provider to carry the bits!
tiny ftp requesthuge ftp reply
SFF NYC
San Diego
![Page 73: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/73.jpg)
73
Cold Potato Routing with MEDs(Multi-Exit Discriminator Attribute)
15 56
172865
Heavy Content Web Farm
192.44.78.0/24
192.44.78.0/24MED = 15
192.44.78.0/24MED = 56
This means that MEDs must be considered BEFOREIGP distance!
Prefer lower MED values
Note1 : some providers will not listen to MEDs Note2 : MEDs need not be tied to IGP distance
![Page 74: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/74.jpg)
74CS 640
Policies Can Interact Strangely(“Route Pinning” Example)
backup
Disaster strikes primary linkand the backup takes over
Primary link is restored but sometraffic remains pinned to backup
1 2
3 4
Install backup link
customer
![Page 75: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/75.jpg)
75CS 640
Network Layer - 3
ICMP
IPv6
Router architecture
Switching
IP switching, Tag switching
![Page 76: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/76.jpg)
76CS 640
IP Version 6• Features
– 128-bit addresses (classless)– multicast– real-time service– authentication and security – autoconfiguration – end-to-end fragmentation– protocol extensions
• Header– 40-byte “base” header– extension headers (fixed order, mostly fixed length)
• fragmentation• source routing• authentication and security• other options
![Page 77: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/77.jpg)
77CS 640
Internet Control Message Protocol (ICMP)
• Echo (ping)• Redirect (from router to source host)• Destination unreachable (protocol, port, or host)• TTL exceeded (so datagrams don’t cycle forever)• Checksum failed • Reassembly failed• Cannot fragment
![Page 78: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/78.jpg)
78CS 640
Workstation-Based• Aggregate bandwidth
– 1/2 of the I/O bus bandwidth – capacity shared among all hosts connected to switch– example: 1Gbps bus can support 5 x 100Mbps ports (in theory)
CPU
Main memory
I/O bus
Interface 1
Interface 2
Interface 3
• Packets-per-second – must be able to switch
small packets– 300,000 packets-per-
second is achievable– e.g., 64-byte packets
implies 155Mbps
![Page 79: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/79.jpg)
79CS 640
High-Speed IP Router• Switch (possibly ATM)• Line Cards
– link interface (input, output)– router lookup (input)– common IP path (input)– packet queue (output)
• Control Processor– routing protocol(s)– exceptional cases
Line card(forwarding buffering)
Line card(forwarding buffering)
Lin
e ca
rd(f
orw
ardi
ng
buff
erin
g)
Lin
e ca
rd(f
orw
ardi
ng
buff
erin
g)
RoutingCPU
Buffermemory
Routing softwarew/ router OS
![Page 80: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/80.jpg)
80CS 640
IP Forwarding is Slow
• Problem: classless IP addresses (CIDR)• Route by variable-length Forwarding Equivalence
Classes (FEC)– FEC = IP address plus prefix of 1-32 bits; e.g.,
172.200.0.0/16
• IP Router– forwarding tbl: <FEC> <next hop, port>– match IP address to FEC w/ longest prefix
![Page 81: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/81.jpg)
81CS 640
• Primary goal: fast, cheap forwarding • 1Gb/s IP router: $187,000• 5Gb/s ATM switch: $41,000• Create Virtual Circuit at Flow Setup
– <in VCI> <port, out VCI>
• Cell Forwarding– index, swap, switch
ATM Forwarding
![Page 82: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/82.jpg)
82CS 640
Cisco: Tag Switching
• Add a VCI-like tag to packets– <in tag> <next hop, port, out tag>
• TSR uses ATM switch hardware • IP routing protocols (OSPF, RIP, BGP)
– build forwarding table from routing table
• Goal: IP router functionality at ATM switch speeds/costs
![Page 83: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/83.jpg)
83CS 640
Forwarding
• Shim before IP header
• Tag Forwarding Information Base (TFIB)– <in tag> <next hop, port, out tag>
• Just like ATM– index, swap, switch
TTL (8 bits)CoS
STag (20 bits)
![Page 84: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/84.jpg)
84CS 640
Tag Binding
• New FEC from IP routing protocols– Select local tag (index in TFIB)– <in tag> <next hop, port, ???>
• Need <out tag> for next hop• Other routers need my <in tag>• Solution: distribute tags like other routing info
![Page 85: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/85.jpg)
85CS 640
Tag Distribution Protocol
• Send TDP messages to peers– <FEC, my tag>
• Upon receiving TDP message, check if sender is next hop for FEC– yes, save tag in TFIB– no, can discard or save for future use
• ‘Control-driven’ label assignment
![Page 86: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/86.jpg)
86CS 640
The First Tag
• Two kinds of routers: edge vs. interior
• Edge: add shim based on IP lookup, strip at exit• Interior: forward by tag only
E I I E
![Page 87: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/87.jpg)
87CS 640
Robustness Issues
• What if tag fault?– try to forward (default route)– discard packet
• Forwarding Loops– topology changes cause temporary loops– TTL field in tag, same as IP
![Page 88: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/88.jpg)
88CS 640
Ipsilon: IP Switching
• Run on ATM switch over ATM network– ATM hardware + IP switching software
• Idea: Exploit temporal locality of traffic to cache routing decisions
• Associate labels (VCI) with flows– forward packets as usual– main difference is in how labels are created, distributed
to other routers
![Page 89: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/89.jpg)
89CS 640
IP Switch
• Assume default ATM virtual circuits between routers
• Router runs IP routing protocol, can forward IP packets on default VCs
• Identify flows, assign flow-specific VC– flow = port pair or host pair
• ‘Data-driven’ label assignment
![Page 90: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/90.jpg)
90CS 640
Flow Setup on IP Switch
• <vci = x> <port c, vci = x’>• Get IFMP, <vci = x> <port j, vci = y>
ATM Switch
Controller
Port i Port j
vci = x vci = y
<flowID, vci = x, life> <flowID, vci = y, life>
Port cvci = x’
IFMP message IFMP message
![Page 91: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/91.jpg)
91CS 640
Comparison
• Switch by flow• Data driven• Soft-state timeout• Between end-hosts
• Every router can do IP lookup
• Scalable?
• Switch by FEC• Control driven• Route changes• Between edge TSRs
• Interior TSRs only do tag switching
IP Switching Tag Switching
![Page 92: Network Layer - 1pages.cs.wisc.edu/~suman/courses/640/lectures/routing-2.pdf · Network Layer - 2 Intra-domain Routing Inter-domain Routing. CS 640 25 Overview • Forwarding vs Routing](https://reader034.fdocuments.in/reader034/viewer/2022042416/5f3136cf074227538e773ee4/html5/thumbnails/92.jpg)
92CS 640
To do
• ICMP• RARP details photocopy• DHCP, VPN• Mobile IP• Multicast• Tag switching : switch vs route• Router details, input vs output queueing