Dynamic Routing and OSPF (part 1)
IP routing ❚ Each router or host makes its own routing decisions ❚ Sending machine does not have to determine the entire path to the destination ❚ Sending machine just determines the nexthop along the path. ❙ This process is repeated until the destination is reached
❚ Forwarding table consulted to determine the next-hop
IP routing ❚ Classless routing ❙ route entries include ❘ destination ❘ next-hop ❘ mask (prefix-length) indicating size of address space described by the entry
❚ Longest match ❙ for a given destination, find longest prefix match in the routing table ❙ example: destination is 35.35.0.0/19 ❘ routing table entries are 35.0.0.0/8 and 35.35.0.0/16
IP routing ❚ Default route ❙ where to send packets if don’t have an entry for the destination in the routing table ❙ most machines have a single default route ❙ often referred to as a default gateway
Static routing ❚ each router manually configured with a list of destinations and the next hop to reach those destinations ❚ ideal for small number of destinations or “stub” networks ❙ stub network - network with only one or two paths to the rest of the network
Dynamic Routing ❚ routers compute routing tables dynamically based on information provided by other routers in the network ❚ routers communicate topology to each other via different protocols ❚ routers then compute one or more next hops for each destination - trying to calculate the most optimal path
Static and Dynamic Routing ❚ Static routing is a simplistic approach ❚ Shortcomings: ❙ Cumbersome to configure ❙ Cannot adapt to link/node failures, addition of new nodes and links ❙ Doesn't scale to large networks
❚ Solution: Dynamic Routing
Desirable Characteristics
❚ Automatically detect and adapt to network topology changes ❚ Optimal routing ❚ Scalability ❚ Robustness ❚ Simplicity ❚ Speed of convergence ❚ Some control of routing choices (e.g. which links we prefer to use)
Convergence - Why do I care? ❚ Convergence is when all the routers have the same routing information ❚ When a network is not converged, there is network downtime ❙ Packets don't get to where they are supposed to be going: routing loops, black holes ❙ Occurs when there is a change in the status of a router or link
Dynamic Protocols ❚ Metrics can be calculated based on a single characteristic of a path or by combining multiple characteristics ❚ Metrics commonly used: ❙ Bandwidth ❙ Hop count ❙ Cost ❘ administratively defined metrics
OSPF magic exercise ❚ delete your static routes ❙ config t ❙ no ip route x.x.x.x y.y.y.y z.z.z.z
❚ enter the following: ❙ router ospf 1 ❙ network x.x.x.x 0.0.0.0 area 0 ❙ x.x.x.x = ip address of your backbone interface ❙ redistribute connected subnets
OSPF magic exercise ❚ Verify connectivity to all PCs in the network ❚ Do not save your config
Dynamic Routing Protocols and OSPF (part 2)
Types of Routing Protocols ❚ EGP ❙ Exterior Gateway Protocol ❙ Example: BGP
❚ IGP ❙ Interior Gateway Protocol ❙ Example: OSPF, RIP
Types of Routing Protocols ❚ Link-state ❚ Distance-vector
IGP ❙ Used within a single Autonomous System (AS) ❙ Within a single network
Other Interior Gateway Protocols (IGPs) ❚ RIP ❙ Lots of scaling problems ❙ RIPv1 is classful and officially obsolete ❙ RIPv2 is classless
❚ EIGRP ❙ Proprietry (Cisco only)
❚ IS/IS ❙ The forerunner of OSPF ❙ Multiprotocol (OSPF is IP only)
Distance Vector Protocols ❚ ❚ ❚ ❚ ❚ ❚
Listen to neighboring routes Install all routes in a table Advertise all routes in table Very simple Very Stupid example: RIP
RIP ❚ ❚ ❚ ❚
routing information protocol distance-vector algorithm cost is hop count broadcast information to all neighbors every 30 seconds
RIP A
B
D
E
ROUTING TABLE for A A B 1 C 2 D 3 E 2
C
❚ ❚ ❚ ❚ ❚ ❚
Why not use RIP?
Distance Vector algorithm Broadcasts everything (not scalable) Metric is hop-count only Infinity of 16 (not large enough) Slow convergence (routing loops) Poor robustness
OSP F ❚ Open Shortest Path First ❚ Dynamic IGP (Interior Gateway Protocol) ❙ Use within your own network
❚ Link state algorithm
Shortest Path First Metric: Link Cost
A 4
C
3
15
7
B 4
D
Link State Algorithm
❚ Each router maintains a database containing map of the whole topology ❙ Links ❙ State (including cost)
❚ All routers have the same information ❚ All routers calculate the best path to every destination
Link State Algorithm (con) ❚ Any link state changes are flooded across the network ❚ "Global spread of local knowledge”
Link State vs. Distance vector ❚ Distance Vector ❙ views net topology from neighbor’s perspective ❙ adds distance vectors from route to router ❙ frequent, periodic updates; slow convergence ❙ passes copies of routing table to neighbor routers
Link State vs. Distance vector ❚ Link-State ❙ gets common view of entire network topology ❙ calculates the shortest path to other routers ❙ event-triggered updates; faster convergence ❙ passes link-state routing updates to other routers
Distance Vector and Link State Protocols ❚ Distance vector routers compute the best path from information passed to them from neighbors ❚ Link State routers each have a copy of the entire network map ❚ Link State routers compute best routes from this local map
Note: Routing is not the same as Forwarding ❚ Forwarding: passing packets along to the next hop ❙ There is only one forwarding table ❙ Just has prefix and next-hop info
❚ Routing: populating the forwarding table ❙ You might have multiple routing databases - e.g. both OSPF and BGP ❙ Routing databases have more information
Routing and Forwarding BGP
OSPF
Static
Forwarding Table
On Cisco, if the same prefix is received from multiple protocols, the "administrative distance" is used to choose
OSPF ❚ ❚ ❚ ❚
open shortest path first dynamic IGP not distance vector Link-State algorithm
OSPF: How it works (1) ❚ "Hello" packets sent periodically on all OSPF-enabled interfaces ❙ become "neighbors" ❙ establishes that link can carry data ❙ used to determine if neighbor is up
❚ Adjacencies (virtual point-to-point links) formed between some neighbors
How it works (2) ❚ Once an adjacency is established, trade information with your neighbor ❚ Topology information is packaged in a "link state announcement" ❚ Announcements are sent ONCE, and only updated if there's a change (or every 30 minutes)
How it works (3) ❚ Each router sends Link State Announcements (LSAs) over all adjacencies ❙ LSAs describe router's links, interfaces and state
❚ Each router receives LSAs, adds them into its database, and passes the information along to its neighbors
How it works (4) ❚ Each router builds identical link-state database ❚ Runs SPF algorithm on the database to build SPF tree ❚ Forwarding table built from SPF tree
How it works (5) ❚ When change occurs: ❙ Broadcast change ❙ All routers run SPF algorithm ❙ Install output into forwarding table
HELL O ❚ ❚ ❚ ❚
Broadcast* HELLO on network segment Receive ACK Establishes 2-way communication Repeat periodically ❙ Default: HELLO sent every 10 seconds ❙ Default: if no HELLO heard for 40 seconds, link is assumed to be dead
❚ Now establish adjacencies
tually uses Multicast addresses (224.0.0.9, 224.0.0.10) so non-OSPF devices can ignore the packets
The HELLO packet HELLO
HELLO
❙ ❙ ❙ ❙ ❙
Router priority Hello interval Router dead interval Network mask List of neighbors
HELLO
These must match
Neighbo rs ❚ Bi-directional communication ❚ Result of OSPF hello packets ❚ Need not exchange routing information
Who is adjacent? ❚ "Adjacent" neighbors exchange routing information ❚ Not all neighbors are adjacent ❚ On a point-to-point link ❙ everyone
❚ On broadcast medium ❙ not everyone ❙ why?
Broadcast neighbors
Order of N^2 adjacencies
A
B
C
D
Broadcast medium ❚ ❚ ❚ ❚ ❚
Select a neighbor: Designated Router (DR) All routers become adjacent to DR Exchange routing information with the DR DR updates all the other neighbors Scales ❙ Adjacencies reduced from N^2 to 2N
❚ Backup Designated Router (BDR)
LSAs propagate along adjacencies
DR
BDR
Other nice features of OSPF (optional) ❚ Authentication ❚ Equal-cost multipath ❙ more than one "best" path - share traffic
❚ Proper classless support (CIDR) ❚ Multiple areas ❙ ❙ ❙ ❙ ❙
For very large networks (>150 routers) Aggregate routes across area boundaries Keep route flaps within an area Proper use of areas reduce bandwidth and CPU utilisation Backbone is Area 0
Cisco OSPF commands and configuration ❚ show ip route ❚ show ip ospf neighbor ❚ show ip ospf database
Configuring OSPF ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚
router ospf <process-id> network x.x.x.x m.m.m.m area <area-id> m.m.m.m = wildcard mask 0 = don’t care bit 1 = check bit 0.0.0.0 mask for exact match network 203.167.177.10 0.0.0.0 area 0 network 203.167.177.0 0.0.0.255 area 0
Classroom Layout HUB
A PC
HUB
Router
PC
HUB
Router
PC
HUB
Router
PC
HUB
Router
PC
H PC
Router
HUB
HUB
I
F PC
Router
HUB
G
D PC
Router
HUB
E
PC
Router
HUB
C
B
Router
Router
SWITCH
J PC
Serial Links for exercise A
B 133.27.162.96/28
133.27.162.112/28
133.27.162.48/30
C 133.27.162.128/28
E 133.27.162.160/28
133.27.162.52/30
G 133.27.162.192/28
133.27.162.16/28
133.27.162.60/30
D 133.27.162.144/28
F 133.27.162.176/28
133.27.162.64/30
H 133.27.162.208/28
I
J 133.27.162.224/28
133.27.162.240/28
133.27.162.56/30