Distributed computation Broadcast link information to all routers Each router computes shortest paths to all destinations based on knowledge of full topology Uses Dijkstras algorithm to compute the paths ID: 673394
Download Presentation The PPT/PDF document "Link State Algorithm Alternative to dist..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Link State Algorithm
Alternative to distance-vector
Distributed computation
Broadcast link information to all routers
Each router computes shortest paths to all destinations based on knowledge of full topology
Uses Dijkstra’s algorithm to compute the paths
Avoids problem where one router can damage the entire internet by passing incorrect information as all routers have knowledge of full topology
Most common implementation: Open Shortest Path First (OSPF)Slide2
Link State Update
All routers know the network topology by sharing their local link information with
all
other routers.
Think of routers as nodes in a graph, and the networks connecting them as edges or links
Pairs of directly-connected routers periodically
Test link between them
Broadcast status of link to
all
other routers
All routers
Receive link status messages from
all
routers
Compute
routes based on
their
local database
of link informationSlide3
Open Shortest Path First (OSPF)
Uses Link State routing
Each router acquires complete topology information using
link state updates
Link-state - what it means:
Link
: That’s the interface of a router.
State
: Description of that interface and how it’s connected to neighboring routers.
Link state information must be flooded to all routers (uses multicasting)
Cost metric used to calculate shortest paths. Metric can be any link or network parameter (time, congestion, bandwidth, $$, distance) or a function that combines several weighted parameters
Guaranteed to convergeSlide4
4
Link State Routing: Basic principles
Routers establish a relationship
(
“
adjacency
”
)
with neighbors. Two types:
full neighbors: allows exchange of routing information
2way neighbor: no routing information exchange
2. Each router generates
link state advertisements
(LSAs)
which are distributed to all “
adjacent
” routers (after all routers have established adjacencies).
LSA = (link id, state of the link, cost, neighbors of the link)
3. Each router maintains a database (LSDB) of all received LSAs (
topological database
or
link state database
), which describes the network as a graph with weighted edges
4. Each router uses its link state database to run a shortest path algorithm (
Dijikstra
’
s algorithm) to produce the shortest path to each networkSlide5
5
Operation of a Link State Routing protocol
Received
LSAs
IP Routing
Table
Dijkstra
’
s
Algorithm
Link State
Database
LSAs are flooded
to other interfacesSlide6
6
Features of OSPF
Provides
authentication
of routing messages
Enables
load balancing
by allowing traffic to be split evenly across routes with
equal
cost
Type-of-Service routing allows setup of different routes dependent on the TOS (DS) field in IP headerUses AREAs to subdivide large networks, providing a hierarchical structure and limits the multicast LSAs within routers of the same area. Area 0 is called the backbone area and all other areas connect directly to it. All OSPF networks must have a backbone areaSlide7
OSPF Areas
Area Border Routers (ABR) are any routers that have one interface in one area and another interface in another areaSlide8
Link State Advertisements (LSA)
LSAs are at the heart of OSPF operation
OSPF routers use LSAs to describe the link state of all its interfaces.
A Link State
DataBase
(LSDB) stores all received LSAs on a router.
A router uses a Router LSA to describe its interface IP addresses.After OSPF is started on a router, it creates an LSDB that contains entries of this router’s Router LSAsSlide9
OSPF Operation contd.
Link-state routing protocols generate routing updates
only
when a
change
occurs in the network topology.
When a link changes state, the device that detected the change creates a link-state advertisement (LSA) concerning that link and sends it to all neighboring devices using a special multicast address. Each routing device reads the LSA.The LSA has a sequence number that allows the router to check to see if it has already seen that update. If old, it is discarded, if new, link-state database (LSDB) info updated and LSA passed along to next neighbors.The entire routing table (LSDB) is transmitted once every 30 minutesSlide10
Types of OSPF Messages
There are
five
types of OSPF Link-State Packets (LSPs).
Hello
: are used to establish and maintain adjacency with other OSPF routers. They are also used to elect the Designated Router (DR) and
BackupDesignated Router (BDR) on multi-access networks.Database Description (DBD or DD): contains an abbreviated list of the sending router’s link-state database and is used by receiving routers to check against the local link-state database to make sure it has the latest informationSlide11
LSPs contd.
Link-State Request (LSR)
: used by routers to
request
more information about any entry in the DBD
Link-State Update (LSU)
: used to reply to LSRs as well as to announce new information. LSUs can contain 7 different types of Link-State Advertisements (LSAs)Link-State Acknowledgement (LSAck): sent to confirm receipt of an LSU messageSlide12
OSPF Operation
HELLO messages are used to maintain adjacency with neighbors.
By default, OSPF routers send Hello packets every 10 seconds on broadcast networks and every 30 seconds on non-broadcast segmentsSlide13
13
OSPF Packet Format
Destination IP:
neighbor
’
s IP address or 224.0.0.5 (
ALLSPFRouters
) or 224.0.0.6 (
AllDRouters
:
(
designated
and backup designated
only)
TTL: set to 1 (in most cases)
OSPF packets are not carried as UDP or TCP payload!OSPF has its own IP protocol number: 89Slide14
14
OSPF Packet Format
2: current version is OSPF V2
Message types:
1: Hello (tests reachability)
2: Database description
3: Link Status request
4: Link state update
5: Link state acknowledgement
ID of the Area from which the packet originated
Standard IP checksum taken over entire packet
0: no authentication
1: Cleartext password
2: MD5 checksum
(added to end packet)
ID AddressSlide15
OSPF Hello MessageSlide16
OSPF Operation via an Example
Suppose OSPF has just been enabled on R1 & R2. Both R1 and R2 are very eager to discover if they have any neighbors nearby but before sending Hello messages they must first choose an OSPF router identifier (router-id) to tell their neighbors who they are. The Router ID (RID) is an IP address used to identify the router and is chosen using the following sequence:
The highest IP address assigned to a loopback (logical) interface.
If a loopback interface is not defined, the highest IP address of all the active router’s physical interfaces will be chosen.
The router ID can be manually assigned if necessarySlide17
Example contd.
In this example, suppose R1 has 2 loopback interfaces & 2 physical interfaces:
Loopback 0: 10.0.0.1
Loopback 1: 12.0.0.1
eth0/0: 192.168.1.1
eth0/1: 200.200.200.1
The loopback interfaces are preferred to physical interfaces (because they are never down) so the highest IP address of the loopback interfaces is chosen as the router-id -> Loopback 1 IP address is chosen as the router-id.Slide18
Router 1Slide19
Router 2Slide20
Next Step – Hello
Msgs
Now both the routers have the Router-ID so they will send Hello packets on all OSPF-enabled interfaces to determine if there are any neighbors on those links.
The information in the OSPF Hello includes the OSPF Router ID of the router sending the Hello packet.Slide21
Hello Packet ExchangeSlide22
Hello Packet Content
* Indicates values that have to be the same for both routers if they are
to establish an adjacency, i.e., become neighborsSlide23
Description of Hello Values
Router ID
: Each OSPF router needs to have an unique ID which is the highest IP
address on any active interface. More about this later.
Hello / Dead Interval
: Every X seconds we are going to send a hello packet, if we don’t hear any hello packets from our network for X seconds we declare you “dead” and we are no longer neighbors. These values have to match on both sides in order to become neighbors.
Neighbors: All other routers who are your neighbors are specified in the hello packet.Area ID: This is the area you are in. This value has to match on both sides in order to become neighbors.Router Priority: This value is used to determine who will become designated or backup designated router. DR and BDR IP address: Designated and Backup Designated router for multiple access networks such as an Ethernet segment. Authentication password: You can use clear text and MD5 authentication for OSPF which means every packet will be authenticated. Obviously you need the same password on both routers in order to make things work.Stub area flag: Besides area numbers OSPF has different area types. Both routers have to agree on the area type in order to become “neighbors”.Slide24
24
Discovery of Neighbors
Routers multicast
OSPF
Hello packets
on all OSPF-enabled interfaces.
If two routers share a link,
they can become
neighbors, and establish an adjacency.
Certain conditions have to be met.
In broadcast environments, adjacency is only established with Designated and
BackupDesignated Routers.After becoming a neighbor, routers exchange their link state databasesSlide25
States of Establishing Adjacency
Init
state
– router has received Hello message from other OSFP router
2-way state
– neighbor has received Hello message and replied with a Hello message of his own
Exstart state – beginning of the LSDB exchange between both routers.Exchange state – DBD (Database Descriptor) packets are exchanged. DBDs contain LSAs headers. Routers see what LSAs they need.Loading state – one neighbor starts by sending LSRs (Link State Requests) for every network it doesn't know about. The other neighbor replies with the LSUs (Link State Updates) which contain information about requested links. After all the requested information has been received, the other neighbor goes through the same processFull state (adjacency) - both routers have the synchronized database and are fully adjacent with each other. Slide26
Hello
Msg
R1 to R2
R1 just comes up and R2 is already up and running.
R1 wants to find out if it has any neighbor running OSPF it sends a Hello message to the multicast address 224.0.0.5.
This is the multicast address for all OSPF routers and all routers running OSPF will process this message.Slide27
Establishing adjacency
If an OSPF router receives an OSPF Hello packet it will check some required parameters to determine if adjacency can be established. If all is in order:
R2 will add R1 to its neighbor table and send a Hello packet to R1Slide28
Hello Msg
Adjacency ParametersSlide29
Exchange DD or DBD packets
R1 and R2 are neighbors now
The neighbors must first determine who will be the master and who will be the slave. The router with higher Router-ID becomes master and initiates the link exchange.
They start by sending Database Description (DD or DBD) packets which contain an abbreviated list of the sending router’s link-state database
The receiver acknowledges a received DD packet by sending an identical DD packet back to the sender.
Each DD packet has a sequence number and only the master can increment sequence numbers.Slide30
DD
Msg
ExchangeSlide31
LSA Request
R1 or R2 can send Request to get missing LSA from its neighborsSlide32
LSA Exchange
R2 sends back an
LSAck
packet to acknowledge the packetSlide33
Creating LSDBs
Note that routers first exchange
DD
msgs
that only list the content of the LSDB but no details.
Once a router gets that info, it can then check to see if it has that information in its LSDB.If it doesn’t it requests an LSA to fill in the details.Reliable transmission: when a router receives an Update, it sends an Ack to the Update sender. If the sender does not receive Ack within a specific period, it times out and retransmits Update.OSPF uses Update-Ack to implement reliable transmission. It does not use TCP!Slide34
34
Routing Data Distribution
LSA-Updates are distributed to all other routers via
Reliable Flooding using multicast addresses.
Example:
Flooding of LSA from 10.10.10.1
LSA
LSA
Update
database
Update
database
ACK
ACK
LSA
LSA
LSA
LSA
ACK
ACK
ACK
ACK
LSA
LSA
LSA
LSA
Update
database
Update
database
ACK
ACK
ACK
ACK
ACK
ACK
ACK
Update
databaseSlide35
35
Dissemination of LSA-Update
A router sends and re-floods LSA-Updates, whenever the topology or link cost changes. (If a received LSA does not contain new information, the router will not flood the packet)
Exception: Infrequently (every 30 minutes), a router will flood LSAs even if there are no new updates.
Acknowledgements of LSA-updates:
explicit ACK, or
implicit via reception of an LSA-Update from neighbor.Slide36
Filling the LSDBSlide37
Flow Chart
In this example a new LSA is arriving at the router and OSPF has to decide what to do with it:
If the LSA isn’t already in the LSDB it will be added and a
LSAck
(acknowledgement) will be sent to the OSPF neighbor. The LSA will be flooded to all other OSPF neighbors and we have to run SPF to update our routing table.
If the LSA is already in the LSDB and the sequence number is the same then we will ignore the LSA.
If the LSA is already in the LSDB and the sequence number is different then we have to take action: If the sequence number is higher it means this information is newer and we have to add it to our LSDB. If the sequence number is lower it means our OSPF neighbor has an old LSA and we should help them. We will send a LSU (Link state update) including the newer LSA to our OSPF neighbor. The LSU is an envelope that can carry multiple LSAs in it.Slide38
LSA Sequence Numbers
What do the sequence numbers look like for OSPF LSAs?
There are 4 bytes or 32-bits.
Begins with 0x80000001 and ends at 0x7FFFFFFF and wraps around
Every 30 minutes each LSA will age out and will be flooded with a sequence number that is incremented by one.Slide39
Broadcast Environments - Designated & Backup Designated RoutersSlide40
Broadcast Environments - Designated and Backup Designated Router
To minimize OSPF traffic (LSAs) on broadcast networks, OSPF elects a Designated Router (
DR
) and a Backup DR (
BDR
)
How do we select a DR/BDR? During the process of becoming OSPF neighbors:The router with the highest priority will become DR.The router with the second highest priority will become BDR.If the priority is the same the OSPF router ID is the tiebreaker. Higher wins.DR/BDR election is non-preemptive. This means if you change the priority or router ID you have to reset OSPF in order to select a new DR/BDR.Routers that are not DR or BDR show up as DROTHER.Only DR and BDR have adjacencies (full neighbor) with all routers on the broadcast segment. Other routers are two-way neighbors. If a non designated router has an update, the LSA is sent to the DR and BDR using the 224.0.0.6 address. The LSA is then sent by the DR to all the routers on the broadcast segment using multicast address 224.0.0.5
. Slide41
Router Status
And router Susan (the BDR) sees the DR and DROTHER
.
Two-way neighbor state
Full neighbor stateSlide42
Choosing DR and BDR
We can change which router becomes the DR/BDR by playing with the
priority
.
You change the priority if you like by using the
ip
ospf priority command:The default priority is 1.A priority of 0 means you will never be elected as DR or BDR.You need to use clear ip ospf process before this change takes effect.Let’s turn router Nancy into the DR:Slide43
Donna is still the DR, we need to reset the OSPF neighbor adjacencies so that we’ll elect the new DR and BDR.
Susan is now
Drother
anc
Donna is
ghd BDRNancy is now DRSlide44
By Multiple Access not By Area
Something you need to be aware of is that the
DR/BDR election is per multi-access segment…not per area!
Here we have 2 multi-access (broadcast) segments. Between router Donna and Nancy, and between router Donna and Susan.
For each segment there
will be a DR/BDR election.
You can see that router Nancy is the DR for the 192.168.12.0/24segment and router Susan is theDR for the 192.168.23.0/24 segment.Slide45
Point to Point Links
For a point-to-point link running say HDLC. You can see that we have a neighbor but we didn’t do an election for DR or BDR. Makes sense because there is always only one router on the other side.
192.168.12.0
.1
.2Slide46
Link Cost and Path Choice
What about the link metric? OSPF uses a metric called cost which is based on the bandwidth of an interface, it works like this:
Cost = Reference Bandwidth / Interface Bandwidth
The reference bandwidth is a default value on Cisco routers which is a 100Mbit interface.
You divide the reference bandwidth by the bandwidth of the interface and you’ll get the cost.
Example: If you have a 100 Mbit interface what will the cost be?
Cost = Reference bandwidth / Interface bandwidth100 Mbit / 100 Mbit = COST 1Example: If you have a 10 Mbit interface what will the cost be?100 Mbit / 10 Mbit = COST 10Example: If you have a 1 Mbit interface what will the cost be? 100 Mbit / 1 Mbit = COST 100The lower the cost the better the path is -> minimize route costIf we have links that are > 100M (e.g. 1G) the reference bandwidth is changed to always have a link cost that is >1Slide47
OSPF LSA Types
OSPF has many different types of LSAs:
LSA Type 1: Router LSA
LSA Type 2: Network LSA
LSA Type 3: Summary LSA
LSA Type 4: Summary ASBR LSA
LSA Type 5: Autonomous system external LSALSA Type 6: Multicast OSPF LSA (NOT USED)LSA Type 7: Not-so-stubby area LSALSA Type 8: External attribute LSA for BGPSlide48
Router LSA
Each router within the area will flood a
type 1 router LSA
within the area.
In this LSA you will find a list with all the directly connected links of this router.
The router LSA will always
stay within the area.Slide49
Network LSA
The
network LSA
or
type 2
is created for
multi-access network that have a DR/BDR. If this is the case you will see these network LSAs being generated by the DR.The other routers in the segment generate a type 1 LSA to inform the DR of an update.In the type 2 LSA we will find all the routers that are connected to the multi-access network, the DR, BDR, and the prefix and subnet mask.The network LSA always stays within the area.Slide50
Multi Area LSAs
Type 1 router LSAs
always stay within the area
. OSPF however works with multiple areas and you probably want full connectivity within all of the areas. Router Nancy is flooding a router LSA within the area so Area Border Router (ABR) Donna will store this in her LSDB.
Router Mary and Susan need to know about the topology in Area 2.
Router Donna is going to create a Type 3 summary LSA and flood it into area 0. This LSA will flood into all the other areas of our OSPF network. This way all the routers in other areas will know about the prefixes from other areas.Slide51
An outside RIP Router
In this example we have router Nancy who is redistributing information from the RIP router into OSPF. This makes router Nancy an
ASBR (Autonomous System Border Router).
Router Nancy will flip a bit in her
router LSA
to identify herself as an ASBR.
When router Donna who is a ABR receives this router LSA she will create a type 4 summary ASBR LSA and flood it into area 0. This LSA will also be flooded in all other areas and is required so all OSPF routers know where to find the ASBR.Slide52
Outside Network
Same topology but we’ve added a prefix (5.5.5.0 /24) at our RIP router. This prefix will be redistributed into OSPF.
Router Nancy (our ASBR) will take care of this and create a
type 5 external LSA
for this that will contain the external network prefix
. Slide53
OSPF Tables
There are 3 type of tables stored at a Router:
Neighbor
Topology
RoutingSlide54
Neighbor Table
Contain information about the neighbors
Neighbor is a router which shares a link on same network
Some neighbor relationships are “adjacencies”
LSA updates are exchanged only when adjacency is establishedSlide55
OSPF Topology Table
Contains information about all networks and paths to reach any network
All LSA’s are entered into the topology table
When topology changes, LSA’s are generated and router sends new LSA’s
Using the topology table a shortest path connectivity graph is created (routing table), the algorithm is known as SPF or
Dijkstra’s
algorithmSlide56
Routing Table
Also known as forwarding database
Generated when an algorithm is run on the topology database
Routing table for each router is unique