Title: CS 5565 Network Architecture and Protocols
1CS 5565Network Architecture and Protocols
Lecture 20
2Announcements
- Project 2B due in 2 parts
- Apr 29 and May 6
- Extra Credit Opportunities
- Expand simulator (and your implementation) to
introduce multiple link failures and link
resurrection - Additional, requiring reading posted
- Andersen et al SIGCOMM08 Accountable Internet
Protocol (AIP) - Casado et al HotNets08 Rethinking Packet
Forwarding Hardware
3Project 2B
4Project 2B
Simulated link in topology
RPC Outbound/ Inbound over TCP
- High-level View
- Suppose node 2 calls inbound
- Simulator calls outbound to n3
write_msg(/port/2, data)
Sim
read_msg(/from/2, /port/1, data)
5Project 2B Under the hood
- Uses discrete event simulation
- Events are packet received, timer expired, cost
change, link failure - Virtual time
cost change on link connecting n2 and n3
n3 receives msg from n2 on port 1
timer on n2 expires,n2 calls write_msg(2,..)
6Routing Algorithms
7Roadmap
- Done
- Discussed forwarding vs routing
- Discussed theory behind two major routing
algorithms - Link-state routing
- Distance Vector routing
- Discuss theory behind hierarchical routing
- Discuss application in Internet
- IPv4 addressing
- Next
- Routing in the Internet
8Addressing in IP
223.1.1.2
223.1.1.1
223.1.1.4
- IP address interfaces, not hosts
- Sets of interfaces form subnets
- Subnets share common prefix
- Route to CIDR-ized subnet addresses
- a.b.c.d/x
- Within subnet, reach destination directly
223.1.1.3
223.1.7.1
223.1.9.2
223.1.9.1
223.1.7.2
223.1.8.2
223.1.8.1
223.1.2.6
223.1.3.27
223.1.2.1
223.1.2.2
223.1.3.2
223.1.3.1
9Internet
EthernetLAN 1 60 Machines
191.23.25.193
PPP Link 2
Subnet address 191.23.25.128/26 Default
gateway 191.23.25.129
191.23.25.192/30
191.23.25.197
191.23.25.194
191.23.25.129
PPP Link 1
191.23.25.196/30
EthernetLAN 2 120 Machines
191.23.25.198
191.23.25.1
Subnet address 191.23.25.0/25 Default
gateway 191.23.25.1
10Routing Tables in End Systems
- Typical local subnets default gateway
(first-hop router) - Example route print on Windows XP
- 128.173.55.90 FastEthernet
- 192.82.175.230 802.11g wireless
Active Routes Network Destination Netmask
Gateway Interface Metric
0.0.0.0 0.0.0.0 128.173.48.1
128.173.55.90 20 0.0.0.0
0.0.0.0 198.82.174.1 198.82.175.230
25 127.0.0.0 255.0.0.0
127.0.0.1 127.0.0.1 1
128.173.48.0 255.255.248.0 128.173.55.90
128.173.55.90 20 198.82.174.0
255.255.254.0 198.82.175.230 198.82.175.230
25 Default Gateway
128.173.48.1
11ICMP Internet Control Message Protocol
- used by hosts routers to communicate
network-level information - error reporting unreachable host, network, port,
protocol - echo request/reply (used by ping)
- network-layer above IP
- ICMP msgs carried in IP datagrams
- ICMP message type, code plus first 8 bytes of IP
datagram causing error
Type Code description 0 0 echo
reply (ping) 3 0 dest. network
unreachable 3 1 dest host
unreachable 3 2 dest protocol
unreachable 3 3 dest port
unreachable 3 6 dest network
unknown 3 7 dest host unknown 4
0 source quench (congestion
control - not used) 8 0
echo request (ping) 9 0 route
advertisement 10 0 router
discovery 11 0 TTL expired 12 0
bad IP header
12Traceroute and ICMP
- Source sends series of UDP segments to dest
- First has TTL 1
- Second has TTL2, etc.
- Unlikely port number
- When nth datagram arrives to nth router
- Router discards datagram
- And sends to source an ICMP message (type 11,
code 0) - Message includes name of router IP address
- When ICMP message arrives, source calculates RTT
- Traceroute does this 3 times
- Stopping criterion
- UDP segment eventually arrives at destination
host - Destination returns ICMP port unreachable
packet (type 3, code 3) - When source gets this ICMP, stops.
- See also Heideman 2008
13IP addresses how to get one?
- Host gets IP address either hardcoded or via DHCP
(Dynamic Host Configuration Protocol) - Network gets subnet part of IP address allocated
from ISPs address space - ISP gets address space assigned by ICANN
(Internet Corporation for Assigned Names and
Numbers)
ISP's block 11001000 00010111 00010000
00000000 200.23.16.0/20 Organization 0
11001000 00010111 00010000 00000000
200.23.16.0/23 Organization 1 11001000
00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100
00000000 200.23.20.0/23 ...
..
. . Organization 7
11001000 00010111 00011110 00000000
200.23.30.0/23
14Hierarchical Addressing Route Aggregation
Hierarchical addressing allows efficient
advertisement of routing information
Organization 0
Organization 1
Send me anything with addresses beginning
200.23.16.0/20
Organization 2
Fly-By-Night-ISP
Internet
Organization 7
Send me anything with addresses beginning
199.31.0.0/16
ISPs-R-Us
15Hierarchical Addressing More Specific Routes
ISPs-R-Us has a more specific route to
Organization 1
Organization 0
Send me anything with addresses beginning
200.23.16.0/20
Organization 2
Fly-By-Night-ISP
Internet
Organization 7
Send me anything with addresses beginning
199.31.0.0/16 or 200.23.18.0/23
ISPs-R-Us
Organization 1
16Intra-AS vs Inter-AS Routing
- In Internet
- Intra-AS known as Interior Gateway Protocols
(IGP) - Most common Intra-AS routing protocols
- RIP Routing Information Protocol (original
protocol, now rarely used) - OSPF Open Shortest Path First
- IGRP/EIGRP (Enhanced) Interior Gateway Routing
Protocol - Inter-AS known as Border Gateway Protocols
- BGP4 Only protocol used
17RIP (Routing Information Protocol)
- Distance vector algorithm
- Included in BSD-UNIX Distribution in 1982
- Distance metric of hops (max 15 hops)
- Distance vectors exchanged among neighbors every
30 sec via Response Message (also called
advertisement) - Each advertisement list of up to 25 destination
nets within AS
18RIP Example
z
w
x
y
A
D
B
C
Routing table in D
Destination Network Next Router Num.
of hops to dest. w A 2 y B 2
z B 7 x -- 1 . . ....
19RIP Example
Dest Next hops w - - x -
- z C 4 . ...
Advertisement from A to D
Routing table in D
Destination Network Next Router Num.
of hops to dest. w A 2 y B 2 z B
A 7 5 x -- 1 . . ....
20RIP Link Failure and Recovery
- If no advertisement heard after 180 sec ?
neighbor/link declared dead - routes via neighbor invalidated
- new advertisements sent to neighbors
- neighbors in turn send out new advertisements (if
tables changed) - poison reverse used to prevent ping-pong loops
(infinite distance 16 hops)
21RIP Table processing
- RIP routing tables managed by application-level
process called route-d (daemon) - advertisements sent in UDP packets, periodically
repeated
Transprt (UDP)
Transprt (UDP)
network forwarding (IP) table
network (IP)
forwarding table
link
link
physical
physical
22EIGRP
- Cisco proprietary
- See Cisco Whitepaper, Malhotra 2002
- Distance Vector Protocol with enhancements
- Explicit Signaling (HELLO packets)
- DUAL diffusing update algorithm
- feasible successor concept guarantees loop
freedom - Intuition rather than count to infinity, trigger
route recomputation unless another loop-free path
is known - Optimize this by keeping track of all advertised
routes, not just best one
23OSPF (Open Shortest Path First)
- open publicly available protocol (not
proprietary) - Uses Link State algorithm
- LS packet dissemination
- Topology map at each node
- Route computation using Dijkstras algorithm
- OSPF advertisement carries one entry per neighbor
router - Advertisements have age field to allow for
expiration - Advertisements disseminated to entire AS (via
flooding) - Carried in OSPF messages directly over IP (rather
than TCP or UDP)
24OSPF advanced features (not in RIP)
- Security all OSPF messages authenticated (to
prevent malicious intrusion) - Multiple same-cost paths allowed (only one path
in RIP) - For each link, multiple cost metrics for
different TOS (e.g., satellite link cost set
low for best effort high for real time) - Integrated uni- and multicast support
- Multicast OSPF (MOSPF) uses same topology data
base as OSPF - Hierarchical OSPF in large domains.
25Hierarchical OSPF
26Hierarchical OSPF
- Two-level hierarchy local area, backbone.
- link-state advertisements only in same area
- each nodes has detailed area topology only know
direction (shortest path) to nets in other areas. - Area border routers summarize distances to
nets in own area, advertise to other Area Border
routers. - Backbone routers run OSPF routing limited to
backbone. - Boundary routers connect to other ASs.
27Internet Inter-AS routing BGP
- BGP (Border Gateway Protocol) the de facto
standard - BGP provides each AS a means to
- Obtain subnet reachability information from
neighboring ASs. - Propagate the reachability information to all
routers internal to the AS. - Determine good routes to subnets based on
reachability information and policy. - Allows a subnet to advertise its existence to
rest of the Internet I am here
28BGP Basics
- Pairs of routers (BGP peers) exchange routing
info over semi-permanent TCP conctns BGP
sessions - Note that BGP sessions do not always correspond
to physical links. - When AS2 advertises a prefix to AS1, AS2 is
promising it will forward any datagrams destined
to that prefix towards the prefix. - AS2 can aggregate prefixes in its advertisement
29Distributing Reachability Info
- With eBGP session between 3a and 1c, AS3 sends
prefix reachability info to AS1. - 1c can then use iBGP do distribute this new
prefix reach info to all routers in AS1 - 1b can then re-advertise the new reach info to
AS2 over the 1b-to-2a eBGP session - When router learns about a new prefix, it creates
an entry for the prefix in its forwarding table.
30Path Attributes BGP Routes
- When advertising a prefix, advert includes BGP
attributes. - prefix attributes route
- Two important attributes
- AS-PATH contains the ASs through which the
advert for the prefix passed AS 67 AS 17 - NEXT-HOP Indicates the specific internal-AS
router to next-hop AS. (There may be multiple
links from current AS to next-hop-AS.) - When gateway router receives route advert, uses
import policy to accept/decline.
31BGP Route Selection
- Router may learn about more than 1 route to some
prefix. Router must select route. - Elimination rules
- Local preference value attribute policy decision
- Shortest AS-PATH (like DV routing, except with
more information!) - Closest NEXT-HOP router hot potato routing
- Additional criteria
32Path Vector Routing in BGP
- Accomplished via AS-PATH attributes
- Each node is entire AS!
33BGP Messages
- BGP messages exchanged using TCP.
- BGP messages
- OPEN opens TCP connection to peer and
authenticates sender - UPDATE advertises new path (or withdraws old)
- KEEPALIVE keeps connection alive in absence of
UPDATES also ACKs OPEN request - NOTIFICATION reports errors in previous msg
also used to close connection
34BGP routing policy
- A,B,C are provider networks
- X,W,Y are customer (of provider networks)
- X is dual-homed attached to two networks
- X does not want to route from B via X to C
- .. so X will not advertise to B a route to C
35BGP routing policy (2)
- A advertises to B the path AW
- B advertises to X the path BAW
- Should B advertise to C the path BAW?
- No way! B gets no revenue for routing CBAW
since neither W nor C are Bs customers - B wants to force C to route to w via A
- B wants to route only to/from its customers!
36Relationship between OSPFBGP
- OSPF hierarchyis intra-AS
- BGP connectsASs
37Motivation for different Intra/Inter Protocols
- Policy
- Inter-AS admin wants control over how its
traffic routed, who routes through its net. - Intra-AS single admin, so no policy decisions
needed - Scale
- hierarchical routing saves table size, reduced
update traffic - Performance
- Intra-AS can focus on performance
- Inter-AS policy may dominate over performance
38Usage of Routing Protocols
EBGP Sessions IGP IGP IGP IGP
EBGP Sessions OSPF EIGRP RIP Total
Intra- 1,490 9,624 12,741 156 22,521
Inter- 13,830 1,161 1,342 161 2,664
- Sample obtained by reverse-engineering router
config files - Source David Maltz et al
- Routing Design in Operational Networks A Look
from the inside, SIGCOMM 2004
39Summary
- IP
- Addressing, subnets
- ICMP
- RIP
- OSPF
- BGP