diff options
Diffstat (limited to 'doc/ospf_fundamentals.texi')
| -rw-r--r-- | doc/ospf_fundamentals.texi | 582 |
1 files changed, 0 insertions, 582 deletions
diff --git a/doc/ospf_fundamentals.texi b/doc/ospf_fundamentals.texi deleted file mode 100644 index 82218e6015..0000000000 --- a/doc/ospf_fundamentals.texi +++ /dev/null @@ -1,582 +0,0 @@ -@c Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. -@cindex OSPF Fundamentals -@node OSPF Fundamentals -@section OSPF Fundamentals - -@cindex Link-state routing protocol -@cindex Distance-vector routing protocol -@acronym{OSPF} is, mostly, a link-state routing protocol. In contrast -to @dfn{distance-vector} protocols, such as @acronym{RIP} or -@acronym{BGP}, where routers describe available @dfn{paths} (i.e@. routes) -to each other, in @dfn{link-state} protocols routers instead -describe the state of their links to their immediate neighbouring -routers. - -@cindex Link State Announcement -@cindex Link State Advertisement -@cindex LSA flooding -@cindex Link State DataBase -Each router describes their link-state information in a message known -as an @acronym{LSA,Link State Advertisement}, which is then propogated -through to all other routers in a link-state routing domain, by a -process called @dfn{flooding}. Each router thus builds up an -@acronym{LSDB,Link State Database} of all the link-state messages. From -this collection of LSAs in the LSDB, each router can then calculate the -shortest path to any other router, based on some common metric, by -using an algorithm such as @url{http://www.cs.utexas.edu/users/EWD/, -Edgser Dijkstra}'s @acronym{SPF,Shortest Path First}. - -@cindex Link-state routing protocol advantages -By describing connectivity of a network in this way, in terms of -routers and links rather than in terms of the paths through a network, -a link-state protocol can use less bandwidth and converge more quickly -than other protocols. A link-state protocol need distribute only one -link-state message throughout the link-state domain when a link on any -single given router changes state, in order for all routers to -reconverge on the best paths through the network. In contrast, distance -vector protocols can require a progression of different path update -messages from a series of different routers in order to converge. - -@cindex Link-state routing protocol disadvantages -The disadvantage to a link-state protocol is that the process of -computing the best paths can be relatively intensive when compared to -distance-vector protocols, in which near to no computation need be done -other than (potentially) select between multiple routes. This overhead -is mostly negligible for modern embedded CPUs, even for networks with -thousands of nodes. The primary scaling overhead lies more in coping -with the ever greater frequency of LSA updates as the size of a -link-state area increases, in managing the @acronym{LSDB} and required -flooding. - -This section aims to give a distilled, but accurate, description of the -more important workings of @acronym{OSPF}@ which an administrator may need -to know to be able best configure and trouble-shoot @acronym{OSPF}@. - -@subsection OSPF Mechanisms - -@acronym{OSPF} defines a range of mechanisms, concerned with detecting, -describing and propogating state through a network. These mechanisms -will nearly all be covered in greater detail further on. They may be -broadly classed as: - -@table @dfn -@cindex OSPF Hello Protocol overview -@item The Hello Protocol - -@cindex OSPF Hello Protocol -The OSPF Hello protocol allows OSPF to quickly detect changes in -two-way reachability between routers on a link. OSPF can additionally -avail of other sources of reachability information, such as link-state -information provided by hardware, or through dedicated reachability -protocols such as @acronym{BFD,Bi-directional Forwarding Detection}. - -OSPF also uses the Hello protocol to propagate certain state between -routers sharing a link, for example: - -@itemize @bullet -@item Hello protocol configured state, such as the dead-interval. -@item Router priority, for DR/BDR election. -@item DR/BDR election results. -@item Any optional capabilities supported by each router. -@end itemize - -The Hello protocol is comparatively trivial and will not be explored in -greater detail than here. - -@cindex OSPF LSA overview -@item LSAs - -At the heart of @acronym{OSPF} are @acronym{LSA,Link State -Advertisement} messages. Despite the name, some @acronym{LSA}s do not, -strictly speaking, describe link-state information. Common -@acronym{LSA}s describe information such as: - -@itemize @bullet -@item -Routers, in terms of their links. -@item -Networks, in terms of attached routers. -@item -Routes, external to a link-state domain: - -@itemize @bullet -@item External Routes - -Routes entirely external to @acronym{OSPF}@. Routers originating such -routes are known as @acronym{ASBR,Autonomous-System Border Router} -routers. - -@item Summary Routes - -Routes which summarise routing information relating to OSPF areas -external to the OSPF link-state area at hand, originated by -@acronym{ABR,Area Boundary Router} routers. -@end itemize -@end itemize - -@item LSA Flooding -OSPF defines several related mechanisms, used to manage synchronisation of -@acronym{LSDB}s between neighbours as neighbours form adjacencies and -the propogation, or @dfn{flooding} of new or updated @acronym{LSA}s. - -@xref{OSPF Flooding}. - -@cindex OSPF Areas overview -@item Areas -OSPF provides for the protocol to be broken up into multiple smaller -and independent link-state areas. Each area must be connected to a -common backbone area by an @acronym{ABR,Area Boundary Router}. These -@acronym{ABR} routers are responsible for summarising the link-state -routing information of an area into @dfn{Summary LSAs}, possibly in a -condensed (i.e. aggregated) form, and then originating these summaries -into all other areas the @acronym{ABR} is connected to. - -Note that only summaries and external routes are passed between areas. -As these describe @emph{paths}, rather than any router link-states, -routing between areas hence is by @dfn{distance-vector}, @strong{not} -link-state. - -@xref{OSPF Areas}. -@end table - -@subsection OSPF LSAs - -@acronym{LSA}s are the core object in OSPF@. Everything else in OSPF -revolves around detecting what to describe in LSAs, when to update -them, how to flood them throughout a network and how to calculate -routes from them. - -There are a variety of different @acronym{LSA}s, for purposes such -as describing actual link-state information, describing paths (i.e. -routes), describing bandwidth usage of links for -@acronym{TE,Traffic Engineering} purposes, and even arbitrary data -by way of @emph{Opaque} @acronym{LSA}s. - -@subsubsection LSA Header -All LSAs share a common header with the following information: - -@itemize @bullet -@item Type - -Different types of @acronym{LSA}s describe different things in -@acronym{OSPF}@. Types include: - -@itemize @bullet -@item Router LSA -@item Network LSA -@item Network Summary LSA -@item Router Summary LSA -@item AS-External LSA -@end itemize - -The specifics of the different types of LSA are examined below. - -@item Advertising Router - -The Router ID of the router originating the LSA, see @ref{ospf router-id}. - -@item LSA ID - -The ID of the LSA, which is typically derived in some way from the -information the LSA describes, e.g. a Router LSA uses the Router ID as -the LSA ID, a Network LSA will have the IP address of the @acronym{DR} -as its LSA ID@. - -The combination of the Type, ID and Advertising Router ID must uniquely -identify the @acronym{LSA}@. There can however be multiple instances of -an LSA with the same Type, LSA ID and Advertising Router ID, see -@ref{OSPF LSA sequence number,,LSA Sequence Number}. - -@item Age - -A number to allow stale @acronym{LSA}s to, eventually, be purged by routers -from their @acronym{LSDB}s. - -The value nominally is one of seconds. An age of 3600, i.e. 1 hour, is -called the @dfn{MaxAge}. MaxAge LSAs are ignored in routing -calculations. LSAs must be periodically refreshed by their Advertising -Router before reaching MaxAge if they are to remain valid. - -Routers may deliberately flood LSAs with the age artificially set to -3600 to indicate an LSA is no longer valid. This is called -@dfn{flushing} of an LSA@. - -It is not abnormal to see stale LSAs in the LSDB, this can occur where -a router has shutdown without flushing its LSA(s), e.g. where it has -become disconnected from the network. Such LSAs do little harm. - -@anchor{OSPF LSA sequence number} -@item Sequence Number - -A number used to distinguish newer instances of an LSA from older instances. -@end itemize - -@subsubsection Link-State LSAs -Of all the various kinds of @acronym{LSA}s, just two types comprise the -actual link-state part of @acronym{OSPF}, Router @acronym{LSA}s and -Network @acronym{LSA}s. These LSA types are absolutely core to the -protocol. - -Instances of these LSAs are specific to the link-state area in which -they are originated. Routes calculated from these two LSA types are -called @dfn{intra-area routes}. - -@itemize @bullet -@item Router LSA - -Each OSPF Router must originate a router @acronym{LSA} to describe -itself. In it, the router lists each of its @acronym{OSPF} enabled -interfaces, for the given link-state area, in terms of: - -@itemize @bullet -@item Cost - -The output cost of that interface, scaled inversely to some commonly known -reference value, @xref{OSPF auto-cost reference-bandwidth,,auto-cost -reference-bandwidth}. - -@item Link Type -@itemize @bullet -@item Transit Network - -A link to a multi-access network, on which the router has at least one -Full adjacency with another router. - -@item @acronym{PtP,Point-to-Point} - -A link to a single remote router, with a Full adjacency. No -@acronym{DR, Designated Router} is elected on such links; no network -LSA is originated for such a link. - -@item Stub - -A link with no adjacent neighbours, or a host route. -@end itemize - -@item Link ID and Data - -These values depend on the Link Type: - -@multitable @columnfractions .18 .32 .32 -@headitem Link Type @tab Link ID @tab Link Data - -@item Transit -@tab Link IP address of the @acronym{DR} -@tab Interface IP address - -@item Point-to-Point -@tab Router ID of the remote router -@tab Local interface IP address, -or the @acronym{ifindex,MIB-II interface index} -for unnumbered links - -@item Stub -@tab IP address -@tab Subnet Mask - -@end multitable -@end itemize - -Links on a router may be listed multiple times in the Router LSA, e.g. -a @acronym{PtP} interface on which OSPF is enabled must @emph{always} -be described by a Stub link in the Router @acronym{LSA}, in addition to -being listed as PtP link in the Router @acronym{LSA} if the adjacency -with the remote router is Full. - -Stub links may also be used as a way to describe links on which OSPF is -@emph{not} spoken, known as @dfn{passive interfaces}, see @ref{OSPF -passive-interface,,passive-interface}. - -@item Network LSA - -On multi-access links (e.g. ethernets, certain kinds of ATM and X@.25 -configurations), routers elect a @acronym{DR}@. The @acronym{DR} is -responsible for originating a Network @acronym{LSA}, which helps reduce -the information needed to describe multi-access networks with multiple -routers attached. The @acronym{DR} also acts as a hub for the flooding of -@acronym{LSA}s on that link, thus reducing flooding overheads. - -The contents of the Network LSA describes the: - -@itemize @bullet -@item Subnet Mask - -As the @acronym{LSA} ID of a Network LSA must be the IP address of the -@acronym{DR}, the Subnet Mask together with the @acronym{LSA} ID gives -you the network address. - -@item Attached Routers - -Each router fully-adjacent with the @acronym{DR} is listed in the LSA, -by their Router-ID. This allows the corresponding Router @acronym{LSA}s to be -easily retrieved from the @acronym{LSDB}@. -@end itemize -@end itemize - -Summary of Link State LSAs: - -@multitable @columnfractions .18 .32 .40 -@headitem LSA Type @tab LSA ID Describes @tab LSA Data Describes - -@item Router LSA -@tab The Router ID -@tab The @acronym{OSPF} enabled links of the router, within - a specific link-state area. - -@item Network LSA -@tab The IP address of the @acronym{DR} for the network -@tab The Subnet Mask of the network, and the Router IDs of all routers - on the network. -@end multitable - -With an LSDB composed of just these two types of @acronym{LSA}, it is -possible to construct a directed graph of the connectivity between all -routers and networks in a given OSPF link-state area. So, not -surprisingly, when OSPF routers build updated routing tables, the first -stage of @acronym{SPF} calculation concerns itself only with these two -LSA types. - -@subsubsection Link-State LSA Examples - -The example below (@pxref{OSPF Link-State LSA Example}) shows two -@acronym{LSA}s, both originated by the same router (Router ID -192.168.0.49) and with the same @acronym{LSA} ID (192.168.0.49), but of -different LSA types. - -The first LSA being the router LSA describing 192.168.0.49's links: 2 links -to multi-access networks with fully-adjacent neighbours (i.e. Transit -links) and 1 being a Stub link (no adjacent neighbours). - -The second LSA being a Network LSA, for which 192.168.0.49 is the -@acronym{DR}, listing the Router IDs of 4 routers on that network which -are fully adjacent with 192.168.0.49. - -@anchor{OSPF Link-State LSA Example} -@example -# show ip ospf database router 192.168.0.49 - - OSPF Router with ID (192.168.0.53) - - - Router Link States (Area 0.0.0.0) - - LS age: 38 - Options: 0x2 : *|-|-|-|-|-|E|* - LS Flags: 0x6 - Flags: 0x2 : ASBR - LS Type: router-LSA - Link State ID: 192.168.0.49 - Advertising Router: 192.168.0.49 - LS Seq Number: 80000f90 - Checksum: 0x518b - Length: 60 - Number of Links: 3 - - Link connected to: a Transit Network - (Link ID) Designated Router address: 192.168.1.3 - (Link Data) Router Interface address: 192.168.1.3 - Number of TOS metrics: 0 - TOS 0 Metric: 10 - - Link connected to: a Transit Network - (Link ID) Designated Router address: 192.168.0.49 - (Link Data) Router Interface address: 192.168.0.49 - Number of TOS metrics: 0 - TOS 0 Metric: 10 - - Link connected to: Stub Network - (Link ID) Net: 192.168.3.190 - (Link Data) Network Mask: 255.255.255.255 - Number of TOS metrics: 0 - TOS 0 Metric: 39063 -# show ip ospf database network 192.168.0.49 - - OSPF Router with ID (192.168.0.53) - - - Net Link States (Area 0.0.0.0) - - LS age: 285 - Options: 0x2 : *|-|-|-|-|-|E|* - LS Flags: 0x6 - LS Type: network-LSA - Link State ID: 192.168.0.49 (address of Designated Router) - Advertising Router: 192.168.0.49 - LS Seq Number: 80000074 - Checksum: 0x0103 - Length: 40 - Network Mask: /29 - Attached Router: 192.168.0.49 - Attached Router: 192.168.0.52 - Attached Router: 192.168.0.53 - Attached Router: 192.168.0.54 -@end example - -Note that from one LSA, you can find the other. E.g. Given the -Network-LSA you have a list of Router IDs on that network, from which -you can then look up, in the local @acronym{LSDB}, the matching Router -LSA@. From that Router-LSA you may (potentially) find links to other -Transit networks and Routers IDs which can be used to lookup the -corresponding Router or Network LSA@. And in that fashion, one can find -all the Routers and Networks reachable from that starting @acronym{LSA}@. - -Given the Router LSA instead, you have the IP address of the -@acronym{DR} of any attached transit links. Network LSAs will have that IP -as their LSA ID, so you can then look up that Network LSA and from that -find all the attached routers on that link, leading potentially to more -links and Network and Router LSAs, etc. etc. - -From just the above two @acronym{LSA}s, one can already see the -following partial topology: -@example -@group - - - --------------------- Network: ...... - | Designated Router IP: 192.168.1.3 - | - IP: 192.168.1.3 - (transit link) - (cost: 10) - Router ID: 192.168.0.49(stub)---------- IP: 192.168.3.190/32 - (cost: 10) (cost: 39063) - (transit link) - IP: 192.168.0.49 - | - | ------------------------------- Network: 192.168.0.48/29 - | | | Designated Router IP: 192.168.0.49 - | | | - | | Router ID: 192.168.0.54 - | | - | Router ID: 192.168.0.53 - | -Router ID: 192.168.0.52 -@end group -@end example - -Note the Router IDs, though they look like IP addresses and often are -IP addresses, are not strictly speaking IP addresses, nor need they be -reachable addresses (though, OSPF will calculate routes to Router IDs). - -@subsubsection External LSAs - -External, or "Type 5", @acronym{LSA}s describe routing information which is -entirely external to @acronym{OSPF}, and is "injected" into -@acronym{OSPF}@. Such routing information may have come from another -routing protocol, such as RIP or BGP, they may represent static routes -or they may represent a default route. - -An @acronym{OSPF} router which originates External @acronym{LSA}s is known as an -@acronym{ASBR,AS Boundary Router}. Unlike the link-state @acronym{LSA}s, and -most other @acronym{LSA}s, which are flooded only within the area in -which they originate, External @acronym{LSA}s are flooded through-out -the @acronym{OSPF} network to all areas capable of carrying External -@acronym{LSA}s (@pxref{OSPF Areas}). - -Routes internal to OSPF (intra-area or inter-area) are always preferred -over external routes. - -The External @acronym{LSA} describes the following: - -@itemize @bullet -@item IP Network number - -The IP Network number of the route is described by the @acronym{LSA} ID -field. - -@item IP Network Mask - -The body of the External LSA describes the IP Network Mask of the -route. This, together with the @acronym{LSA} ID, describes the prefix -of the IP route concerned. - -@item Metric - -The cost of the External Route. This cost may be an OSPF cost (also -known as a "Type 1" metric), i.e. equivalent to the normal OSPF costs, -or an externally derived cost ("Type 2" metric) which is not comparable -to OSPF costs and always considered larger than any OSPF cost. Where -there are both Type 1 and 2 External routes for a route, the Type 1 is -always preferred. - -@item Forwarding Address - -The address of the router to forward packets to for the route. This may -be, and usually is, left as 0 to specify that the ASBR originating the -External @acronym{LSA} should be used. There must be an internal OSPF -route to the forwarding address, for the forwarding address to be -useable. - -@item Tag - -An arbitrary 4-bytes of data, not interpreted by OSPF, which may -carry whatever information about the route which OSPF speakers desire. -@end itemize - -@subsubsection AS External LSA Example - -To illustrate, below is an example of an External @acronym{LSA} in the -@acronym{LSDB} of an OSPF router. It describes a route to the IP prefix -of 192.168.165.0/24, originated by the ASBR with Router-ID -192.168.0.49. The metric of 20 is external to OSPF. The forwarding -address is 0, so the route should forward to the originating ASBR if -selected. - -@example -@group -# show ip ospf database external 192.168.165.0 - LS age: 995 - Options: 0x2 : *|-|-|-|-|-|E|* - LS Flags: 0x9 - LS Type: AS-external-LSA - Link State ID: 192.168.165.0 (External Network Number) - Advertising Router: 192.168.0.49 - LS Seq Number: 800001d8 - Checksum: 0xea27 - Length: 36 - Network Mask: /24 - Metric Type: 2 (Larger than any link state path) - TOS: 0 - Metric: 20 - Forward Address: 0.0.0.0 - External Route Tag: 0 -@end group -@end example - -We can add this to our partial topology from above, which now looks -like: -@example -@group - --------------------- Network: ...... - | Designated Router IP: 192.168.1.3 - | - IP: 192.168.1.3 /---- External route: 192.168.165.0/24 - (transit link) / Cost: 20 (External metric) - (cost: 10) / - Router ID: 192.168.0.49(stub)---------- IP: 192.168.3.190/32 - (cost: 10) (cost: 39063) - (transit link) - IP: 192.168.0.49 - | - | ------------------------------- Network: 192.168.0.48/29 - | | | Designated Router IP: 192.168.0.49 - | | | - | | Router ID: 192.168.0.54 - | | - | Router ID: 192.168.0.53 - | -Router ID: 192.168.0.52 -@end group -@end example - -@subsubsection Summary LSAs - -Summary LSAs are created by @acronym{ABR}s to summarise the destinations available within one area to other areas. These LSAs may describe IP networks, potentially in aggregated form, or @acronym{ASBR} routers. - -@anchor{OSPF Flooding} -@subsection OSPF Flooding - -@anchor{OSPF Areas} -@subsection OSPF Areas |
