Annotation of embedaddon/quagga/doc/ospfd.texi, revision 1.1
1.1 ! misho 1: @cindex OSPFv2
! 2: @node OSPFv2
! 3: @chapter OSPFv2
! 4:
! 5: @acronym{OSPF,Open Shortest Path First} version 2 is a routing protocol
! 6: which is described in @cite{RFC2328, OSPF Version 2}. OSPF is an
! 7: @acronym{IGP,Interior Gateway Protocol}. Compared with @acronym{RIP},
! 8: @acronym{OSPF} can provide scalable network support and faster
! 9: convergence times. OSPF is widely used in large networks such as
! 10: @acronym{ISP,Internet Service Provider} backbone and enterprise
! 11: networks.
! 12:
! 13: @menu
! 14: * Configuring ospfd::
! 15: * OSPF router::
! 16: * OSPF area::
! 17: * OSPF interface::
! 18: * Redistribute routes to OSPF::
! 19: * Showing OSPF information::
! 20: * Debugging OSPF::
! 21: * OSPF Configuration Examples::
! 22: @end menu
! 23:
! 24: @node Configuring ospfd
! 25: @section Configuring ospfd
! 26:
! 27: There are no @command{ospfd} specific options. Common options can be
! 28: specified (@pxref{Common Invocation Options}) to @command{ospfd}.
! 29: @command{ospfd} needs to acquire interface information from
! 30: @command{zebra} in order to function. Therefore @command{zebra} must be
! 31: running before invoking @command{ospfd}. Also, if @command{zebra} is
! 32: restarted then @command{ospfd} must be too.
! 33:
! 34: Like other daemons, @command{ospfd} configuration is done in @acronym{OSPF}
! 35: specific configuration file @file{ospfd.conf}.
! 36:
! 37: @node OSPF router
! 38: @section OSPF router
! 39:
! 40: To start OSPF process you have to specify the OSPF router. As of this
! 41: writing, @command{ospfd} does not support multiple OSPF processes.
! 42:
! 43: @deffn Command {router ospf} {}
! 44: @deffnx Command {no router ospf} {}
! 45: Enable or disable the OSPF process. @command{ospfd} does not yet
! 46: support multiple OSPF processes. So you can not specify an OSPF process
! 47: number.
! 48: @end deffn
! 49:
! 50: @deffn {OSPF Command} {ospf router-id @var{a.b.c.d}} {}
! 51: @deffnx {OSPF Command} {no ospf router-id} {}
! 52: @anchor{ospf router-id}This sets the router-ID of the OSPF process. The
! 53: router-ID may be an IP address of the router, but need not be - it can
! 54: be any arbitrary 32bit number. However it MUST be unique within the
! 55: entire OSPF domain to the OSPF speaker - bad things will happen if
! 56: multiple OSPF speakers are configured with the same router-ID! If one
! 57: is not specified then @command{ospfd} will obtain a router-ID
! 58: automatically from @command{zebra}.
! 59: @end deffn
! 60:
! 61: @deffn {OSPF Command} {ospf abr-type @var{type}} {}
! 62: @deffnx {OSPF Command} {no ospf abr-type @var{type}} {}
! 63: @var{type} can be cisco|ibm|shortcut|standard. The "Cisco" and "IBM" types
! 64: are equivalent.
! 65:
! 66: The OSPF standard for ABR behaviour does not allow an ABR to consider
! 67: routes through non-backbone areas when its links to the backbone are
! 68: down, even when there are other ABRs in attached non-backbone areas
! 69: which still can reach the backbone - this restriction exists primarily
! 70: to ensure routing-loops are avoided.
! 71:
! 72: With the "Cisco" or "IBM" ABR type, the default in this release of
! 73: Quagga, this restriction is lifted, allowing an ABR to consider
! 74: summaries learnt from other ABRs through non-backbone areas, and hence
! 75: route via non-backbone areas as a last resort when, and only when,
! 76: backbone links are down.
! 77:
! 78: Note that areas with fully-adjacent virtual-links are considered to be
! 79: "transit capable" and can always be used to route backbone traffic, and
! 80: hence are unaffected by this setting (@pxref{OSPF virtual-link}).
! 81:
! 82: More information regarding the behaviour controlled by this command can
! 83: be found in @cite{RFC 3509, Alternative Implementations of OSPF Area
! 84: Border Routers}, and @cite{draft-ietf-ospf-shortcut-abr-02.txt}.
! 85:
! 86: Quote: "Though the definition of the @acronym{ABR,Area Border Router}
! 87: in the OSPF specification does not require a router with multiple
! 88: attached areas to have a backbone connection, it is actually
! 89: necessary to provide successful routing to the inter-area and
! 90: external destinations. If this requirement is not met, all traffic
! 91: destined for the areas not connected to such an ABR or out of the
! 92: OSPF domain, is dropped. This document describes alternative ABR
! 93: behaviors implemented in Cisco and IBM routers."
! 94: @end deffn
! 95:
! 96: @deffn {OSPF Command} {ospf rfc1583compatibility} {}
! 97: @deffnx {OSPF Command} {no ospf rfc1583compatibility} {}
! 98: @cite{RFC2328}, the sucessor to @cite{RFC1583}, suggests according
! 99: to section G.2 (changes) in section 16.4 a change to the path
! 100: preference algorithm that prevents possible routing loops that were
! 101: possible in the old version of OSPFv2. More specifically it demands
! 102: that inter-area paths and intra-area backbone path are now of equal preference
! 103: but still both preferred to external paths.
! 104:
! 105: This command should NOT be set normally.
! 106: @end deffn
! 107:
! 108: @deffn {OSPF Command} {log-adjacency-changes [detail]} {}
! 109: @deffnx {OSPF Command} {no log-adjacency-changes [detail]} {}
! 110: Configures ospfd to log changes in adjacency. With the optional
! 111: detail argument, all changes in adjacency status are shown. Without detail,
! 112: only changes to full or regressions are shown.
! 113: @end deffn
! 114:
! 115: @deffn {OSPF Command} {passive-interface @var{interface}} {}
! 116: @deffnx {OSPF Command} {no passive-interface @var{interface}} {}
! 117: @anchor{OSPF passive-interface} Do not speak OSPF interface on the
! 118: given interface, but do advertise the interface as a stub link in the
! 119: router-@acronym{LSA,Link State Advertisement} for this router. This
! 120: allows one to advertise addresses on such connected interfaces without
! 121: having to originate AS-External/Type-5 LSAs (which have global flooding
! 122: scope) - as would occur if connected addresses were redistributed into
! 123: OSPF (@pxref{Redistribute routes to OSPF})@. This is the only way to
! 124: advertise non-OSPF links into stub areas.
! 125: @end deffn
! 126:
! 127: @deffn {OSPF Command} {timers throttle spf @var{delay} @var{initial-holdtime} @var{max-holdtime}} {}
! 128: @deffnx {OSPF Command} {no timers throttle spf} {}
! 129: This command sets the initial @var{delay}, the @var{initial-holdtime}
! 130: and the @var{maximum-holdtime} between when SPF is calculated and the
! 131: event which triggered the calculation. The times are specified in
! 132: milliseconds and must be in the range of 0 to 600000 milliseconds.
! 133:
! 134: The @var{delay} specifies the minimum amount of time to delay SPF
! 135: calculation (hence it affects how long SPF calculation is delayed after
! 136: an event which occurs outside of the holdtime of any previous SPF
! 137: calculation, and also serves as a minimum holdtime).
! 138:
! 139: Consecutive SPF calculations will always be seperated by at least
! 140: 'hold-time' milliseconds. The hold-time is adaptive and initially is
! 141: set to the @var{initial-holdtime} configured with the above command.
! 142: Events which occur within the holdtime of the previous SPF calculation
! 143: will cause the holdtime to be increased by @var{initial-holdtime}, bounded
! 144: by the @var{maximum-holdtime} configured with this command. If the adaptive
! 145: hold-time elapses without any SPF-triggering event occuring then
! 146: the current holdtime is reset to the @var{initial-holdtime}. The current
! 147: holdtime can be viewed with @ref{show ip ospf}, where it is expressed as
! 148: a multiplier of the @var{initial-holdtime}.
! 149:
! 150: @example
! 151: @group
! 152: router ospf
! 153: timers throttle spf 200 400 10000
! 154: @end group
! 155: @end example
! 156:
! 157: In this example, the @var{delay} is set to 200ms, the @var{initial
! 158: holdtime} is set to 400ms and the @var{maximum holdtime} to 10s. Hence
! 159: there will always be at least 200ms between an event which requires SPF
! 160: calculation and the actual SPF calculation. Further consecutive SPF
! 161: calculations will always be seperated by between 400ms to 10s, the
! 162: hold-time increasing by 400ms each time an SPF-triggering event occurs
! 163: within the hold-time of the previous SPF calculation.
! 164:
! 165: This command supercedes the @command{timers spf} command in previous Quagga
! 166: releases.
! 167: @end deffn
! 168:
! 169: @deffn {OSPF Command} {max-metric router-lsa [on-startup|on-shutdown] <5-86400>} {}
! 170: @deffnx {OSPF Command} {max-metric router-lsa administrative} {}
! 171: @deffnx {OSPF Command} {no max-metric router-lsa [on-startup|on-shutdown|administrative]} {}
! 172: This enables @cite{RFC3137, OSPF Stub Router Advertisement} support,
! 173: where the OSPF process describes its transit links in its router-LSA as
! 174: having infinite distance so that other routers will avoid calculating
! 175: transit paths through the router while still being able to reach
! 176: networks through the router.
! 177:
! 178: This support may be enabled administratively (and indefinitely) or
! 179: conditionally. Conditional enabling of max-metric router-lsas can be
! 180: for a period of seconds after startup and/or for a period of seconds
! 181: prior to shutdown.
! 182:
! 183: Enabling this for a period after startup allows OSPF to converge fully
! 184: first without affecting any existing routes used by other routers,
! 185: while still allowing any connected stub links and/or redistributed
! 186: routes to be reachable. Enabling this for a period of time in advance
! 187: of shutdown allows the router to gracefully excuse itself from the OSPF
! 188: domain.
! 189:
! 190: Enabling this feature administratively allows for administrative
! 191: intervention for whatever reason, for an indefinite period of time.
! 192: Note that if the configuration is written to file, this administrative
! 193: form of the stub-router command will also be written to file. If
! 194: @command{ospfd} is restarted later, the command will then take effect
! 195: until manually deconfigured.
! 196:
! 197: Configured state of this feature as well as current status, such as the
! 198: number of second remaining till on-startup or on-shutdown ends, can be
! 199: viewed with the @ref{show ip ospf} command.
! 200: @end deffn
! 201:
! 202: @deffn {OSPF Command} {auto-cost reference-bandwidth <1-4294967>} {}
! 203: @deffnx {OSPF Command} {no auto-cost reference-bandwidth} {}
! 204: @anchor{OSPF auto-cost reference-bandwidth}This sets the reference
! 205: bandwidth for cost calculations, where this bandwidth is considered
! 206: equivalent to an OSPF cost of 1, specified in Mbits/s. The default is
! 207: 100Mbit/s (i.e. a link of bandwidth 100Mbit/s or higher will have a
! 208: cost of 1. Cost of lower bandwidth links will be scaled with reference
! 209: to this cost).
! 210:
! 211: This configuration setting MUST be consistent across all routers within the
! 212: OSPF domain.
! 213: @end deffn
! 214:
! 215: @deffn {OSPF Command} {network @var{a.b.c.d/m} area @var{a.b.c.d}} {}
! 216: @deffnx {OSPF Command} {network @var{a.b.c.d/m} area @var{<0-4294967295>}} {}
! 217: @deffnx {OSPF Command} {no network @var{a.b.c.d/m} area @var{a.b.c.d}} {}
! 218: @deffnx {OSPF Command} {no network @var{a.b.c.d/m} area @var{<0-4294967295>}} {}
! 219: This command specifies the OSPF enabled interface(s). If the interface has
! 220: an address from range 192.168.1.0/24 then the command below enables ospf
! 221: on this interface so router can provide network information to the other
! 222: ospf routers via this interface.
! 223:
! 224: @example
! 225: @group
! 226: router ospf
! 227: network 192.168.1.0/24 area 0.0.0.0
! 228: @end group
! 229: @end example
! 230:
! 231: Prefix length in interface must be equal or bigger (ie. smaller network) than
! 232: prefix length in network statement. For example statement above doesn't enable
! 233: ospf on interface with address 192.168.1.1/23, but it does on interface with
! 234: address 192.168.1.129/25.
! 235:
! 236: Note that the behavior when there is a peer address
! 237: defined on an interface changed after release 0.99.7.
! 238: Currently, if a peer prefix has been configured,
! 239: then we test whether the prefix in the network command contains
! 240: the destination prefix. Otherwise, we test whether the network command prefix
! 241: contains the local address prefix of the interface.
! 242: @end deffn
! 243:
! 244: @node OSPF area
! 245: @section OSPF area
! 246:
! 247: @deffn {OSPF Command} {area @var{a.b.c.d} range @var{a.b.c.d/m}} {}
! 248: @deffnx {OSPF Command} {area <0-4294967295> range @var{a.b.c.d/m}} {}
! 249: @deffnx {OSPF Command} {no area @var{a.b.c.d} range @var{a.b.c.d/m}} {}
! 250: @deffnx {OSPF Command} {no area <0-4294967295> range @var{a.b.c.d/m}} {}
! 251: Summarize intra area paths from specified area into one Type-3 summary-LSA
! 252: announced to other areas. This command can be used only in ABR and ONLY
! 253: router-LSAs (Type-1) and network-LSAs (Type-2) (ie. LSAs with scope area) can
! 254: be summarized. Type-5 AS-external-LSAs can't be summarized - their scope is AS.
! 255: Summarizing Type-7 AS-external-LSAs isn't supported yet by Quagga.
! 256:
! 257: @example
! 258: @group
! 259: router ospf
! 260: network 192.168.1.0/24 area 0.0.0.0
! 261: network 10.0.0.0/8 area 0.0.0.10
! 262: area 0.0.0.10 range 10.0.0.0/8
! 263: @end group
! 264: @end example
! 265:
! 266: With configuration above one Type-3 Summary-LSA with routing info 10.0.0.0/8 is
! 267: announced into backbone area if area 0.0.0.10 contains at least one intra-area
! 268: network (ie. described with router or network LSA) from this range.
! 269: @end deffn
! 270:
! 271: @deffn {OSPF Command} {area @var{a.b.c.d} range IPV4_PREFIX not-advertise} {}
! 272: @deffnx {OSPF Command} {no area @var{a.b.c.d} range IPV4_PREFIX not-advertise} {}
! 273: Instead of summarizing intra area paths filter them - ie. intra area paths from this
! 274: range are not advertised into other areas.
! 275: This command makes sense in ABR only.
! 276: @end deffn
! 277:
! 278: @deffn {OSPF Command} {area @var{a.b.c.d} range IPV4_PREFIX substitute IPV4_PREFIX} {}
! 279: @deffnx {OSPF Command} {no area @var{a.b.c.d} range IPV4_PREFIX substitute IPV4_PREFIX} {}
! 280: Substitute summarized prefix with another prefix.
! 281:
! 282: @example
! 283: @group
! 284: router ospf
! 285: network 192.168.1.0/24 area 0.0.0.0
! 286: network 10.0.0.0/8 area 0.0.0.10
! 287: area 0.0.0.10 range 10.0.0.0/8 substitute 11.0.0.0/8
! 288: @end group
! 289: @end example
! 290:
! 291: One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced into backbone area if
! 292: area 0.0.0.10 contains at least one intra-area network (ie. described with router-LSA or
! 293: network-LSA) from range 10.0.0.0/8.
! 294: This command makes sense in ABR only.
! 295: @end deffn
! 296:
! 297: @deffn {OSPF Command} {area @var{a.b.c.d} virtual-link @var{a.b.c.d}} {}
! 298: @deffnx {OSPF Command} {area <0-4294967295> virtual-link @var{a.b.c.d}} {}
! 299: @deffnx {OSPF Command} {no area @var{a.b.c.d} virtual-link @var{a.b.c.d}} {}
! 300: @deffnx {OSPF Command} {no area <0-4294967295> virtual-link @var{a.b.c.d}} {}
! 301: @anchor{OSPF virtual-link}
! 302: @end deffn
! 303:
! 304: @deffn {OSPF Command} {area @var{a.b.c.d} shortcut} {}
! 305: @deffnx {OSPF Command} {area <0-4294967295> shortcut} {}
! 306: @deffnx {OSPF Command} {no area @var{a.b.c.d} shortcut} {}
! 307: @deffnx {OSPF Command} {no area <0-4294967295> shortcut} {}
! 308: Configure the area as Shortcut capable. See @cite{RFC3509}. This requires
! 309: that the 'abr-type' be set to 'shortcut'.
! 310: @end deffn
! 311:
! 312: @deffn {OSPF Command} {area @var{a.b.c.d} stub} {}
! 313: @deffnx {OSPF Command} {area <0-4294967295> stub} {}
! 314: @deffnx {OSPF Command} {no area @var{a.b.c.d} stub} {}
! 315: @deffnx {OSPF Command} {no area <0-4294967295> stub} {}
! 316: Configure the area to be a stub area. That is, an area where no router
! 317: originates routes external to OSPF and hence an area where all external
! 318: routes are via the ABR(s). Hence, ABRs for such an area do not need
! 319: to pass AS-External LSAs (type-5s) or ASBR-Summary LSAs (type-4) into the
! 320: area. They need only pass Network-Summary (type-3) LSAs into such an area,
! 321: along with a default-route summary.
! 322: @end deffn
! 323:
! 324: @deffn {OSPF Command} {area @var{a.b.c.d} stub no-summary} {}
! 325: @deffnx {OSPF Command} {area <0-4294967295> stub no-summary} {}
! 326: @deffnx {OSPF Command} {no area @var{a.b.c.d} stub no-summary} {}
! 327: @deffnx {OSPF Command} {no area <0-4294967295> stub no-summary} {}
! 328: Prevents an @command{ospfd} ABR from injecting inter-area
! 329: summaries into the specified stub area.
! 330: @end deffn
! 331:
! 332: @deffn {OSPF Command} {area @var{a.b.c.d} default-cost <0-16777215>} {}
! 333: @deffnx {OSPF Command} {no area @var{a.b.c.d} default-cost <0-16777215>} {}
! 334: Set the cost of default-summary LSAs announced to stubby areas.
! 335: @end deffn
! 336:
! 337: @deffn {OSPF Command} {area @var{a.b.c.d} export-list NAME} {}
! 338: @deffnx {OSPF Command} {area <0-4294967295> export-list NAME} {}
! 339: @deffnx {OSPF Command} {no area @var{a.b.c.d} export-list NAME} {}
! 340: @deffnx {OSPF Command} {no area <0-4294967295> export-list NAME} {}
! 341: Filter Type-3 summary-LSAs announced to other areas originated from intra-
! 342: area paths from specified area.
! 343:
! 344: @example
! 345: @group
! 346: router ospf
! 347: network 192.168.1.0/24 area 0.0.0.0
! 348: network 10.0.0.0/8 area 0.0.0.10
! 349: area 0.0.0.10 export-list foo
! 350: !
! 351: access-list foo permit 10.10.0.0/16
! 352: access-list foo deny any
! 353: @end group
! 354: @end example
! 355:
! 356: With example above any intra-area paths from area 0.0.0.10 and from range
! 357: 10.10.0.0/16 (for example 10.10.1.0/24 and 10.10.2.128/30) are announced into
! 358: other areas as Type-3 summary-LSA's, but any others (for example 10.11.0.0/16
! 359: or 10.128.30.16/30) aren't.
! 360:
! 361: This command is only relevant if the router is an ABR for the specified
! 362: area.
! 363: @end deffn
! 364:
! 365: @deffn {OSPF Command} {area @var{a.b.c.d} import-list NAME} {}
! 366: @deffnx {OSPF Command} {area <0-4294967295> import-list NAME} {}
! 367: @deffnx {OSPF Command} {no area @var{a.b.c.d} import-list NAME} {}
! 368: @deffnx {OSPF Command} {no area <0-4294967295> import-list NAME} {}
! 369: Same as export-list, but it applies to paths announced into specified area as
! 370: Type-3 summary-LSAs.
! 371: @end deffn
! 372:
! 373: @deffn {OSPF Command} {area @var{a.b.c.d} filter-list prefix NAME in} {}
! 374: @deffnx {OSPF Command} {area @var{a.b.c.d} filter-list prefix NAME out} {}
! 375: @deffnx {OSPF Command} {area <0-4294967295> filter-list prefix NAME in} {}
! 376: @deffnx {OSPF Command} {area <0-4294967295> filter-list prefix NAME out} {}
! 377: @deffnx {OSPF Command} {no area @var{a.b.c.d} filter-list prefix NAME in} {}
! 378: @deffnx {OSPF Command} {no area @var{a.b.c.d} filter-list prefix NAME out} {}
! 379: @deffnx {OSPF Command} {no area <0-4294967295> filter-list prefix NAME in} {}
! 380: @deffnx {OSPF Command} {no area <0-4294967295> filter-list prefix NAME out} {}
! 381: Filtering Type-3 summary-LSAs to/from area using prefix lists. This command
! 382: makes sense in ABR only.
! 383: @end deffn
! 384:
! 385: @deffn {OSPF Command} {area @var{a.b.c.d} authentication} {}
! 386: @deffnx {OSPF Command} {area <0-4294967295> authentication} {}
! 387: @deffnx {OSPF Command} {no area @var{a.b.c.d} authentication} {}
! 388: @deffnx {OSPF Command} {no area <0-4294967295> authentication} {}
! 389: Specify that simple password authentication should be used for the given
! 390: area.
! 391: @end deffn
! 392:
! 393: @deffn {OSPF Command} {area @var{a.b.c.d} authentication message-digest} {}
! 394: @deffnx {OSPF Command} {area <0-4294967295> authentication message-digest} {}
! 395:
! 396: @anchor{area authentication message-digest}Specify that OSPF packets
! 397: must be authenticated with MD5 HMACs within the given area. Keying
! 398: material must also be configured on a per-interface basis (@pxref{ip
! 399: ospf message-digest-key}).
! 400:
! 401: MD5 authentication may also be configured on a per-interface basis
! 402: (@pxref{ip ospf authentication message-digest}). Such per-interface
! 403: settings will override any per-area authentication setting.
! 404: @end deffn
! 405:
! 406: @node OSPF interface
! 407: @section OSPF interface
! 408:
! 409: @deffn {Interface Command} {ip ospf authentication-key @var{AUTH_KEY}} {}
! 410: @deffnx {Interface Command} {no ip ospf authentication-key} {}
! 411: Set OSPF authentication key to a simple password. After setting @var{AUTH_KEY},
! 412: all OSPF packets are authenticated. @var{AUTH_KEY} has length up to 8 chars.
! 413:
! 414: Simple text password authentication is insecure and deprecated in favour of
! 415: MD5 HMAC authentication (@pxref{ip ospf authentication message-digest}).
! 416: @end deffn
! 417:
! 418: @deffn {Interface Command} {ip ospf authentication message-digest} {}
! 419: @anchor{ip ospf authentication message-digest}Specify that MD5 HMAC
! 420: authentication must be used on this interface. MD5 keying material must
! 421: also be configured (@pxref{ip ospf message-digest-key}). Overrides any
! 422: authentication enabled on a per-area basis (@pxref{area
! 423: authentication message-digest}).
! 424:
! 425: Note that OSPF MD5 authentication requires that time never go backwards
! 426: (correct time is NOT important, only that it never goes backwards), even
! 427: across resets, if ospfd is to be able to promptly reestabish adjacencies
! 428: with its neighbours after restarts/reboots. The host should have system
! 429: time be set at boot from an external or non-volatile source (eg battery backed clock, NTP,
! 430: etc.) or else the system clock should be periodically saved to non-volative
! 431: storage and restored at boot if MD5 authentication is to be expected to work
! 432: reliably.
! 433: @end deffn
! 434:
! 435: @deffn {Interface Command} {ip ospf message-digest-key KEYID md5 KEY} {}
! 436: @deffnx {Interface Command} {no ip ospf message-digest-key} {}
! 437: @anchor{ip ospf message-digest-key}Set OSPF authentication key to a
! 438: cryptographic password. The cryptographic algorithm is MD5.
! 439:
! 440: KEYID identifies secret key used to create the message digest. This ID
! 441: is part of the protocol and must be consistent across routers on a
! 442: link.
! 443:
! 444: KEY is the actual message digest key, of up to 16 chars (larger strings
! 445: will be truncated), and is associated with the given KEYID.
! 446: @end deffn
! 447:
! 448: @deffn {Interface Command} {ip ospf cost <1-65535>} {}
! 449: @deffnx {Interface Command} {no ip ospf cost} {}
! 450: Set link cost for the specified interface. The cost value is set to router-LSA's
! 451: metric field and used for SPF calculation.
! 452: @end deffn
! 453:
! 454: @deffn {Interface Command} {ip ospf dead-interval <1-65535>} {}
! 455: @deffnx {Interface Command} {ip ospf dead-interval minimal hello-multiplier <2-20>} {}
! 456: @deffnx {Interface Command} {no ip ospf dead-interval} {}
! 457: @anchor{ip ospf dead-interval minimal} Set number of seconds for
! 458: RouterDeadInterval timer value used for Wait Timer and Inactivity
! 459: Timer. This value must be the same for all routers attached to a
! 460: common network. The default value is 40 seconds.
! 461:
! 462: If 'minimal' is specified instead, then the dead-interval is set to 1
! 463: second and one must specify a hello-multiplier. The hello-multiplier
! 464: specifies how many Hellos to send per second, from 2 (every 500ms) to
! 465: 20 (every 50ms). Thus one can have 1s convergence time for OSPF. If this form
! 466: is specified, then the hello-interval advertised in Hello packets is set to
! 467: 0 and the hello-interval on received Hello packets is not checked, thus
! 468: the hello-multiplier need NOT be the same across multiple routers on a common
! 469: link.
! 470: @end deffn
! 471:
! 472: @deffn {Interface Command} {ip ospf hello-interval <1-65535>} {}
! 473: @deffnx {Interface Command} {no ip ospf hello-interval} {}
! 474: Set number of seconds for HelloInterval timer value. Setting this value,
! 475: Hello packet will be sent every timer value seconds on the specified interface.
! 476: This value must be the same for all routers attached to a common network.
! 477: The default value is 10 seconds.
! 478:
! 479: This command has no effect if @ref{ip ospf dead-interval minimal} is also
! 480: specified for the interface.
! 481: @end deffn
! 482:
! 483: @deffn {Interface Command} {ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)} {}
! 484: @deffnx {Interface Command} {no ip ospf network} {}
! 485: Set explicitly network type for specifed interface.
! 486: @end deffn
! 487:
! 488: @deffn {Interface Command} {ip ospf priority <0-255>} {}
! 489: @deffnx {Interface Command} {no ip ospf priority} {}
! 490: Set RouterPriority integer value. The router with the highest priority
! 491: will be more eligible to become Designated Router. Setting the value
! 492: to 0, makes the router ineligible to become Designated Router. The
! 493: default value is 1.
! 494: @end deffn
! 495:
! 496: @deffn {Interface Command} {ip ospf retransmit-interval <1-65535>} {}
! 497: @deffnx {Interface Command} {no ip ospf retransmit interval} {}
! 498: Set number of seconds for RxmtInterval timer value. This value is used
! 499: when retransmitting Database Description and Link State Request packets.
! 500: The default value is 5 seconds.
! 501: @end deffn
! 502:
! 503: @deffn {Interface Command} {ip ospf transmit-delay} {}
! 504: @deffnx {Interface Command} {no ip ospf transmit-delay} {}
! 505: Set number of seconds for InfTransDelay value. LSAs' age should be
! 506: incremented by this value when transmitting.
! 507: The default value is 1 seconds.
! 508: @end deffn
! 509:
! 510: @node Redistribute routes to OSPF
! 511: @section Redistribute routes to OSPF
! 512:
! 513: @deffn {OSPF Command} {redistribute (kernel|connected|static|rip|bgp)} {}
! 514: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) @var{route-map}} {}
! 515: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)} {}
! 516: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map @var{word}} {}
! 517: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric <0-16777214>} {}
! 518: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric <0-16777214> route-map @var{word}} {}
! 519: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214>} {}
! 520: @deffnx {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric <0-16777214> route-map @var{word}} {}
! 521: @deffnx {OSPF Command} {no redistribute (kernel|connected|static|rip|bgp)} {}
! 522: @anchor{OSPF redistribute}Redistribute routes of the specified protocol
! 523: or kind into OSPF, with the metric type and metric set if specified,
! 524: filtering the routes using the given route-map if specified.
! 525: Redistributed routes may also be filtered with distribute-lists, see
! 526: @ref{ospf distribute-list}.
! 527:
! 528: Redistributed routes are distributed as into OSPF as Type-5 External
! 529: LSAs into links to areas that accept external routes, Type-7 External LSAs
! 530: for NSSA areas and are not redistributed at all into Stub areas, where
! 531: external routes are not permitted.
! 532:
! 533: Note that for connected routes, one may instead use
! 534: @dfn{passive-interface}, see @ref{OSPF passive-interface}.
! 535: @end deffn
! 536:
! 537: @deffn {OSPF Command} {default-information originate} {}
! 538: @deffnx {OSPF Command} {default-information originate metric <0-16777214>} {}
! 539: @deffnx {OSPF Command} {default-information originate metric <0-16777214> metric-type (1|2)} {}
! 540: @deffnx {OSPF Command} {default-information originate metric <0-16777214> metric-type (1|2) route-map @var{word}} {}
! 541: @deffnx {OSPF Command} {default-information originate always} {}
! 542: @deffnx {OSPF Command} {default-information originate always metric <0-16777214>} {}
! 543: @deffnx {OSPF Command} {default-information originate always metric <0-16777214> metric-type (1|2)} {}
! 544: @deffnx {OSPF Command} {default-information originate always metric <0-16777214> metric-type (1|2) route-map @var{word}} {}
! 545: @deffnx {OSPF Command} {no default-information originate} {}
! 546: Originate an AS-External (type-5) LSA describing a default route into
! 547: all external-routing capable areas, of the specified metric and metric
! 548: type. If the 'always' keyword is given then the default is always
! 549: advertised, even when there is no default present in the routing table.
! 550: @end deffn
! 551:
! 552: @deffn {OSPF Command} {distribute-list NAME out (kernel|connected|static|rip|ospf} {}
! 553: @deffnx {OSPF Command} {no distribute-list NAME out (kernel|connected|static|rip|ospf} {}
! 554: @anchor{ospf distribute-list}Apply the access-list filter, NAME, to
! 555: redistributed routes of the given type before allowing the routes to
! 556: redistributed into OSPF (@pxref{OSPF redistribute}).
! 557: @end deffn
! 558:
! 559: @deffn {OSPF Command} {default-metric <0-16777214>} {}
! 560: @deffnx {OSPF Command} {no default-metric} {}
! 561: @end deffn
! 562:
! 563: @deffn {OSPF Command} {distance <1-255>} {}
! 564: @deffnx {OSPF Command} {no distance <1-255>} {}
! 565: @end deffn
! 566:
! 567: @deffn {OSPF Command} {distance ospf (intra-area|inter-area|external) <1-255>} {}
! 568: @deffnx {OSPF Command} {no distance ospf} {}
! 569: @end deffn
! 570:
! 571: @deffn {Command} {router zebra} {}
! 572: @deffnx {Command} {no router zebra} {}
! 573: @end deffn
! 574:
! 575: @node Showing OSPF information
! 576: @section Showing OSPF information
! 577:
! 578: @deffn {Command} {show ip ospf} {}
! 579: @anchor{show ip ospf}Show information on a variety of general OSPF and
! 580: area state and configuration information.
! 581: @end deffn
! 582:
! 583: @deffn {Command} {show ip ospf interface [INTERFACE]} {}
! 584: Show state and configuration of OSPF the specified interface, or all
! 585: interfaces if no interface is given.
! 586: @end deffn
! 587:
! 588: @deffn {Command} {show ip ospf neighbor} {}
! 589: @deffnx {Command} {show ip ospf neighbor INTERFACE} {}
! 590: @deffnx {Command} {show ip ospf neighbor detail} {}
! 591: @deffnx {Command} {show ip ospf neighbor INTERFACE detail} {}
! 592: @end deffn
! 593:
! 594: @deffn {Command} {show ip ospf database} {}
! 595: @end deffn
! 596:
! 597: @deffn {Command} {show ip ospf database (asbr-summary|external|network|router|summary)} {}
! 598: @deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) @var{link-state-id}} {}
! 599: @deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) @var{link-state-id} adv-router @var{adv-router}} {}
! 600: @deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) adv-router @var{adv-router}} {}
! 601: @deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) @var{link-state-id} self-originate} {}
! 602: @deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) self-originate} {}
! 603: @end deffn
! 604:
! 605: @deffn {Command} {show ip ospf database max-age} {}
! 606: @end deffn
! 607:
! 608: @deffn {Command} {show ip ospf database self-originate} {}
! 609: @end deffn
! 610:
! 611: @deffn {Command} {show ip ospf route} {}
! 612: Show the OSPF routing table, as determined by the most recent SPF calculation.
! 613: @end deffn
! 614:
! 615: @node Debugging OSPF
! 616: @section Debugging OSPF
! 617:
! 618: @deffn {Command} {debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {}
! 619: @deffnx {Command} {no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {}
! 620: @end deffn
! 621:
! 622: @deffn {Command} {debug ospf ism} {}
! 623: @deffnx {Command} {debug ospf ism (status|events|timers)} {}
! 624: @deffnx {Command} {no debug ospf ism} {}
! 625: @deffnx {Command} {no debug ospf ism (status|events|timers)} {}
! 626: @end deffn
! 627:
! 628: @deffn {Command} {debug ospf nsm} {}
! 629: @deffnx {Command} {debug ospf nsm (status|events|timers)} {}
! 630: @deffnx {Command} {no debug ospf nsm} {}
! 631: @deffnx {Command} {no debug ospf nsm (status|events|timers)} {}
! 632: @end deffn
! 633:
! 634: @deffn {Command} {debug ospf lsa} {}
! 635: @deffnx {Command} {debug ospf lsa (generate|flooding|refresh)} {}
! 636: @deffnx {Command} {no debug ospf lsa} {}
! 637: @deffnx {Command} {no debug ospf lsa (generate|flooding|refresh)} {}
! 638: @end deffn
! 639:
! 640: @deffn {Command} {debug ospf zebra} {}
! 641: @deffnx {Command} {debug ospf zebra (interface|redistribute)} {}
! 642: @deffnx {Command} {no debug ospf zebra} {}
! 643: @deffnx {Command} {no debug ospf zebra (interface|redistribute)} {}
! 644: @end deffn
! 645:
! 646: @deffn {Command} {show debugging ospf} {}
! 647: @end deffn
! 648:
! 649: @node OSPF Configuration Examples
! 650: @section OSPF Configuration Examples
! 651: A simple example, with MD5 authentication enabled:
! 652:
! 653: @example
! 654: @group
! 655: !
! 656: interface bge0
! 657: ip ospf authentication message-digest
! 658: ip ospf message-digest-key 1 md5 ABCDEFGHIJK
! 659: !
! 660: router ospf
! 661: network 192.168.0.0/16 area 0.0.0.1
! 662: area 0.0.0.1 authentication message-digest
! 663: @end group
! 664: @end example
! 665:
! 666: An @acronym{ABR} router, with MD5 authentication and performing summarisation
! 667: of networks between the areas:
! 668:
! 669: @example
! 670: @group
! 671: !
! 672: password ABCDEF
! 673: log file /var/log/quagga/ospfd.log
! 674: service advanced-vty
! 675: !
! 676: interface eth0
! 677: ip ospf authentication message-digest
! 678: ip ospf message-digest-key 1 md5 ABCDEFGHIJK
! 679: !
! 680: interface ppp0
! 681: !
! 682: interface br0
! 683: ip ospf authentication message-digest
! 684: ip ospf message-digest-key 2 md5 XYZ12345
! 685: !
! 686: router ospf
! 687: ospf router-id 192.168.0.1
! 688: redistribute connected
! 689: passive interface ppp0
! 690: network 192.168.0.0/24 area 0.0.0.0
! 691: network 10.0.0.0/16 area 0.0.0.0
! 692: network 192.168.1.0/24 area 0.0.0.1
! 693: area 0.0.0.0 authentication message-digest
! 694: area 0.0.0.0 range 10.0.0.0/16
! 695: area 0.0.0.0 range 192.168.0.0/24
! 696: area 0.0.0.1 authentication message-digest
! 697: area 0.0.0.1 range 10.2.0.0/16
! 698: !
! 699: @end group
! 700: @end example
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>