1@cindex OSPFv2 2@node OSPFv2 3@chapter OSPFv2 4 5@acronym{OSPF,Open Shortest Path First} version 2 is a routing protocol 6which 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 9convergence times. OSPF is widely used in large networks such as 10@acronym{ISP,Internet Service Provider} backbone and enterprise 11networks. 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 27There are no @command{ospfd} specific options. Common options can be 28specified (@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 31running before invoking @command{ospfd}. Also, if @command{zebra} is 32restarted then @command{ospfd} must be too. 33 34Like other daemons, @command{ospfd} configuration is done in @acronym{OSPF} 35specific configuration file @file{ospfd.conf}. 36 37@node OSPF router 38@section OSPF router 39 40To start OSPF process you have to specify the OSPF router. As of this 41writing, @command{ospfd} does not support multiple OSPF processes. 42 43@deffn Command {router ospf} {} 44@deffnx Command {no router ospf} {} 45Enable or disable the OSPF process. @command{ospfd} does not yet 46support multiple OSPF processes. So you can not specify an OSPF process 47number. 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 53router-ID may be an IP address of the router, but need not be - it can 54be any arbitrary 32bit number. However it MUST be unique within the 55entire OSPF domain to the OSPF speaker - bad things will happen if 56multiple OSPF speakers are configured with the same router-ID! If one 57is not specified then @command{ospfd} will obtain a router-ID 58automatically 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 64are equivalent. 65 66The OSPF standard for ABR behaviour does not allow an ABR to consider 67routes through non-backbone areas when its links to the backbone are 68down, even when there are other ABRs in attached non-backbone areas 69which still can reach the backbone - this restriction exists primarily 70to ensure routing-loops are avoided. 71 72With the "Cisco" or "IBM" ABR type, the default in this release of 73Quagga, this restriction is lifted, allowing an ABR to consider 74summaries learnt from other ABRs through non-backbone areas, and hence 75route via non-backbone areas as a last resort when, and only when, 76backbone links are down. 77 78Note that areas with fully-adjacent virtual-links are considered to be 79"transit capable" and can always be used to route backbone traffic, and 80hence are unaffected by this setting (@pxref{OSPF virtual-link}). 81 82More information regarding the behaviour controlled by this command can 83be found in @cite{RFC 3509, Alternative Implementations of OSPF Area 84Border Routers}, and @cite{draft-ietf-ospf-shortcut-abr-02.txt}. 85 86Quote: "Though the definition of the @acronym{ABR,Area Border Router} 87in the OSPF specification does not require a router with multiple 88attached areas to have a backbone connection, it is actually 89necessary to provide successful routing to the inter-area and 90external destinations. If this requirement is not met, all traffic 91destined for the areas not connected to such an ABR or out of the 92OSPF domain, is dropped. This document describes alternative ABR 93behaviors 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 99to section G.2 (changes) in section 16.4 a change to the path 100preference algorithm that prevents possible routing loops that were 101possible in the old version of OSPFv2. More specifically it demands 102that inter-area paths and intra-area backbone path are now of equal preference 103but still both preferred to external paths. 104 105This 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]} {} 110Configures ospfd to log changes in adjacency. With the optional 111detail argument, all changes in adjacency status are shown. Without detail, 112only 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 118given interface, but do advertise the interface as a stub link in the 119router-@acronym{LSA,Link State Advertisement} for this router. This 120allows one to advertise addresses on such connected interfaces without 121having to originate AS-External/Type-5 LSAs (which have global flooding 122scope) - as would occur if connected addresses were redistributed into 123OSPF (@pxref{Redistribute routes to OSPF})@. This is the only way to 124advertise 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} {} 129This command sets the initial @var{delay}, the @var{initial-holdtime} 130and the @var{maximum-holdtime} between when SPF is calculated and the 131event which triggered the calculation. The times are specified in 132milliseconds and must be in the range of 0 to 600000 milliseconds. 133 134The @var{delay} specifies the minimum amount of time to delay SPF 135calculation (hence it affects how long SPF calculation is delayed after 136an event which occurs outside of the holdtime of any previous SPF 137calculation, and also serves as a minimum holdtime). 138 139Consecutive SPF calculations will always be seperated by at least 140'hold-time' milliseconds. The hold-time is adaptive and initially is 141set to the @var{initial-holdtime} configured with the above command. 142Events which occur within the holdtime of the previous SPF calculation 143will cause the holdtime to be increased by @var{initial-holdtime}, bounded 144by the @var{maximum-holdtime} configured with this command. If the adaptive 145hold-time elapses without any SPF-triggering event occuring then 146the current holdtime is reset to the @var{initial-holdtime}. The current 147holdtime can be viewed with @ref{show ip ospf}, where it is expressed as 148a multiplier of the @var{initial-holdtime}. 149 150@example 151@group 152router ospf 153 timers throttle spf 200 400 10000 154@end group 155@end example 156 157In this example, the @var{delay} is set to 200ms, the @var{initial 158holdtime} is set to 400ms and the @var{maximum holdtime} to 10s. Hence 159there will always be at least 200ms between an event which requires SPF 160calculation and the actual SPF calculation. Further consecutive SPF 161calculations will always be seperated by between 400ms to 10s, the 162hold-time increasing by 400ms each time an SPF-triggering event occurs 163within the hold-time of the previous SPF calculation. 164 165This command supercedes the @command{timers spf} command in previous Quagga 166releases. 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]} {} 172This enables @cite{RFC3137, OSPF Stub Router Advertisement} support, 173where the OSPF process describes its transit links in its router-LSA as 174having infinite distance so that other routers will avoid calculating 175transit paths through the router while still being able to reach 176networks through the router. 177 178This support may be enabled administratively (and indefinitely) or 179conditionally. Conditional enabling of max-metric router-lsas can be 180for a period of seconds after startup and/or for a period of seconds 181prior to shutdown. 182 183Enabling this for a period after startup allows OSPF to converge fully 184first without affecting any existing routes used by other routers, 185while still allowing any connected stub links and/or redistributed 186routes to be reachable. Enabling this for a period of time in advance 187of shutdown allows the router to gracefully excuse itself from the OSPF 188domain. 189 190Enabling this feature administratively allows for administrative 191intervention for whatever reason, for an indefinite period of time. 192Note that if the configuration is written to file, this administrative 193form of the stub-router command will also be written to file. If 194@command{ospfd} is restarted later, the command will then take effect 195until manually deconfigured. 196 197Configured state of this feature as well as current status, such as the 198number of second remaining till on-startup or on-shutdown ends, can be 199viewed 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 205bandwidth for cost calculations, where this bandwidth is considered 206equivalent to an OSPF cost of 1, specified in Mbits/s. The default is 207100Mbit/s (i.e. a link of bandwidth 100Mbit/s or higher will have a 208cost of 1. Cost of lower bandwidth links will be scaled with reference 209to this cost). 210 211This configuration setting MUST be consistent across all routers within the 212OSPF 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>}} {} 219This command specifies the OSPF enabled interface(s). If the interface has 220an address from range 192.168.1.0/24 then the command below enables ospf 221on this interface so router can provide network information to the other 222ospf routers via this interface. 223 224@example 225@group 226router ospf 227 network 192.168.1.0/24 area 0.0.0.0 228@end group 229@end example 230 231Prefix length in interface must be equal or bigger (ie. smaller network) than 232prefix length in network statement. For example statement above doesn't enable 233ospf on interface with address 192.168.1.1/23, but it does on interface with 234address 192.168.1.129/25. 235 236Note that the behavior when there is a peer address 237defined on an interface changed after release 0.99.7. 238Currently, if a peer prefix has been configured, 239then we test whether the prefix in the network command contains 240the destination prefix. Otherwise, we test whether the network command prefix 241contains 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}} {} 251Summarize intra area paths from specified area into one Type-3 summary-LSA 252announced to other areas. This command can be used only in ABR and ONLY 253router-LSAs (Type-1) and network-LSAs (Type-2) (ie. LSAs with scope area) can 254be summarized. Type-5 AS-external-LSAs can't be summarized - their scope is AS. 255Summarizing Type-7 AS-external-LSAs isn't supported yet by Quagga. 256 257@example 258@group 259router 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 266With configuration above one Type-3 Summary-LSA with routing info 10.0.0.0/8 is 267announced into backbone area if area 0.0.0.10 contains at least one intra-area 268network (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} {} 273Instead of summarizing intra area paths filter them - ie. intra area paths from this 274range are not advertised into other areas. 275This 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} {} 280Substitute summarized prefix with another prefix. 281 282@example 283@group 284router 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 291One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced into backbone area if 292area 0.0.0.10 contains at least one intra-area network (ie. described with router-LSA or 293network-LSA) from range 10.0.0.0/8. 294This 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} {} 308Configure the area as Shortcut capable. See @cite{RFC3509}. This requires 309that 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} {} 316Configure the area to be a stub area. That is, an area where no router 317originates routes external to OSPF and hence an area where all external 318routes are via the ABR(s). Hence, ABRs for such an area do not need 319to pass AS-External LSAs (type-5s) or ASBR-Summary LSAs (type-4) into the 320area. They need only pass Network-Summary (type-3) LSAs into such an area, 321along 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} {} 328Prevents an @command{ospfd} ABR from injecting inter-area 329summaries 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>} {} 334Set 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} {} 341Filter Type-3 summary-LSAs announced to other areas originated from intra- 342area paths from specified area. 343 344@example 345@group 346router 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! 351access-list foo permit 10.10.0.0/16 352access-list foo deny any 353@end group 354@end example 355 356With example above any intra-area paths from area 0.0.0.10 and from range 35710.10.0.0/16 (for example 10.10.1.0/24 and 10.10.2.128/30) are announced into 358other areas as Type-3 summary-LSA's, but any others (for example 10.11.0.0/16 359or 10.128.30.16/30) aren't. 360 361This command is only relevant if the router is an ABR for the specified 362area. 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} {} 369Same as export-list, but it applies to paths announced into specified area as 370Type-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} {} 381Filtering Type-3 summary-LSAs to/from area using prefix lists. This command 382makes 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} {} 389Specify that simple password authentication should be used for the given 390area. 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 397must be authenticated with MD5 HMACs within the given area. Keying 398material must also be configured on a per-interface basis (@pxref{ip 399ospf message-digest-key}). 400 401MD5 authentication may also be configured on a per-interface basis 402(@pxref{ip ospf authentication message-digest}). Such per-interface 403settings 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} {} 411Set OSPF authentication key to a simple password. After setting @var{AUTH_KEY}, 412all OSPF packets are authenticated. @var{AUTH_KEY} has length up to 8 chars. 413 414Simple text password authentication is insecure and deprecated in favour of 415MD5 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 420authentication must be used on this interface. MD5 keying material must 421also be configured (@pxref{ip ospf message-digest-key}). Overrides any 422authentication enabled on a per-area basis (@pxref{area 423authentication message-digest}). 424 425Note that OSPF MD5 authentication requires that time never go backwards 426(correct time is NOT important, only that it never goes backwards), even 427across resets, if ospfd is to be able to promptly reestabish adjacencies 428with its neighbours after restarts/reboots. The host should have system 429time be set at boot from an external or non-volatile source (eg battery backed clock, NTP, 430etc.) or else the system clock should be periodically saved to non-volative 431storage and restored at boot if MD5 authentication is to be expected to work 432reliably. 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 438cryptographic password. The cryptographic algorithm is MD5. 439 440KEYID identifies secret key used to create the message digest. This ID 441is part of the protocol and must be consistent across routers on a 442link. 443 444KEY is the actual message digest key, of up to 16 chars (larger strings 445will 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} {} 450Set link cost for the specified interface. The cost value is set to router-LSA's 451metric 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 458RouterDeadInterval timer value used for Wait Timer and Inactivity 459Timer. This value must be the same for all routers attached to a 460common network. The default value is 40 seconds. 461 462If 'minimal' is specified instead, then the dead-interval is set to 1 463second and one must specify a hello-multiplier. The hello-multiplier 464specifies how many Hellos to send per second, from 2 (every 500ms) to 46520 (every 50ms). Thus one can have 1s convergence time for OSPF. If this form 466is specified, then the hello-interval advertised in Hello packets is set to 4670 and the hello-interval on received Hello packets is not checked, thus 468the hello-multiplier need NOT be the same across multiple routers on a common 469link. 470@end deffn 471 472@deffn {Interface Command} {ip ospf hello-interval <1-65535>} {} 473@deffnx {Interface Command} {no ip ospf hello-interval} {} 474Set number of seconds for HelloInterval timer value. Setting this value, 475Hello packet will be sent every timer value seconds on the specified interface. 476This value must be the same for all routers attached to a common network. 477The default value is 10 seconds. 478 479This command has no effect if @ref{ip ospf dead-interval minimal} is also 480specified 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} {} 485Set 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} {} 490Set RouterPriority integer value. The router with the highest priority 491will be more eligible to become Designated Router. Setting the value 492to 0, makes the router ineligible to become Designated Router. The 493default 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} {} 498Set number of seconds for RxmtInterval timer value. This value is used 499when retransmitting Database Description and Link State Request packets. 500The 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} {} 505Set number of seconds for InfTransDelay value. LSAs' age should be 506incremented by this value when transmitting. 507The 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 523or kind into OSPF, with the metric type and metric set if specified, 524filtering the routes using the given route-map if specified. 525Redistributed routes may also be filtered with distribute-lists, see 526@ref{ospf distribute-list}. 527 528Redistributed routes are distributed as into OSPF as Type-5 External 529LSAs into links to areas that accept external routes, Type-7 External LSAs 530for NSSA areas and are not redistributed at all into Stub areas, where 531external routes are not permitted. 532 533Note 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} {} 546Originate an AS-External (type-5) LSA describing a default route into 547all external-routing capable areas, of the specified metric and metric 548type. If the 'always' keyword is given then the default is always 549advertised, 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 555redistributed routes of the given type before allowing the routes to 556redistributed 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@node Showing OSPF information 572@section Showing OSPF information 573 574@deffn {Command} {show ip ospf} {} 575@anchor{show ip ospf}Show information on a variety of general OSPF and 576area state and configuration information. 577@end deffn 578 579@deffn {Command} {show ip ospf interface [INTERFACE]} {} 580Show state and configuration of OSPF the specified interface, or all 581interfaces if no interface is given. 582@end deffn 583 584@deffn {Command} {show ip ospf neighbor} {} 585@deffnx {Command} {show ip ospf neighbor INTERFACE} {} 586@deffnx {Command} {show ip ospf neighbor detail} {} 587@deffnx {Command} {show ip ospf neighbor INTERFACE detail} {} 588@end deffn 589 590@deffn {Command} {show ip ospf database} {} 591@end deffn 592 593@deffn {Command} {show ip ospf database (asbr-summary|external|network|router|summary)} {} 594@deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) @var{link-state-id}} {} 595@deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) @var{link-state-id} adv-router @var{adv-router}} {} 596@deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) adv-router @var{adv-router}} {} 597@deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) @var{link-state-id} self-originate} {} 598@deffnx {Command} {show ip ospf database (asbr-summary|external|network|router|summary) self-originate} {} 599@end deffn 600 601@deffn {Command} {show ip ospf database max-age} {} 602@end deffn 603 604@deffn {Command} {show ip ospf database self-originate} {} 605@end deffn 606 607@deffn {Command} {show ip ospf route} {} 608Show the OSPF routing table, as determined by the most recent SPF calculation. 609@end deffn 610 611@node Debugging OSPF 612@section Debugging OSPF 613 614@deffn {Command} {debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {} 615@deffnx {Command} {no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {} 616@end deffn 617 618@deffn {Command} {debug ospf ism} {} 619@deffnx {Command} {debug ospf ism (status|events|timers)} {} 620@deffnx {Command} {no debug ospf ism} {} 621@deffnx {Command} {no debug ospf ism (status|events|timers)} {} 622@end deffn 623 624@deffn {Command} {debug ospf nsm} {} 625@deffnx {Command} {debug ospf nsm (status|events|timers)} {} 626@deffnx {Command} {no debug ospf nsm} {} 627@deffnx {Command} {no debug ospf nsm (status|events|timers)} {} 628@end deffn 629 630@deffn {Command} {debug ospf lsa} {} 631@deffnx {Command} {debug ospf lsa (generate|flooding|refresh)} {} 632@deffnx {Command} {no debug ospf lsa} {} 633@deffnx {Command} {no debug ospf lsa (generate|flooding|refresh)} {} 634@end deffn 635 636@deffn {Command} {debug ospf zebra} {} 637@deffnx {Command} {debug ospf zebra (interface|redistribute)} {} 638@deffnx {Command} {no debug ospf zebra} {} 639@deffnx {Command} {no debug ospf zebra (interface|redistribute)} {} 640@end deffn 641 642@deffn {Command} {show debugging ospf} {} 643@end deffn 644 645@node OSPF Configuration Examples 646@section OSPF Configuration Examples 647A simple example, with MD5 authentication enabled: 648 649@example 650@group 651! 652interface bge0 653 ip ospf authentication message-digest 654 ip ospf message-digest-key 1 md5 ABCDEFGHIJK 655! 656router ospf 657 network 192.168.0.0/16 area 0.0.0.1 658 area 0.0.0.1 authentication message-digest 659@end group 660@end example 661 662An @acronym{ABR} router, with MD5 authentication and performing summarisation 663of networks between the areas: 664 665@example 666@group 667! 668password ABCDEF 669log file /var/log/quagga/ospfd.log 670service advanced-vty 671! 672interface eth0 673 ip ospf authentication message-digest 674 ip ospf message-digest-key 1 md5 ABCDEFGHIJK 675! 676interface ppp0 677! 678interface br0 679 ip ospf authentication message-digest 680 ip ospf message-digest-key 2 md5 XYZ12345 681! 682router ospf 683 ospf router-id 192.168.0.1 684 redistribute connected 685 passive interface ppp0 686 network 192.168.0.0/24 area 0.0.0.0 687 network 10.0.0.0/16 area 0.0.0.0 688 network 192.168.1.0/24 area 0.0.0.1 689 area 0.0.0.0 authentication message-digest 690 area 0.0.0.0 range 10.0.0.0/16 691 area 0.0.0.0 range 192.168.0.0/24 692 area 0.0.0.1 authentication message-digest 693 area 0.0.0.1 range 10.2.0.0/16 694! 695@end group 696@end example 697