Annotation of embedaddon/quagga/doc/ospf_fundamentals.texi, revision 1.1

1.1     ! misho       1: @c Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
        !             2: @cindex OSPF Fundamentals
        !             3: @node OSPF Fundamentals
        !             4: @section OSPF Fundamentals
        !             5: 
        !             6: @cindex Link-state routing protocol
        !             7: @cindex Distance-vector routing protocol
        !             8: @acronym{OSPF} is, mostly, a link-state routing protocol. In contrast
        !             9: to @dfn{distance-vector} protocols, such as @acronym{RIP} or
        !            10: @acronym{BGP}, where routers describe available @dfn{paths} (i.e@. routes) 
        !            11: to each other, in @dfn{link-state} protocols routers instead
        !            12: describe the state of their links to their immediate neighbouring
        !            13: routers.
        !            14: 
        !            15: @cindex Link State Announcement
        !            16: @cindex Link State Advertisement
        !            17: @cindex LSA flooding
        !            18: @cindex Link State DataBase
        !            19: Each router describes their link-state information in a message known
        !            20: as an @acronym{LSA,Link State Advertisement}, which is then propogated
        !            21: through to all other routers in a link-state routing domain, by a
        !            22: process called @dfn{flooding}. Each router thus builds up an
        !            23: @acronym{LSDB,Link State Database} of all the link-state messages. From
        !            24: this collection of LSAs in the LSDB, each router can then calculate the
        !            25: shortest path to any other router, based on some common metric, by
        !            26: using an algorithm such as @url{http://www.cs.utexas.edu/users/EWD/,
        !            27: Edgser Dijkstra}'s @acronym{SPF,Shortest Path First}.
        !            28: 
        !            29: @cindex Link-state routing protocol advantages
        !            30: By describing connectivity of a network in this way, in terms of
        !            31: routers and links rather than in terms of the paths through a network,
        !            32: a link-state protocol can use less bandwidth and converge more quickly
        !            33: than other protocols. A link-state protocol need distribute only one
        !            34: link-state message throughout the link-state domain when a link on any
        !            35: single given router changes state, in order for all routers to
        !            36: reconverge on the best paths through the network. In contrast, distance
        !            37: vector protocols can require a progression of different path update
        !            38: messages from a series of different routers in order to converge.
        !            39: 
        !            40: @cindex Link-state routing protocol disadvantages
        !            41: The disadvantage to a link-state protocol is that the process of
        !            42: computing the best paths can be relatively intensive when compared to
        !            43: distance-vector protocols, in which near to no computation need be done
        !            44: other than (potentially) select between multiple routes. This overhead
        !            45: is mostly negligible for modern embedded CPUs, even for networks with
        !            46: thousands of nodes. The primary scaling overhead lies more in coping
        !            47: with the ever greater frequency of LSA updates as the size of a
        !            48: link-state area increases, in managing the @acronym{LSDB} and required
        !            49: flooding.
        !            50: 
        !            51: This section aims to give a distilled, but accurate, description of the
        !            52: more important workings of @acronym{OSPF}@ which an administrator may need
        !            53: to know to be able best configure and trouble-shoot @acronym{OSPF}@.
        !            54: 
        !            55: @subsection OSPF Mechanisms
        !            56: 
        !            57: @acronym{OSPF} defines a range of mechanisms, concerned with detecting,
        !            58: describing and propogating state through a network. These mechanisms
        !            59: will nearly all be covered in greater detail further on. They may be
        !            60: broadly classed as:
        !            61: 
        !            62: @table @dfn
        !            63: @cindex OSPF Hello Protocol overview
        !            64: @item The Hello Protocol
        !            65: 
        !            66: @cindex OSPF Hello Protocol
        !            67: The OSPF Hello protocol allows OSPF to quickly detect changes in
        !            68: two-way reachability between routers on a link. OSPF can additionally
        !            69: avail of other sources of reachability information, such as link-state
        !            70: information provided by hardware, or through dedicated reachability
        !            71: protocols such as @acronym{BFD,Bi-directional Forwarding Detection}.
        !            72: 
        !            73: OSPF also uses the Hello protocol to propagate certain state between
        !            74: routers sharing a link, for example:
        !            75: 
        !            76: @itemize @bullet
        !            77: @item Hello protocol configured state, such as the dead-interval.
        !            78: @item Router priority, for DR/BDR election.
        !            79: @item DR/BDR election results.
        !            80: @item Any optional capabilities supported by each router.
        !            81: @end itemize
        !            82: 
        !            83: The Hello protocol is comparatively trivial and will not be explored in
        !            84: greater detail than here.
        !            85: 
        !            86: @cindex OSPF LSA overview 
        !            87: @item LSAs
        !            88: 
        !            89: At the heart of @acronym{OSPF} are @acronym{LSA,Link State
        !            90: Advertisement} messages. Despite the name, some @acronym{LSA}s do not,
        !            91: strictly speaking, describe link-state information. Common
        !            92: @acronym{LSA}s describe information such as:
        !            93: 
        !            94: @itemize @bullet
        !            95: @item
        !            96: Routers, in terms of their links.
        !            97: @item
        !            98: Networks, in terms of attached routers.
        !            99: @item
        !           100: Routes, external to a link-state domain:
        !           101: 
        !           102: @itemize @bullet
        !           103: @item External Routes
        !           104: 
        !           105: Routes entirely external to @acronym{OSPF}@. Routers originating such
        !           106: routes are known as @acronym{ASBR,Autonomous-System Border Router}
        !           107: routers.
        !           108: 
        !           109: @item Summary Routes
        !           110: 
        !           111: Routes which summarise routing information relating to OSPF areas
        !           112: external to the OSPF link-state area at hand, originated by
        !           113: @acronym{ABR,Area Boundary Router} routers.
        !           114: @end itemize
        !           115: @end itemize
        !           116: 
        !           117: @item LSA Flooding
        !           118: OSPF defines several related mechanisms, used to manage synchronisation of
        !           119: @acronym{LSDB}s between neighbours as neighbours form adjacencies and
        !           120: the propogation, or @dfn{flooding} of new or updated @acronym{LSA}s.
        !           121: 
        !           122: @xref{OSPF Flooding}.
        !           123: 
        !           124: @cindex OSPF Areas overview
        !           125: @item Areas
        !           126: OSPF provides for the protocol to be broken up into multiple smaller
        !           127: and independent link-state areas. Each area must be connected to a
        !           128: common backbone area by an @acronym{ABR,Area Boundary Router}. These
        !           129: @acronym{ABR} routers are responsible for summarising the link-state
        !           130: routing information of an area into @dfn{Summary LSAs}, possibly in a
        !           131: condensed (i.e. aggregated) form, and then originating these summaries
        !           132: into all other areas the @acronym{ABR} is connected to.
        !           133: 
        !           134: Note that only summaries and external routes are passed between areas.
        !           135: As these describe @emph{paths}, rather than any router link-states,
        !           136: routing between areas hence is by @dfn{distance-vector}, @strong{not}
        !           137: link-state.
        !           138: 
        !           139: @xref{OSPF Areas}.
        !           140: @end table
        !           141: 
        !           142: @subsection OSPF LSAs
        !           143: 
        !           144: @acronym{LSA}s are the core object in OSPF@. Everything else in OSPF
        !           145: revolves around detecting what to describe in LSAs, when to update
        !           146: them, how to flood them throughout a network and how to calculate
        !           147: routes from them. 
        !           148: 
        !           149: There are a variety of different @acronym{LSA}s, for purposes such
        !           150: as describing actual link-state information, describing paths (i.e.
        !           151: routes), describing bandwidth usage of links for 
        !           152: @acronym{TE,Traffic Engineering} purposes, and even arbitrary data
        !           153: by way of @emph{Opaque} @acronym{LSA}s.
        !           154: 
        !           155: @subsubsection LSA Header
        !           156: All LSAs share a common header with the following information:
        !           157: 
        !           158: @itemize @bullet
        !           159: @item Type
        !           160: 
        !           161: Different types of @acronym{LSA}s describe different things in
        !           162: @acronym{OSPF}@. Types include:
        !           163: 
        !           164: @itemize @bullet
        !           165: @item Router LSA
        !           166: @item Network LSA
        !           167: @item Network Summary LSA
        !           168: @item Router Summary LSA
        !           169: @item AS-External LSA
        !           170: @end itemize
        !           171: 
        !           172: The specifics of the different types of LSA are examined below.
        !           173: 
        !           174: @item Advertising Router
        !           175: 
        !           176: The Router ID of the router originating the LSA, see @ref{ospf router-id}.
        !           177: 
        !           178: @item LSA ID
        !           179: 
        !           180: The ID of the LSA, which is typically derived in some way from the
        !           181: information the LSA describes, e.g. a Router LSA uses the Router ID as
        !           182: the LSA ID, a Network LSA will have the IP address of the @acronym{DR}
        !           183: as its LSA ID@.
        !           184: 
        !           185: The combination of the Type, ID and Advertising Router ID must uniquely
        !           186: identify the @acronym{LSA}@. There can however be multiple instances of
        !           187: an LSA with the same Type, LSA ID and Advertising Router ID, see
        !           188: @ref{OSPF LSA sequence number,,LSA Sequence Number}.
        !           189: 
        !           190: @item Age
        !           191: 
        !           192: A number to allow stale @acronym{LSA}s to, eventually, be purged by routers
        !           193: from their @acronym{LSDB}s.
        !           194: 
        !           195: The value nominally is one of seconds. An age of 3600, i.e. 1 hour, is
        !           196: called the @dfn{MaxAge}. MaxAge LSAs are ignored in routing
        !           197: calculations. LSAs must be periodically refreshed by their Advertising
        !           198: Router before reaching MaxAge if they are to remain valid.
        !           199: 
        !           200: Routers may deliberately flood LSAs with the age artificially set to
        !           201: 3600 to indicate an LSA is no longer valid. This is called
        !           202: @dfn{flushing} of an LSA@.
        !           203: 
        !           204: It is not abnormal to see stale LSAs in the LSDB, this can occur where
        !           205: a router has shutdown without flushing its LSA(s), e.g. where it has
        !           206: become disconnected from the network. Such LSAs do little harm.
        !           207: 
        !           208: @anchor{OSPF LSA sequence number}
        !           209: @item Sequence Number
        !           210: 
        !           211: A number used to distinguish newer instances of an LSA from older instances.
        !           212: @end itemize
        !           213: 
        !           214: @subsubsection Link-State LSAs
        !           215: Of all the various kinds of @acronym{LSA}s, just two types comprise the
        !           216: actual link-state part of @acronym{OSPF}, Router @acronym{LSA}s and
        !           217: Network @acronym{LSA}s. These LSA types are absolutely core to the
        !           218: protocol. 
        !           219: 
        !           220: Instances of these LSAs are specific to the link-state area in which
        !           221: they are originated. Routes calculated from these two LSA types are
        !           222: called @dfn{intra-area routes}.
        !           223: 
        !           224: @itemize @bullet
        !           225: @item Router LSA
        !           226: 
        !           227: Each OSPF Router must originate a router @acronym{LSA} to describe
        !           228: itself. In it, the router lists each of its @acronym{OSPF} enabled
        !           229: interfaces, for the given link-state area, in terms of:
        !           230: 
        !           231: @itemize @bullet
        !           232: @item Cost
        !           233: 
        !           234: The output cost of that interface, scaled inversely to some commonly known
        !           235: reference value, @xref{OSPF auto-cost reference-bandwidth,,auto-cost
        !           236: reference-bandwidth}.
        !           237: 
        !           238: @item Link Type
        !           239: @itemize @bullet
        !           240: @item Transit Network
        !           241: 
        !           242: A link to a multi-access network, on which the router has at least one
        !           243: Full adjacency with another router.
        !           244: 
        !           245: @item @acronym{PtP,Point-to-Point}
        !           246: 
        !           247: A link to a single remote router, with a Full adjacency. No
        !           248: @acronym{DR, Designated Router} is elected on such links; no network
        !           249: LSA is originated for such a link.
        !           250: 
        !           251: @item Stub
        !           252: 
        !           253: A link with no adjacent neighbours, or a host route.
        !           254: @end itemize
        !           255: 
        !           256: @item Link ID and Data
        !           257: 
        !           258: These values depend on the Link Type:
        !           259: 
        !           260: @multitable @columnfractions .18 .32 .32
        !           261: @headitem Link Type @tab Link ID @tab Link Data
        !           262: 
        !           263: @item Transit
        !           264: @tab Link IP address of the @acronym{DR}
        !           265: @tab Interface IP address
        !           266: 
        !           267: @item Point-to-Point
        !           268: @tab Router ID of the remote router
        !           269: @tab Local interface IP address,
        !           270: or the @acronym{ifindex,MIB-II interface index} 
        !           271: for unnumbered links
        !           272: 
        !           273: @item Stub
        !           274: @tab IP address
        !           275: @tab Subnet Mask
        !           276: 
        !           277: @end multitable
        !           278: @end itemize
        !           279: 
        !           280: Links on a router may be listed multiple times in the Router LSA, e.g.
        !           281: a @acronym{PtP} interface on which OSPF is enabled must @emph{always}
        !           282: be described by a Stub link in the Router @acronym{LSA}, in addition to
        !           283: being listed as PtP link in the Router @acronym{LSA} if the adjacency
        !           284: with the remote router is Full.
        !           285: 
        !           286: Stub links may also be used as a way to describe links on which OSPF is
        !           287: @emph{not} spoken, known as @dfn{passive interfaces}, see @ref{OSPF
        !           288: passive-interface,,passive-interface}.
        !           289: 
        !           290: @item Network LSA
        !           291: 
        !           292: On multi-access links (e.g. ethernets, certain kinds of ATM and X@.25
        !           293: configurations), routers elect a @acronym{DR}@. The @acronym{DR} is
        !           294: responsible for originating a Network @acronym{LSA}, which helps reduce
        !           295: the information needed to describe multi-access networks with multiple
        !           296: routers attached. The @acronym{DR} also acts as a hub for the flooding of
        !           297: @acronym{LSA}s on that link, thus reducing flooding overheads.
        !           298: 
        !           299: The contents of the Network LSA describes the:
        !           300: 
        !           301: @itemize @bullet
        !           302: @item Subnet Mask
        !           303: 
        !           304: As the @acronym{LSA} ID of a Network LSA must be the IP address of the
        !           305: @acronym{DR}, the Subnet Mask together with the @acronym{LSA} ID gives
        !           306: you the network address.
        !           307: 
        !           308: @item Attached Routers
        !           309: 
        !           310: Each router fully-adjacent with the @acronym{DR} is listed in the LSA,
        !           311: by their Router-ID. This allows the corresponding Router @acronym{LSA}s to be
        !           312: easily retrieved from the @acronym{LSDB}@.
        !           313: @end itemize
        !           314: @end itemize
        !           315: 
        !           316: Summary of Link State LSAs:
        !           317: 
        !           318: @multitable @columnfractions .18 .32 .40
        !           319: @headitem LSA Type @tab LSA ID Describes @tab LSA Data Describes
        !           320: 
        !           321: @item Router LSA 
        !           322: @tab The Router ID 
        !           323: @tab The @acronym{OSPF} enabled links of the router, within
        !           324:      a specific link-state area.
        !           325: 
        !           326: @item Network LSA
        !           327: @tab The IP address of the @acronym{DR} for the network
        !           328: @tab The Subnet Mask of the network, and the Router IDs of all routers
        !           329:      on the network.
        !           330: @end multitable
        !           331: 
        !           332: With an LSDB composed of just these two types of @acronym{LSA}, it is
        !           333: possible to construct a directed graph of the connectivity between all
        !           334: routers and networks in a given OSPF link-state area. So, not
        !           335: surprisingly, when OSPF routers build updated routing tables, the first
        !           336: stage of @acronym{SPF} calculation concerns itself only with these two
        !           337: LSA types. 
        !           338: 
        !           339: @subsubsection Link-State LSA Examples
        !           340: 
        !           341: The example below (@pxref{OSPF Link-State LSA Example}) shows two
        !           342: @acronym{LSA}s, both originated by the same router (Router ID
        !           343: 192.168.0.49) and with the same @acronym{LSA} ID (192.168.0.49), but of
        !           344: different LSA types.
        !           345: 
        !           346: The first LSA being the router LSA describing 192.168.0.49's links: 2 links
        !           347: to multi-access networks with fully-adjacent neighbours (i.e. Transit
        !           348: links) and 1 being a Stub link (no adjacent neighbours).
        !           349: 
        !           350: The second LSA being a Network LSA, for which 192.168.0.49 is the
        !           351: @acronym{DR}, listing the Router IDs of 4 routers on that network which
        !           352: are fully adjacent with 192.168.0.49.
        !           353: 
        !           354: @anchor{OSPF Link-State LSA Example}
        !           355: @example
        !           356: # show ip ospf database router 192.168.0.49
        !           357: 
        !           358:        OSPF Router with ID (192.168.0.53)
        !           359: 
        !           360: 
        !           361:                 Router Link States (Area 0.0.0.0)
        !           362: 
        !           363:   LS age: 38
        !           364:   Options: 0x2  : *|-|-|-|-|-|E|*
        !           365:   LS Flags: 0x6  
        !           366:   Flags: 0x2 : ASBR
        !           367:   LS Type: router-LSA
        !           368:   Link State ID: 192.168.0.49 
        !           369:   Advertising Router: 192.168.0.49
        !           370:   LS Seq Number: 80000f90
        !           371:   Checksum: 0x518b
        !           372:   Length: 60
        !           373:    Number of Links: 3
        !           374: 
        !           375:     Link connected to: a Transit Network
        !           376:      (Link ID) Designated Router address: 192.168.1.3
        !           377:      (Link Data) Router Interface address: 192.168.1.3
        !           378:       Number of TOS metrics: 0
        !           379:        TOS 0 Metric: 10
        !           380: 
        !           381:     Link connected to: a Transit Network
        !           382:      (Link ID) Designated Router address: 192.168.0.49
        !           383:      (Link Data) Router Interface address: 192.168.0.49
        !           384:       Number of TOS metrics: 0
        !           385:        TOS 0 Metric: 10
        !           386: 
        !           387:     Link connected to: Stub Network
        !           388:      (Link ID) Net: 192.168.3.190
        !           389:      (Link Data) Network Mask: 255.255.255.255
        !           390:       Number of TOS metrics: 0
        !           391:        TOS 0 Metric: 39063
        !           392: # show ip ospf database network 192.168.0.49
        !           393: 
        !           394:        OSPF Router with ID (192.168.0.53)
        !           395: 
        !           396: 
        !           397:                 Net Link States (Area 0.0.0.0)
        !           398: 
        !           399:   LS age: 285
        !           400:   Options: 0x2  : *|-|-|-|-|-|E|*
        !           401:   LS Flags: 0x6  
        !           402:   LS Type: network-LSA
        !           403:   Link State ID: 192.168.0.49 (address of Designated Router)
        !           404:   Advertising Router: 192.168.0.49
        !           405:   LS Seq Number: 80000074
        !           406:   Checksum: 0x0103
        !           407:   Length: 40
        !           408:   Network Mask: /29
        !           409:         Attached Router: 192.168.0.49
        !           410:         Attached Router: 192.168.0.52
        !           411:         Attached Router: 192.168.0.53
        !           412:         Attached Router: 192.168.0.54
        !           413: @end example
        !           414: 
        !           415: Note that from one LSA, you can find the other. E.g. Given the
        !           416: Network-LSA you have a list of Router IDs on that network, from which
        !           417: you can then look up, in the local @acronym{LSDB}, the matching Router
        !           418: LSA@. From that Router-LSA you may (potentially) find links to other
        !           419: Transit networks and Routers IDs which can be used to lookup the
        !           420: corresponding Router or Network LSA@. And in that fashion, one can find
        !           421: all the Routers and Networks reachable from that starting @acronym{LSA}@.
        !           422: 
        !           423: Given the Router LSA instead, you have the IP address of the
        !           424: @acronym{DR} of any attached transit links. Network LSAs will have that IP
        !           425: as their LSA ID, so you can then look up that Network LSA and from that
        !           426: find all the attached routers on that link, leading potentially to more
        !           427: links and Network and Router LSAs, etc. etc.
        !           428: 
        !           429: From just the above two @acronym{LSA}s, one can already see the
        !           430: following partial topology:
        !           431: @example
        !           432: @group
        !           433: 
        !           434:       
        !           435:    --------------------- Network: ......
        !           436:             |            Designated Router IP: 192.168.1.3
        !           437:             |
        !           438:       IP: 192.168.1.3
        !           439:        (transit link)
        !           440:         (cost: 10)
        !           441:    Router ID: 192.168.0.49(stub)---------- IP: 192.168.3.190/32
        !           442:         (cost: 10)        (cost: 39063)
        !           443:        (transit link)
        !           444:       IP: 192.168.0.49
        !           445:             |
        !           446:             |
        !           447: ------------------------------ Network: 192.168.0.48/29
        !           448:   |        |           |       Designated Router IP: 192.168.0.49
        !           449:   |        |           |
        !           450:   |        |     Router ID: 192.168.0.54
        !           451:   |        |
        !           452:   |   Router ID: 192.168.0.53
        !           453:   |
        !           454: Router ID: 192.168.0.52
        !           455: @end group
        !           456: @end example
        !           457: 
        !           458: Note the Router IDs, though they look like IP addresses and often are
        !           459: IP addresses, are not strictly speaking IP addresses, nor need they be
        !           460: reachable addresses (though, OSPF will calculate routes to Router IDs).
        !           461: 
        !           462: @subsubsection External LSAs
        !           463: 
        !           464: External, or "Type 5", @acronym{LSA}s describe routing information which is
        !           465: entirely external to @acronym{OSPF}, and is "injected" into
        !           466: @acronym{OSPF}@. Such routing information may have come from another
        !           467: routing protocol, such as RIP or BGP, they may represent static routes
        !           468: or they may represent a default route.
        !           469: 
        !           470: An @acronym{OSPF} router which originates External @acronym{LSA}s is known as an
        !           471: @acronym{ASBR,AS Boundary Router}. Unlike the link-state @acronym{LSA}s, and
        !           472: most other @acronym{LSA}s, which are flooded only within the area in
        !           473: which they originate, External @acronym{LSA}s are flooded through-out
        !           474: the @acronym{OSPF} network to all areas capable of carrying External
        !           475: @acronym{LSA}s (@pxref{OSPF Areas}).
        !           476: 
        !           477: Routes internal to OSPF (intra-area or inter-area) are always preferred
        !           478: over external routes.
        !           479: 
        !           480: The External @acronym{LSA} describes the following:
        !           481: 
        !           482: @itemize @bullet
        !           483: @item IP Network number
        !           484: 
        !           485: The IP Network number of the route is described by the @acronym{LSA} ID
        !           486: field.
        !           487: 
        !           488: @item IP Network Mask
        !           489: 
        !           490: The body of the External LSA describes the IP Network Mask of the
        !           491: route. This, together with the @acronym{LSA} ID, describes the prefix
        !           492: of the IP route concerned.
        !           493: 
        !           494: @item Metric
        !           495: 
        !           496: The cost of the External Route. This cost may be an OSPF cost (also
        !           497: known as a "Type 1" metric), i.e. equivalent to the normal OSPF costs,
        !           498: or an externally derived cost ("Type 2" metric) which is not comparable
        !           499: to OSPF costs and always considered larger than any OSPF cost. Where
        !           500: there are both Type 1 and 2 External routes for a route, the Type 1 is
        !           501: always preferred.
        !           502: 
        !           503: @item Forwarding Address
        !           504: 
        !           505: The address of the router to forward packets to for the route. This may
        !           506: be, and usually is, left as 0 to specify that the ASBR originating the
        !           507: External @acronym{LSA} should be used. There must be an internal OSPF
        !           508: route to the forwarding address, for the forwarding address to be
        !           509: useable.
        !           510: 
        !           511: @item Tag
        !           512: 
        !           513: An arbitrary 4-bytes of data, not interpreted by OSPF, which may
        !           514: carry whatever information about the route which OSPF speakers desire.
        !           515: @end itemize
        !           516: 
        !           517: @subsubsection AS External LSA Example
        !           518: 
        !           519: To illustrate, below is an example of an External @acronym{LSA} in the
        !           520: @acronym{LSDB} of an OSPF router. It describes a route to the IP prefix
        !           521: of 192.168.165.0/24, originated by the ASBR with Router-ID
        !           522: 192.168.0.49. The metric of 20 is external to OSPF. The forwarding
        !           523: address is 0, so the route should forward to the originating ASBR if
        !           524: selected.
        !           525: 
        !           526: @example
        !           527: @group
        !           528: # show ip ospf database external 192.168.165.0
        !           529:   LS age: 995
        !           530:   Options: 0x2  : *|-|-|-|-|-|E|*
        !           531:   LS Flags: 0x9
        !           532:   LS Type: AS-external-LSA
        !           533:   Link State ID: 192.168.165.0 (External Network Number)
        !           534:   Advertising Router: 192.168.0.49
        !           535:   LS Seq Number: 800001d8
        !           536:   Checksum: 0xea27
        !           537:   Length: 36
        !           538:   Network Mask: /24
        !           539:         Metric Type: 2 (Larger than any link state path)
        !           540:         TOS: 0
        !           541:         Metric: 20
        !           542:         Forward Address: 0.0.0.0
        !           543:         External Route Tag: 0
        !           544: @end group
        !           545: @end example
        !           546: 
        !           547: We can add this to our partial topology from above, which now looks
        !           548: like:
        !           549: @example
        !           550: @group
        !           551:    --------------------- Network: ......
        !           552:             |            Designated Router IP: 192.168.1.3
        !           553:             |
        !           554:       IP: 192.168.1.3      /---- External route: 192.168.165.0/24
        !           555:        (transit link)     /                Cost: 20 (External metric)
        !           556:         (cost: 10)       /
        !           557:    Router ID: 192.168.0.49(stub)---------- IP: 192.168.3.190/32
        !           558:         (cost: 10)        (cost: 39063)
        !           559:        (transit link)
        !           560:       IP: 192.168.0.49
        !           561:             |
        !           562:             |
        !           563: ------------------------------ Network: 192.168.0.48/29
        !           564:   |        |           |       Designated Router IP: 192.168.0.49
        !           565:   |        |           |
        !           566:   |        |     Router ID: 192.168.0.54
        !           567:   |        |
        !           568:   |   Router ID: 192.168.0.53
        !           569:   |
        !           570: Router ID: 192.168.0.52
        !           571: @end group
        !           572: @end example
        !           573: 
        !           574: @subsubsection Summary LSAs
        !           575: 
        !           576: 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. 
        !           577: 
        !           578: @anchor{OSPF Flooding}
        !           579: @subsection OSPF Flooding
        !           580: 
        !           581: @anchor{OSPF Areas}
        !           582: @subsection OSPF Areas

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>