]>
Commit | Line | Data |
---|---|---|
42fc5d26 QY |
1 | .. _OSPFv2: |
2 | ||
3 | ****** | |
4 | OSPFv2 | |
5 | ****** | |
6 | ||
d50b2aa0 | 7 | :abbr:`OSPF (Open Shortest Path First)` version 2 is a routing protocol |
a4c53928 | 8 | which is described in :rfc:`2328`. OSPF is an |
d50b2aa0 QY |
9 | :abbr:`IGP (Interior Gateway Protocol)`. Compared with :abbr:`RIP`, |
10 | :abbr:`OSPF` can provide scalable network support and faster | |
42fc5d26 | 11 | convergence times. OSPF is widely used in large networks such as |
d50b2aa0 | 12 | :abbr:`ISP (Internet Service Provider)` backbone and enterprise |
42fc5d26 QY |
13 | networks. |
14 | ||
15 | @include ospf_fundamentals.texi | |
16 | ||
17 | .. _Configuring_ospfd: | |
18 | ||
19 | Configuring ospfd | |
20 | ================= | |
21 | ||
22 | There are no *ospfd* specific options. Common options can be | |
23 | specified (:ref:`Common_Invocation_Options`) to *ospfd*. | |
24 | *ospfd* needs to acquire interface information from | |
25 | *zebra* in order to function. Therefore *zebra* must be | |
26 | running before invoking *ospfd*. Also, if *zebra* is | |
27 | restarted then *ospfd* must be too. | |
28 | ||
d50b2aa0 | 29 | Like other daemons, *ospfd* configuration is done in :abbr:`OSPF` |
42fc5d26 QY |
30 | specific configuration file :file:`ospfd.conf`. |
31 | ||
32 | .. _OSPF_router: | |
33 | ||
34 | OSPF router | |
35 | =========== | |
36 | ||
37 | To start OSPF process you have to specify the OSPF router. As of this | |
38 | writing, *ospfd* does not support multiple OSPF processes. | |
39 | ||
40 | .. index:: Command {router ospf} {} | |
41 | ||
42 | Command {router ospf} {} | |
43 | .. index:: Command {no router ospf} {} | |
44 | ||
45 | Command {no router ospf} {} | |
46 | Enable or disable the OSPF process. *ospfd* does not yet | |
47 | support multiple OSPF processes. So you can not specify an OSPF process | |
48 | number. | |
49 | ||
50 | .. index:: {OSPF Command} {ospf router-id `a.b.c.d`} {} | |
51 | ||
52 | {OSPF Command} {ospf router-id `a.b.c.d`} {} | |
53 | .. index:: {OSPF Command} {no ospf router-id} {} | |
54 | ||
55 | {OSPF Command} {no ospf router-id} {} | |
56 | .. _ospf_router-id: | |
57 | ||
58 | This sets the router-ID of the OSPF process. The | |
59 | router-ID may be an IP address of the router, but need not be - it can | |
60 | be any arbitrary 32bit number. However it MUST be unique within the | |
61 | entire OSPF domain to the OSPF speaker - bad things will happen if | |
62 | multiple OSPF speakers are configured with the same router-ID! If one | |
63 | is not specified then *ospfd* will obtain a router-ID | |
64 | automatically from *zebra*. | |
65 | ||
66 | .. index:: {OSPF Command} {ospf abr-type `type`} {} | |
67 | ||
68 | {OSPF Command} {ospf abr-type `type`} {} | |
69 | .. index:: {OSPF Command} {no ospf abr-type `type`} {} | |
70 | ||
71 | {OSPF Command} {no ospf abr-type `type`} {} | |
72 | `type` can be cisco|ibm|shortcut|standard. The "Cisco" and "IBM" types | |
73 | are equivalent. | |
74 | ||
75 | The OSPF standard for ABR behaviour does not allow an ABR to consider | |
76 | routes through non-backbone areas when its links to the backbone are | |
77 | down, even when there are other ABRs in attached non-backbone areas | |
78 | which still can reach the backbone - this restriction exists primarily | |
79 | to ensure routing-loops are avoided. | |
80 | ||
81 | With the "Cisco" or "IBM" ABR type, the default in this release of | |
dc1046f7 | 82 | FRR, this restriction is lifted, allowing an ABR to consider |
42fc5d26 QY |
83 | summaries learnt from other ABRs through non-backbone areas, and hence |
84 | route via non-backbone areas as a last resort when, and only when, | |
85 | backbone links are down. | |
86 | ||
87 | Note that areas with fully-adjacent virtual-links are considered to be | |
88 | "transit capable" and can always be used to route backbone traffic, and | |
89 | hence are unaffected by this setting (:ref:`OSPF_virtual-link`). | |
90 | ||
91 | More information regarding the behaviour controlled by this command can | |
ec8404d8 | 92 | be found in :rfc:`3509`, and :t:`draft-ietf-ospf-shortcut-abr-02.txt`. |
42fc5d26 | 93 | |
d50b2aa0 | 94 | Quote: "Though the definition of the :abbr:`ABR (Area Border Router)` |
42fc5d26 QY |
95 | in the OSPF specification does not require a router with multiple |
96 | attached areas to have a backbone connection, it is actually | |
97 | necessary to provide successful routing to the inter-area and | |
98 | external destinations. If this requirement is not met, all traffic | |
99 | destined for the areas not connected to such an ABR or out of the | |
100 | OSPF domain, is dropped. This document describes alternative ABR | |
101 | behaviors implemented in Cisco and IBM routers." | |
102 | ||
103 | .. index:: {OSPF Command} {ospf rfc1583compatibility} {} | |
104 | ||
105 | {OSPF Command} {ospf rfc1583compatibility} {} | |
106 | .. index:: {OSPF Command} {no ospf rfc1583compatibility} {} | |
107 | ||
108 | {OSPF Command} {no ospf rfc1583compatibility} {} | |
a4c53928 | 109 | :rfc:`2328`, the sucessor to :rfc:`1583`, suggests according |
42fc5d26 QY |
110 | to section G.2 (changes) in section 16.4 a change to the path |
111 | preference algorithm that prevents possible routing loops that were | |
112 | possible in the old version of OSPFv2. More specifically it demands | |
113 | that inter-area paths and intra-area backbone path are now of equal preference | |
114 | but still both preferred to external paths. | |
115 | ||
116 | This command should NOT be set normally. | |
117 | ||
118 | .. index:: {OSPF Command} {log-adjacency-changes [detail]} {} | |
119 | ||
120 | {OSPF Command} {log-adjacency-changes [detail]} {} | |
121 | .. index:: {OSPF Command} {no log-adjacency-changes [detail]} {} | |
122 | ||
123 | {OSPF Command} {no log-adjacency-changes [detail]} {} | |
124 | Configures ospfd to log changes in adjacency. With the optional | |
125 | detail argument, all changes in adjacency status are shown. Without detail, | |
126 | only changes to full or regressions are shown. | |
127 | ||
128 | .. index:: {OSPF Command} {passive-interface `interface`} {} | |
129 | ||
130 | {OSPF Command} {passive-interface `interface`} {} | |
131 | .. index:: {OSPF Command} {no passive-interface `interface`} {} | |
132 | ||
133 | {OSPF Command} {no passive-interface `interface`} {} | |
134 | .. _OSPF_passive-interface: | |
135 | ||
136 | Do not speak OSPF interface on the | |
137 | given interface, but do advertise the interface as a stub link in the | |
d50b2aa0 | 138 | router-:abbr:`LSA (Link State Advertisement)` for this router. This |
42fc5d26 QY |
139 | allows one to advertise addresses on such connected interfaces without |
140 | having to originate AS-External/Type-5 LSAs (which have global flooding | |
141 | scope) - as would occur if connected addresses were redistributed into | |
142 | OSPF (:ref:`Redistribute_routes_to_OSPF`)@. This is the only way to | |
143 | advertise non-OSPF links into stub areas. | |
144 | ||
145 | .. index:: {OSPF Command} {timers throttle spf `delay` `initial-holdtime` `max-holdtime`} {} | |
146 | ||
147 | {OSPF Command} {timers throttle spf `delay` `initial-holdtime` `max-holdtime`} {} | |
148 | .. index:: {OSPF Command} {no timers throttle spf} {} | |
149 | ||
150 | {OSPF Command} {no timers throttle spf} {} | |
151 | This command sets the initial `delay`, the `initial-holdtime` | |
152 | and the `maximum-holdtime` between when SPF is calculated and the | |
153 | event which triggered the calculation. The times are specified in | |
154 | milliseconds and must be in the range of 0 to 600000 milliseconds. | |
155 | ||
156 | The `delay` specifies the minimum amount of time to delay SPF | |
157 | calculation (hence it affects how long SPF calculation is delayed after | |
158 | an event which occurs outside of the holdtime of any previous SPF | |
159 | calculation, and also serves as a minimum holdtime). | |
160 | ||
161 | Consecutive SPF calculations will always be seperated by at least | |
162 | 'hold-time' milliseconds. The hold-time is adaptive and initially is | |
163 | set to the `initial-holdtime` configured with the above command. | |
164 | Events which occur within the holdtime of the previous SPF calculation | |
165 | will cause the holdtime to be increased by `initial-holdtime`, bounded | |
166 | by the `maximum-holdtime` configured with this command. If the adaptive | |
a8c90e15 | 167 | hold-time elapses without any SPF-triggering event occuring then |
42fc5d26 | 168 | the current holdtime is reset to the `initial-holdtime`. The current |
a8c90e15 | 169 | holdtime can be viewed with :ref:`show_ip_ospf`, where it is expressed as |
42fc5d26 QY |
170 | a multiplier of the `initial-holdtime`. |
171 | ||
172 | :: | |
173 | ||
42fc5d26 QY |
174 | router ospf |
175 | timers throttle spf 200 400 10000 | |
a8c90e15 | 176 | |
42fc5d26 QY |
177 | |
178 | In this example, the `delay` is set to 200ms, the @var{initial | |
179 | holdtime} is set to 400ms and the `maximum holdtime` to 10s. Hence | |
180 | there will always be at least 200ms between an event which requires SPF | |
181 | calculation and the actual SPF calculation. Further consecutive SPF | |
182 | calculations will always be seperated by between 400ms to 10s, the | |
183 | hold-time increasing by 400ms each time an SPF-triggering event occurs | |
184 | within the hold-time of the previous SPF calculation. | |
185 | ||
dc1046f7 | 186 | This command supercedes the *timers spf* command in previous FRR |
42fc5d26 QY |
187 | releases. |
188 | ||
29adcd50 | 189 | .. index:: {OSPF Command} {max-metric router-lsa [on-startup|on-shutdown] (5-86400)} {} |
42fc5d26 | 190 | |
29adcd50 | 191 | {OSPF Command} {max-metric router-lsa [on-startup|on-shutdown] (5-86400)} {} |
42fc5d26 QY |
192 | .. index:: {OSPF Command} {max-metric router-lsa administrative} {} |
193 | ||
194 | {OSPF Command} {max-metric router-lsa administrative} {} | |
195 | .. index:: {OSPF Command} {no max-metric router-lsa [on-startup|on-shutdown|administrative]} {} | |
196 | ||
197 | {OSPF Command} {no max-metric router-lsa [on-startup|on-shutdown|administrative]} {} | |
a4c53928 | 198 | This enables :rfc:`3137` support, |
42fc5d26 QY |
199 | where the OSPF process describes its transit links in its router-LSA as |
200 | having infinite distance so that other routers will avoid calculating | |
201 | transit paths through the router while still being able to reach | |
202 | networks through the router. | |
203 | ||
204 | This support may be enabled administratively (and indefinitely) or | |
205 | conditionally. Conditional enabling of max-metric router-lsas can be | |
206 | for a period of seconds after startup and/or for a period of seconds | |
a8c90e15 | 207 | prior to shutdown. |
42fc5d26 QY |
208 | |
209 | Enabling this for a period after startup allows OSPF to converge fully | |
210 | first without affecting any existing routes used by other routers, | |
211 | while still allowing any connected stub links and/or redistributed | |
212 | routes to be reachable. Enabling this for a period of time in advance | |
213 | of shutdown allows the router to gracefully excuse itself from the OSPF | |
a8c90e15 | 214 | domain. |
42fc5d26 QY |
215 | |
216 | Enabling this feature administratively allows for administrative | |
217 | intervention for whatever reason, for an indefinite period of time. | |
218 | Note that if the configuration is written to file, this administrative | |
219 | form of the stub-router command will also be written to file. If | |
220 | *ospfd* is restarted later, the command will then take effect | |
221 | until manually deconfigured. | |
222 | ||
223 | Configured state of this feature as well as current status, such as the | |
224 | number of second remaining till on-startup or on-shutdown ends, can be | |
225 | viewed with the :ref:`show_ip_ospf` command. | |
226 | ||
29adcd50 | 227 | .. index:: {OSPF Command} {auto-cost reference-bandwidth (1-4294967)} {} |
42fc5d26 | 228 | |
29adcd50 | 229 | {OSPF Command} {auto-cost reference-bandwidth (1-4294967)} {} |
42fc5d26 QY |
230 | .. index:: {OSPF Command} {no auto-cost reference-bandwidth} {} |
231 | ||
232 | {OSPF Command} {no auto-cost reference-bandwidth} {} | |
233 | .. _OSPF_auto-cost_reference-bandwidth: | |
234 | ||
235 | This sets the reference | |
236 | bandwidth for cost calculations, where this bandwidth is considered | |
237 | equivalent to an OSPF cost of 1, specified in Mbits/s. The default is | |
238 | 100Mbit/s (i.e. a link of bandwidth 100Mbit/s or higher will have a | |
239 | cost of 1. Cost of lower bandwidth links will be scaled with reference | |
240 | to this cost). | |
241 | ||
242 | This configuration setting MUST be consistent across all routers within the | |
243 | OSPF domain. | |
244 | ||
245 | .. index:: {OSPF Command} {network `a.b.c.d/m` area `a.b.c.d`} {} | |
246 | ||
247 | {OSPF Command} {network `a.b.c.d/m` area `a.b.c.d`} {} | |
29adcd50 | 248 | .. index:: {OSPF Command} {network `a.b.c.d/m` area `(0-4294967295)`} {} |
42fc5d26 | 249 | |
29adcd50 | 250 | {OSPF Command} {network `a.b.c.d/m` area `(0-4294967295)`} {} |
42fc5d26 QY |
251 | .. index:: {OSPF Command} {no network `a.b.c.d/m` area `a.b.c.d`} {} |
252 | ||
253 | {OSPF Command} {no network `a.b.c.d/m` area `a.b.c.d`} {} | |
29adcd50 | 254 | .. index:: {OSPF Command} {no network `a.b.c.d/m` area `(0-4294967295)`} {} |
42fc5d26 | 255 | |
29adcd50 | 256 | {OSPF Command} {no network `a.b.c.d/m` area `(0-4294967295)`} {} |
42fc5d26 QY |
257 | .. _OSPF_network_command: |
258 | ||
259 | This command specifies the OSPF enabled interface(s). If the interface has | |
260 | an address from range 192.168.1.0/24 then the command below enables ospf | |
261 | on this interface so router can provide network information to the other | |
262 | ospf routers via this interface. | |
263 | ||
264 | :: | |
265 | ||
42fc5d26 QY |
266 | router ospf |
267 | network 192.168.1.0/24 area 0.0.0.0 | |
a8c90e15 | 268 | |
42fc5d26 QY |
269 | |
270 | Prefix length in interface must be equal or bigger (ie. smaller network) than | |
271 | prefix length in network statement. For example statement above doesn't enable | |
272 | ospf on interface with address 192.168.1.1/23, but it does on interface with | |
273 | address 192.168.1.129/25. | |
274 | ||
275 | Note that the behavior when there is a peer address | |
276 | defined on an interface changed after release 0.99.7. | |
277 | Currently, if a peer prefix has been configured, | |
278 | then we test whether the prefix in the network command contains | |
279 | the destination prefix. Otherwise, we test whether the network command prefix | |
a8c90e15 | 280 | contains the local address prefix of the interface. |
42fc5d26 QY |
281 | |
282 | In some cases it may be more convenient to enable OSPF on a per | |
283 | interface/subnet basis (:ref:`OSPF_ip_ospf_area_command`). | |
284 | ||
285 | ||
286 | .. _OSPF_area: | |
287 | ||
288 | OSPF area | |
289 | ========= | |
290 | ||
291 | .. index:: {OSPF Command} {area `a.b.c.d` range `a.b.c.d/m`} {} | |
292 | ||
293 | {OSPF Command} {area `a.b.c.d` range `a.b.c.d/m`} {} | |
29adcd50 | 294 | .. index:: {OSPF Command} {area (0-4294967295) range `a.b.c.d/m`} {} |
42fc5d26 | 295 | |
29adcd50 | 296 | {OSPF Command} {area (0-4294967295) range `a.b.c.d/m`} {} |
42fc5d26 QY |
297 | .. index:: {OSPF Command} {no area `a.b.c.d` range `a.b.c.d/m`} {} |
298 | ||
299 | {OSPF Command} {no area `a.b.c.d` range `a.b.c.d/m`} {} | |
29adcd50 | 300 | .. index:: {OSPF Command} {no area (0-4294967295) range `a.b.c.d/m`} {} |
42fc5d26 | 301 | |
29adcd50 | 302 | {OSPF Command} {no area (0-4294967295) range `a.b.c.d/m`} {} |
42fc5d26 QY |
303 | Summarize intra area paths from specified area into one Type-3 summary-LSA |
304 | announced to other areas. This command can be used only in ABR and ONLY | |
305 | router-LSAs (Type-1) and network-LSAs (Type-2) (ie. LSAs with scope area) can | |
306 | be summarized. Type-5 AS-external-LSAs can't be summarized - their scope is AS. | |
dc1046f7 | 307 | Summarizing Type-7 AS-external-LSAs isn't supported yet by FRR. |
42fc5d26 QY |
308 | |
309 | :: | |
310 | ||
42fc5d26 QY |
311 | router ospf |
312 | network 192.168.1.0/24 area 0.0.0.0 | |
313 | network 10.0.0.0/8 area 0.0.0.10 | |
314 | area 0.0.0.10 range 10.0.0.0/8 | |
a8c90e15 | 315 | |
42fc5d26 QY |
316 | |
317 | With configuration above one Type-3 Summary-LSA with routing info 10.0.0.0/8 is | |
318 | announced into backbone area if area 0.0.0.10 contains at least one intra-area | |
319 | network (ie. described with router or network LSA) from this range. | |
320 | ||
321 | .. index:: {OSPF Command} {area `a.b.c.d` range IPV4_PREFIX not-advertise} {} | |
322 | ||
323 | {OSPF Command} {area `a.b.c.d` range IPV4_PREFIX not-advertise} {} | |
324 | .. index:: {OSPF Command} {no area `a.b.c.d` range IPV4_PREFIX not-advertise} {} | |
325 | ||
326 | {OSPF Command} {no area `a.b.c.d` range IPV4_PREFIX not-advertise} {} | |
327 | Instead of summarizing intra area paths filter them - ie. intra area paths from this | |
328 | range are not advertised into other areas. | |
329 | This command makes sense in ABR only. | |
330 | ||
331 | .. index:: {OSPF Command} {area `a.b.c.d` range IPV4_PREFIX substitute IPV4_PREFIX} {} | |
332 | ||
333 | {OSPF Command} {area `a.b.c.d` range IPV4_PREFIX substitute IPV4_PREFIX} {} | |
334 | .. index:: {OSPF Command} {no area `a.b.c.d` range IPV4_PREFIX substitute IPV4_PREFIX} {} | |
335 | ||
336 | {OSPF Command} {no area `a.b.c.d` range IPV4_PREFIX substitute IPV4_PREFIX} {} | |
337 | Substitute summarized prefix with another prefix. | |
338 | ||
339 | :: | |
340 | ||
42fc5d26 QY |
341 | router ospf |
342 | network 192.168.1.0/24 area 0.0.0.0 | |
343 | network 10.0.0.0/8 area 0.0.0.10 | |
344 | area 0.0.0.10 range 10.0.0.0/8 substitute 11.0.0.0/8 | |
a8c90e15 | 345 | |
42fc5d26 QY |
346 | |
347 | One Type-3 summary-LSA with routing info 11.0.0.0/8 is announced into backbone area if | |
348 | area 0.0.0.10 contains at least one intra-area network (ie. described with router-LSA or | |
349 | network-LSA) from range 10.0.0.0/8. | |
350 | This command makes sense in ABR only. | |
351 | ||
352 | .. index:: {OSPF Command} {area `a.b.c.d` virtual-link `a.b.c.d`} {} | |
353 | ||
354 | {OSPF Command} {area `a.b.c.d` virtual-link `a.b.c.d`} {} | |
29adcd50 | 355 | .. index:: {OSPF Command} {area (0-4294967295) virtual-link `a.b.c.d`} {} |
42fc5d26 | 356 | |
29adcd50 | 357 | {OSPF Command} {area (0-4294967295) virtual-link `a.b.c.d`} {} |
42fc5d26 QY |
358 | .. index:: {OSPF Command} {no area `a.b.c.d` virtual-link `a.b.c.d`} {} |
359 | ||
360 | {OSPF Command} {no area `a.b.c.d` virtual-link `a.b.c.d`} {} | |
29adcd50 | 361 | .. index:: {OSPF Command} {no area (0-4294967295) virtual-link `a.b.c.d`} {} |
42fc5d26 | 362 | |
29adcd50 | 363 | {OSPF Command} {no area (0-4294967295) virtual-link `a.b.c.d`} {} |
42fc5d26 QY |
364 | .. _OSPF_virtual-link: |
365 | ||
366 | .. index:: {OSPF Command} {area `a.b.c.d` shortcut} {} | |
367 | ||
368 | {OSPF Command} {area `a.b.c.d` shortcut} {} | |
29adcd50 | 369 | .. index:: {OSPF Command} {area (0-4294967295) shortcut} {} |
42fc5d26 | 370 | |
29adcd50 | 371 | {OSPF Command} {area (0-4294967295) shortcut} {} |
42fc5d26 QY |
372 | .. index:: {OSPF Command} {no area `a.b.c.d` shortcut} {} |
373 | ||
374 | {OSPF Command} {no area `a.b.c.d` shortcut} {} | |
29adcd50 | 375 | .. index:: {OSPF Command} {no area (0-4294967295) shortcut} {} |
42fc5d26 | 376 | |
29adcd50 | 377 | {OSPF Command} {no area (0-4294967295) shortcut} {} |
a4c53928 | 378 | Configure the area as Shortcut capable. See :rfc:`3509`. This requires |
42fc5d26 QY |
379 | that the 'abr-type' be set to 'shortcut'. |
380 | ||
381 | .. index:: {OSPF Command} {area `a.b.c.d` stub} {} | |
382 | ||
383 | {OSPF Command} {area `a.b.c.d` stub} {} | |
29adcd50 | 384 | .. index:: {OSPF Command} {area (0-4294967295) stub} {} |
42fc5d26 | 385 | |
29adcd50 | 386 | {OSPF Command} {area (0-4294967295) stub} {} |
42fc5d26 QY |
387 | .. index:: {OSPF Command} {no area `a.b.c.d` stub} {} |
388 | ||
389 | {OSPF Command} {no area `a.b.c.d` stub} {} | |
29adcd50 | 390 | .. index:: {OSPF Command} {no area (0-4294967295) stub} {} |
42fc5d26 | 391 | |
29adcd50 | 392 | {OSPF Command} {no area (0-4294967295) stub} {} |
42fc5d26 | 393 | Configure the area to be a stub area. That is, an area where no router |
a8c90e15 | 394 | originates routes external to OSPF and hence an area where all external |
42fc5d26 QY |
395 | routes are via the ABR(s). Hence, ABRs for such an area do not need |
396 | to pass AS-External LSAs (type-5s) or ASBR-Summary LSAs (type-4) into the | |
397 | area. They need only pass Network-Summary (type-3) LSAs into such an area, | |
398 | along with a default-route summary. | |
399 | ||
400 | .. index:: {OSPF Command} {area `a.b.c.d` stub no-summary} {} | |
401 | ||
402 | {OSPF Command} {area `a.b.c.d` stub no-summary} {} | |
29adcd50 | 403 | .. index:: {OSPF Command} {area (0-4294967295) stub no-summary} {} |
42fc5d26 | 404 | |
29adcd50 | 405 | {OSPF Command} {area (0-4294967295) stub no-summary} {} |
42fc5d26 QY |
406 | .. index:: {OSPF Command} {no area `a.b.c.d` stub no-summary} {} |
407 | ||
408 | {OSPF Command} {no area `a.b.c.d` stub no-summary} {} | |
29adcd50 | 409 | .. index:: {OSPF Command} {no area (0-4294967295) stub no-summary} {} |
42fc5d26 | 410 | |
29adcd50 | 411 | {OSPF Command} {no area (0-4294967295) stub no-summary} {} |
a8c90e15 | 412 | Prevents an *ospfd* ABR from injecting inter-area |
42fc5d26 QY |
413 | summaries into the specified stub area. |
414 | ||
29adcd50 | 415 | .. index:: {OSPF Command} {area `a.b.c.d` default-cost (0-16777215)} {} |
42fc5d26 | 416 | |
29adcd50 QY |
417 | {OSPF Command} {area `a.b.c.d` default-cost (0-16777215)} {} |
418 | .. index:: {OSPF Command} {no area `a.b.c.d` default-cost (0-16777215)} {} | |
42fc5d26 | 419 | |
29adcd50 | 420 | {OSPF Command} {no area `a.b.c.d` default-cost (0-16777215)} {} |
42fc5d26 QY |
421 | Set the cost of default-summary LSAs announced to stubby areas. |
422 | ||
423 | .. index:: {OSPF Command} {area `a.b.c.d` export-list NAME} {} | |
424 | ||
425 | {OSPF Command} {area `a.b.c.d` export-list NAME} {} | |
29adcd50 | 426 | .. index:: {OSPF Command} {area (0-4294967295) export-list NAME} {} |
42fc5d26 | 427 | |
29adcd50 | 428 | {OSPF Command} {area (0-4294967295) export-list NAME} {} |
42fc5d26 QY |
429 | .. index:: {OSPF Command} {no area `a.b.c.d` export-list NAME} {} |
430 | ||
431 | {OSPF Command} {no area `a.b.c.d` export-list NAME} {} | |
29adcd50 | 432 | .. index:: {OSPF Command} {no area (0-4294967295) export-list NAME} {} |
42fc5d26 | 433 | |
29adcd50 | 434 | {OSPF Command} {no area (0-4294967295) export-list NAME} {} |
42fc5d26 QY |
435 | Filter Type-3 summary-LSAs announced to other areas originated from intra- |
436 | area paths from specified area. | |
437 | ||
438 | :: | |
439 | ||
42fc5d26 QY |
440 | router ospf |
441 | network 192.168.1.0/24 area 0.0.0.0 | |
442 | network 10.0.0.0/8 area 0.0.0.10 | |
443 | area 0.0.0.10 export-list foo | |
444 | ! | |
445 | access-list foo permit 10.10.0.0/16 | |
446 | access-list foo deny any | |
a8c90e15 | 447 | |
42fc5d26 QY |
448 | |
449 | With example above any intra-area paths from area 0.0.0.10 and from range | |
450 | 10.10.0.0/16 (for example 10.10.1.0/24 and 10.10.2.128/30) are announced into | |
451 | other areas as Type-3 summary-LSA's, but any others (for example 10.11.0.0/16 | |
452 | or 10.128.30.16/30) aren't. | |
453 | ||
454 | This command is only relevant if the router is an ABR for the specified | |
455 | area. | |
456 | ||
457 | .. index:: {OSPF Command} {area `a.b.c.d` import-list NAME} {} | |
458 | ||
459 | {OSPF Command} {area `a.b.c.d` import-list NAME} {} | |
29adcd50 | 460 | .. index:: {OSPF Command} {area (0-4294967295) import-list NAME} {} |
42fc5d26 | 461 | |
29adcd50 | 462 | {OSPF Command} {area (0-4294967295) import-list NAME} {} |
42fc5d26 QY |
463 | .. index:: {OSPF Command} {no area `a.b.c.d` import-list NAME} {} |
464 | ||
465 | {OSPF Command} {no area `a.b.c.d` import-list NAME} {} | |
29adcd50 | 466 | .. index:: {OSPF Command} {no area (0-4294967295) import-list NAME} {} |
42fc5d26 | 467 | |
29adcd50 | 468 | {OSPF Command} {no area (0-4294967295) import-list NAME} {} |
42fc5d26 QY |
469 | Same as export-list, but it applies to paths announced into specified area as |
470 | Type-3 summary-LSAs. | |
471 | ||
472 | .. index:: {OSPF Command} {area `a.b.c.d` filter-list prefix NAME in} {} | |
473 | ||
474 | {OSPF Command} {area `a.b.c.d` filter-list prefix NAME in} {} | |
475 | .. index:: {OSPF Command} {area `a.b.c.d` filter-list prefix NAME out} {} | |
476 | ||
477 | {OSPF Command} {area `a.b.c.d` filter-list prefix NAME out} {} | |
29adcd50 | 478 | .. index:: {OSPF Command} {area (0-4294967295) filter-list prefix NAME in} {} |
42fc5d26 | 479 | |
29adcd50 QY |
480 | {OSPF Command} {area (0-4294967295) filter-list prefix NAME in} {} |
481 | .. index:: {OSPF Command} {area (0-4294967295) filter-list prefix NAME out} {} | |
42fc5d26 | 482 | |
29adcd50 | 483 | {OSPF Command} {area (0-4294967295) filter-list prefix NAME out} {} |
42fc5d26 QY |
484 | .. index:: {OSPF Command} {no area `a.b.c.d` filter-list prefix NAME in} {} |
485 | ||
486 | {OSPF Command} {no area `a.b.c.d` filter-list prefix NAME in} {} | |
487 | .. index:: {OSPF Command} {no area `a.b.c.d` filter-list prefix NAME out} {} | |
488 | ||
489 | {OSPF Command} {no area `a.b.c.d` filter-list prefix NAME out} {} | |
29adcd50 | 490 | .. index:: {OSPF Command} {no area (0-4294967295) filter-list prefix NAME in} {} |
42fc5d26 | 491 | |
29adcd50 QY |
492 | {OSPF Command} {no area (0-4294967295) filter-list prefix NAME in} {} |
493 | .. index:: {OSPF Command} {no area (0-4294967295) filter-list prefix NAME out} {} | |
42fc5d26 | 494 | |
29adcd50 | 495 | {OSPF Command} {no area (0-4294967295) filter-list prefix NAME out} {} |
42fc5d26 QY |
496 | Filtering Type-3 summary-LSAs to/from area using prefix lists. This command |
497 | makes sense in ABR only. | |
498 | ||
499 | .. index:: {OSPF Command} {area `a.b.c.d` authentication} {} | |
500 | ||
501 | {OSPF Command} {area `a.b.c.d` authentication} {} | |
29adcd50 | 502 | .. index:: {OSPF Command} {area (0-4294967295) authentication} {} |
42fc5d26 | 503 | |
29adcd50 | 504 | {OSPF Command} {area (0-4294967295) authentication} {} |
42fc5d26 QY |
505 | .. index:: {OSPF Command} {no area `a.b.c.d` authentication} {} |
506 | ||
507 | {OSPF Command} {no area `a.b.c.d` authentication} {} | |
29adcd50 | 508 | .. index:: {OSPF Command} {no area (0-4294967295) authentication} {} |
42fc5d26 | 509 | |
29adcd50 | 510 | {OSPF Command} {no area (0-4294967295) authentication} {} |
42fc5d26 QY |
511 | Specify that simple password authentication should be used for the given |
512 | area. | |
513 | ||
514 | .. index:: {OSPF Command} {area `a.b.c.d` authentication message-digest} {} | |
515 | ||
516 | {OSPF Command} {area `a.b.c.d` authentication message-digest} {} | |
29adcd50 | 517 | .. index:: {OSPF Command} {area (0-4294967295) authentication message-digest} {} |
42fc5d26 | 518 | |
29adcd50 | 519 | {OSPF Command} {area (0-4294967295) authentication message-digest} {} |
42fc5d26 QY |
520 | .. _area_authentication_message-digest: |
521 | ||
522 | Specify that OSPF packets | |
523 | must be authenticated with MD5 HMACs within the given area. Keying | |
524 | material must also be configured on a per-interface basis (:ref:`ip_ospf_message-digest-key`). | |
525 | ||
526 | MD5 authentication may also be configured on a per-interface basis | |
527 | (:ref:`ip_ospf_authentication_message-digest`). Such per-interface | |
528 | settings will override any per-area authentication setting. | |
529 | ||
530 | .. _OSPF_interface: | |
531 | ||
532 | OSPF interface | |
533 | ============== | |
534 | ||
a8c90e15 | 535 | .. index:: {Interface Command} {ip ospf area `AREA` [`ADDR`]} {} |
42fc5d26 QY |
536 | |
537 | {Interface Command} {ip ospf area `AREA` [`ADDR`]} {} | |
538 | .. index:: {Interface Command} {no ip ospf area [`ADDR`]} {} | |
539 | ||
540 | {Interface Command} {no ip ospf area [`ADDR`]} {} | |
541 | .. _OSPF_ip_ospf_area_command: | |
542 | ||
543 | Enable OSPF on the interface, optionally restricted to just the IP address | |
544 | given by `ADDR`, putting it in the `AREA` area. Per interface area | |
545 | settings take precedence to network commands (:ref:`OSPF_network_command`). | |
546 | ||
547 | If you have a lot of interfaces, and/or a lot of subnets, then enabling OSPF | |
548 | via this command may result in a slight performance improvement. | |
549 | ||
550 | .. index:: {Interface Command} {ip ospf authentication-key `AUTH_KEY`} {} | |
551 | ||
552 | {Interface Command} {ip ospf authentication-key `AUTH_KEY`} {} | |
553 | .. index:: {Interface Command} {no ip ospf authentication-key} {} | |
554 | ||
555 | {Interface Command} {no ip ospf authentication-key} {} | |
556 | Set OSPF authentication key to a simple password. After setting `AUTH_KEY`, | |
557 | all OSPF packets are authenticated. `AUTH_KEY` has length up to 8 chars. | |
558 | ||
559 | Simple text password authentication is insecure and deprecated in favour of | |
560 | MD5 HMAC authentication (:ref:`ip_ospf_authentication_message-digest`). | |
561 | ||
562 | .. index:: {Interface Command} {ip ospf authentication message-digest} {} | |
563 | ||
564 | {Interface Command} {ip ospf authentication message-digest} {} | |
565 | .. _ip_ospf_authentication_message-digest: | |
566 | ||
567 | Specify that MD5 HMAC | |
568 | authentication must be used on this interface. MD5 keying material must | |
569 | also be configured (:ref:`ip_ospf_message-digest-key`). Overrides any | |
570 | authentication enabled on a per-area basis (:ref:`area_authentication_message-digest`). | |
571 | ||
572 | Note that OSPF MD5 authentication requires that time never go backwards | |
573 | (correct time is NOT important, only that it never goes backwards), even | |
574 | across resets, if ospfd is to be able to promptly reestabish adjacencies | |
575 | with its neighbours after restarts/reboots. The host should have system | |
576 | time be set at boot from an external or non-volatile source (eg battery backed clock, NTP, | |
577 | etc.) or else the system clock should be periodically saved to non-volative | |
578 | storage and restored at boot if MD5 authentication is to be expected to work | |
579 | reliably. | |
580 | ||
581 | .. index:: {Interface Command} {ip ospf message-digest-key KEYID md5 KEY} {} | |
582 | ||
583 | {Interface Command} {ip ospf message-digest-key KEYID md5 KEY} {} | |
584 | .. index:: {Interface Command} {no ip ospf message-digest-key} {} | |
585 | ||
586 | {Interface Command} {no ip ospf message-digest-key} {} | |
587 | .. _ip_ospf_message-digest-key: | |
588 | ||
589 | Set OSPF authentication key to a | |
a8c90e15 | 590 | cryptographic password. The cryptographic algorithm is MD5. |
42fc5d26 QY |
591 | |
592 | KEYID identifies secret key used to create the message digest. This ID | |
593 | is part of the protocol and must be consistent across routers on a | |
594 | link. | |
595 | ||
596 | KEY is the actual message digest key, of up to 16 chars (larger strings | |
597 | will be truncated), and is associated with the given KEYID. | |
598 | ||
29adcd50 | 599 | .. index:: {Interface Command} {ip ospf cost (1-65535)} {} |
42fc5d26 | 600 | |
29adcd50 | 601 | {Interface Command} {ip ospf cost (1-65535)} {} |
42fc5d26 QY |
602 | .. index:: {Interface Command} {no ip ospf cost} {} |
603 | ||
604 | {Interface Command} {no ip ospf cost} {} | |
605 | Set link cost for the specified interface. The cost value is set to router-LSA's | |
606 | metric field and used for SPF calculation. | |
607 | ||
29adcd50 | 608 | .. index:: {Interface Command} {ip ospf dead-interval (1-65535)} {} |
42fc5d26 | 609 | |
29adcd50 QY |
610 | {Interface Command} {ip ospf dead-interval (1-65535)} {} |
611 | .. index:: {Interface Command} {ip ospf dead-interval minimal hello-multiplier (2-20)} {} | |
42fc5d26 | 612 | |
29adcd50 | 613 | {Interface Command} {ip ospf dead-interval minimal hello-multiplier (2-20)} {} |
42fc5d26 QY |
614 | .. index:: {Interface Command} {no ip ospf dead-interval} {} |
615 | ||
616 | {Interface Command} {no ip ospf dead-interval} {} | |
617 | .. _ip_ospf_dead-interval_minimal: | |
618 | ||
619 | Set number of seconds for | |
620 | RouterDeadInterval timer value used for Wait Timer and Inactivity | |
621 | Timer. This value must be the same for all routers attached to a | |
622 | common network. The default value is 40 seconds. | |
623 | ||
624 | If 'minimal' is specified instead, then the dead-interval is set to 1 | |
625 | second and one must specify a hello-multiplier. The hello-multiplier | |
626 | specifies how many Hellos to send per second, from 2 (every 500ms) to | |
627 | 20 (every 50ms). Thus one can have 1s convergence time for OSPF. If this form | |
628 | is specified, then the hello-interval advertised in Hello packets is set to | |
a8c90e15 | 629 | 0 and the hello-interval on received Hello packets is not checked, thus |
42fc5d26 QY |
630 | the hello-multiplier need NOT be the same across multiple routers on a common |
631 | link. | |
632 | ||
29adcd50 | 633 | .. index:: {Interface Command} {ip ospf hello-interval (1-65535)} {} |
42fc5d26 | 634 | |
29adcd50 | 635 | {Interface Command} {ip ospf hello-interval (1-65535)} {} |
42fc5d26 QY |
636 | .. index:: {Interface Command} {no ip ospf hello-interval} {} |
637 | ||
638 | {Interface Command} {no ip ospf hello-interval} {} | |
639 | Set number of seconds for HelloInterval timer value. Setting this value, | |
640 | Hello packet will be sent every timer value seconds on the specified interface. | |
641 | This value must be the same for all routers attached to a common network. | |
642 | The default value is 10 seconds. | |
643 | ||
a8c90e15 | 644 | This command has no effect if :ref:`ip_ospf_dead-interval_minimal` is also |
42fc5d26 QY |
645 | specified for the interface. |
646 | ||
647 | .. index:: {Interface Command} {ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)} {} | |
648 | ||
649 | {Interface Command} {ip ospf network (broadcast|non-broadcast|point-to-multipoint|point-to-point)} {} | |
650 | .. index:: {Interface Command} {no ip ospf network} {} | |
651 | ||
652 | {Interface Command} {no ip ospf network} {} | |
653 | Set explicitly network type for specifed interface. | |
654 | ||
29adcd50 | 655 | .. index:: {Interface Command} {ip ospf priority (0-255)} {} |
42fc5d26 | 656 | |
29adcd50 | 657 | {Interface Command} {ip ospf priority (0-255)} {} |
42fc5d26 QY |
658 | .. index:: {Interface Command} {no ip ospf priority} {} |
659 | ||
660 | {Interface Command} {no ip ospf priority} {} | |
661 | Set RouterPriority integer value. The router with the highest priority | |
662 | will be more eligible to become Designated Router. Setting the value | |
663 | to 0, makes the router ineligible to become Designated Router. The | |
664 | default value is 1. | |
665 | ||
29adcd50 | 666 | .. index:: {Interface Command} {ip ospf retransmit-interval (1-65535)} {} |
42fc5d26 | 667 | |
29adcd50 | 668 | {Interface Command} {ip ospf retransmit-interval (1-65535)} {} |
42fc5d26 QY |
669 | .. index:: {Interface Command} {no ip ospf retransmit interval} {} |
670 | ||
671 | {Interface Command} {no ip ospf retransmit interval} {} | |
672 | Set number of seconds for RxmtInterval timer value. This value is used | |
673 | when retransmitting Database Description and Link State Request packets. | |
674 | The default value is 5 seconds. | |
675 | ||
676 | .. index:: {Interface Command} {ip ospf transmit-delay} {} | |
677 | ||
678 | {Interface Command} {ip ospf transmit-delay} {} | |
679 | .. index:: {Interface Command} {no ip ospf transmit-delay} {} | |
680 | ||
681 | {Interface Command} {no ip ospf transmit-delay} {} | |
a8c90e15 | 682 | Set number of seconds for InfTransDelay value. LSAs' age should be |
42fc5d26 QY |
683 | incremented by this value when transmitting. |
684 | The default value is 1 seconds. | |
685 | ||
29adcd50 | 686 | .. index:: {Interface Command} {ip ospf area (A.B.C.D|(0-4294967295))} {} |
42fc5d26 | 687 | |
29adcd50 | 688 | {Interface Command} {ip ospf area (A.B.C.D|(0-4294967295))} {} |
42fc5d26 QY |
689 | .. index:: {Interface Command} {no ip ospf area} {} |
690 | ||
691 | {Interface Command} {no ip ospf area} {} | |
692 | Enable ospf on an interface and set associated area. | |
693 | ||
694 | .. _Redistribute_routes_to_OSPF: | |
695 | ||
696 | Redistribute routes to OSPF | |
697 | =========================== | |
698 | ||
699 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp)} {} | |
700 | ||
701 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp)} {} | |
702 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) `route-map`} {} | |
703 | ||
704 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) `route-map`} {} | |
705 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)} {} | |
706 | ||
707 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2)} {} | |
708 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map `word`} {} | |
709 | ||
710 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) route-map `word`} {} | |
29adcd50 | 711 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric (0-16777214)} {} |
42fc5d26 | 712 | |
29adcd50 QY |
713 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric (0-16777214)} {} |
714 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric (0-16777214) route-map `word`} {} | |
42fc5d26 | 715 | |
29adcd50 QY |
716 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric (0-16777214) route-map `word`} {} |
717 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric (0-16777214)} {} | |
42fc5d26 | 718 | |
29adcd50 QY |
719 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric (0-16777214)} {} |
720 | .. index:: {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric (0-16777214) route-map `word`} {} | |
42fc5d26 | 721 | |
29adcd50 | 722 | {OSPF Command} {redistribute (kernel|connected|static|rip|bgp) metric-type (1|2) metric (0-16777214) route-map `word`} {} |
42fc5d26 QY |
723 | .. index:: {OSPF Command} {no redistribute (kernel|connected|static|rip|bgp)} {} |
724 | ||
725 | {OSPF Command} {no redistribute (kernel|connected|static|rip|bgp)} {} | |
726 | .. _OSPF_redistribute: | |
727 | ||
728 | Redistribute routes of the specified protocol | |
729 | or kind into OSPF, with the metric type and metric set if specified, | |
730 | filtering the routes using the given route-map if specified. | |
731 | Redistributed routes may also be filtered with distribute-lists, see | |
732 | :ref:`ospf_distribute-list`. | |
733 | ||
734 | Redistributed routes are distributed as into OSPF as Type-5 External | |
735 | LSAs into links to areas that accept external routes, Type-7 External LSAs | |
736 | for NSSA areas and are not redistributed at all into Stub areas, where | |
737 | external routes are not permitted. | |
738 | ||
739 | Note that for connected routes, one may instead use | |
dfab2669 | 740 | :term:`passive-interface`, see :ref:`OSPF_passive-interface`. |
42fc5d26 QY |
741 | |
742 | .. index:: {OSPF Command} {default-information originate} {} | |
743 | ||
744 | {OSPF Command} {default-information originate} {} | |
29adcd50 | 745 | .. index:: {OSPF Command} {default-information originate metric (0-16777214)} {} |
42fc5d26 | 746 | |
29adcd50 QY |
747 | {OSPF Command} {default-information originate metric (0-16777214)} {} |
748 | .. index:: {OSPF Command} {default-information originate metric (0-16777214) metric-type (1|2)} {} | |
42fc5d26 | 749 | |
29adcd50 QY |
750 | {OSPF Command} {default-information originate metric (0-16777214) metric-type (1|2)} {} |
751 | .. index:: {OSPF Command} {default-information originate metric (0-16777214) metric-type (1|2) route-map `word`} {} | |
42fc5d26 | 752 | |
29adcd50 | 753 | {OSPF Command} {default-information originate metric (0-16777214) metric-type (1|2) route-map `word`} {} |
42fc5d26 QY |
754 | .. index:: {OSPF Command} {default-information originate always} {} |
755 | ||
756 | {OSPF Command} {default-information originate always} {} | |
29adcd50 | 757 | .. index:: {OSPF Command} {default-information originate always metric (0-16777214)} {} |
42fc5d26 | 758 | |
29adcd50 QY |
759 | {OSPF Command} {default-information originate always metric (0-16777214)} {} |
760 | .. index:: {OSPF Command} {default-information originate always metric (0-16777214) metric-type (1|2)} {} | |
42fc5d26 | 761 | |
29adcd50 QY |
762 | {OSPF Command} {default-information originate always metric (0-16777214) metric-type (1|2)} {} |
763 | .. index:: {OSPF Command} {default-information originate always metric (0-16777214) metric-type (1|2) route-map `word`} {} | |
42fc5d26 | 764 | |
29adcd50 | 765 | {OSPF Command} {default-information originate always metric (0-16777214) metric-type (1|2) route-map `word`} {} |
42fc5d26 QY |
766 | .. index:: {OSPF Command} {no default-information originate} {} |
767 | ||
768 | {OSPF Command} {no default-information originate} {} | |
769 | Originate an AS-External (type-5) LSA describing a default route into | |
770 | all external-routing capable areas, of the specified metric and metric | |
771 | type. If the 'always' keyword is given then the default is always | |
772 | advertised, even when there is no default present in the routing table. | |
773 | ||
774 | .. index:: {OSPF Command} {distribute-list NAME out (kernel|connected|static|rip|ospf} {} | |
775 | ||
776 | {OSPF Command} {distribute-list NAME out (kernel|connected|static|rip|ospf} {} | |
777 | .. index:: {OSPF Command} {no distribute-list NAME out (kernel|connected|static|rip|ospf} {} | |
778 | ||
779 | {OSPF Command} {no distribute-list NAME out (kernel|connected|static|rip|ospf} {} | |
780 | .. _ospf_distribute-list: | |
781 | ||
782 | Apply the access-list filter, NAME, to | |
783 | redistributed routes of the given type before allowing the routes to | |
784 | redistributed into OSPF (:ref:`OSPF_redistribute`). | |
785 | ||
29adcd50 | 786 | .. index:: {OSPF Command} {default-metric (0-16777214)} {} |
42fc5d26 | 787 | |
29adcd50 | 788 | {OSPF Command} {default-metric (0-16777214)} {} |
42fc5d26 QY |
789 | .. index:: {OSPF Command} {no default-metric} {} |
790 | ||
791 | {OSPF Command} {no default-metric} {} | |
29adcd50 | 792 | .. index:: {OSPF Command} {distance (1-255)} {} |
42fc5d26 | 793 | |
29adcd50 QY |
794 | {OSPF Command} {distance (1-255)} {} |
795 | .. index:: {OSPF Command} {no distance (1-255)} {} | |
42fc5d26 | 796 | |
29adcd50 QY |
797 | {OSPF Command} {no distance (1-255)} {} |
798 | .. index:: {OSPF Command} {distance ospf (intra-area|inter-area|external) (1-255)} {} | |
42fc5d26 | 799 | |
29adcd50 | 800 | {OSPF Command} {distance ospf (intra-area|inter-area|external) (1-255)} {} |
42fc5d26 QY |
801 | .. index:: {OSPF Command} {no distance ospf} {} |
802 | ||
803 | {OSPF Command} {no distance ospf} {} | |
804 | .. index:: {Command} {router zebra} {} | |
805 | ||
806 | {Command} {router zebra} {} | |
807 | .. index:: {Command} {no router zebra} {} | |
808 | ||
809 | {Command} {no router zebra} {} | |
810 | ||
811 | .. _Showing_OSPF_information: | |
812 | ||
813 | Showing OSPF information | |
814 | ======================== | |
815 | ||
816 | .. index:: {Command} {show ip ospf} {} | |
817 | ||
818 | {Command} {show ip ospf} {} | |
819 | .. _show_ip_ospf: | |
820 | ||
821 | Show information on a variety of general OSPF and | |
822 | area state and configuration information. | |
823 | ||
824 | .. index:: {Command} {show ip ospf interface [INTERFACE]} {} | |
825 | ||
826 | {Command} {show ip ospf interface [INTERFACE]} {} | |
827 | Show state and configuration of OSPF the specified interface, or all | |
828 | interfaces if no interface is given. | |
829 | ||
830 | .. index:: {Command} {show ip ospf neighbor} {} | |
831 | ||
832 | {Command} {show ip ospf neighbor} {} | |
833 | .. index:: {Command} {show ip ospf neighbor INTERFACE} {} | |
834 | ||
835 | {Command} {show ip ospf neighbor INTERFACE} {} | |
836 | .. index:: {Command} {show ip ospf neighbor detail} {} | |
837 | ||
838 | {Command} {show ip ospf neighbor detail} {} | |
839 | .. index:: {Command} {show ip ospf neighbor INTERFACE detail} {} | |
840 | ||
841 | {Command} {show ip ospf neighbor INTERFACE detail} {} | |
842 | .. index:: {Command} {show ip ospf database} {} | |
843 | ||
844 | {Command} {show ip ospf database} {} | |
845 | .. index:: {Command} {show ip ospf database (asbr-summary|external|network|router|summary)} {} | |
846 | ||
847 | {Command} {show ip ospf database (asbr-summary|external|network|router|summary)} {} | |
848 | .. index:: {Command} {show ip ospf database (asbr-summary|external|network|router|summary) `link-state-id`} {} | |
849 | ||
850 | {Command} {show ip ospf database (asbr-summary|external|network|router|summary) `link-state-id`} {} | |
851 | .. index:: {Command} {show ip ospf database (asbr-summary|external|network|router|summary) `link-state-id` adv-router `adv-router`} {} | |
852 | ||
853 | {Command} {show ip ospf database (asbr-summary|external|network|router|summary) `link-state-id` adv-router `adv-router`} {} | |
854 | .. index:: {Command} {show ip ospf database (asbr-summary|external|network|router|summary) adv-router `adv-router`} {} | |
855 | ||
856 | {Command} {show ip ospf database (asbr-summary|external|network|router|summary) adv-router `adv-router`} {} | |
857 | .. index:: {Command} {show ip ospf database (asbr-summary|external|network|router|summary) `link-state-id` self-originate} {} | |
858 | ||
859 | {Command} {show ip ospf database (asbr-summary|external|network|router|summary) `link-state-id` self-originate} {} | |
860 | .. index:: {Command} {show ip ospf database (asbr-summary|external|network|router|summary) self-originate} {} | |
861 | ||
862 | {Command} {show ip ospf database (asbr-summary|external|network|router|summary) self-originate} {} | |
863 | .. index:: {Command} {show ip ospf database max-age} {} | |
864 | ||
865 | {Command} {show ip ospf database max-age} {} | |
866 | .. index:: {Command} {show ip ospf database self-originate} {} | |
867 | ||
868 | {Command} {show ip ospf database self-originate} {} | |
869 | .. index:: {Command} {show ip ospf route} {} | |
870 | ||
871 | {Command} {show ip ospf route} {} | |
872 | Show the OSPF routing table, as determined by the most recent SPF calculation. | |
873 | ||
874 | .. _Opaque_LSA: | |
875 | ||
876 | Opaque LSA | |
877 | ========== | |
878 | ||
879 | .. index:: {OSPF Command} {ospf opaque-lsa} {} | |
880 | ||
881 | {OSPF Command} {ospf opaque-lsa} {} | |
882 | .. index:: {OSPF Command} {capability opaque} {} | |
883 | ||
884 | {OSPF Command} {capability opaque} {} | |
885 | .. index:: {OSPF Command} {no ospf opaque-lsa} {} | |
886 | ||
887 | {OSPF Command} {no ospf opaque-lsa} {} | |
888 | .. index:: {OSPF Command} {no capability opaque} {} | |
889 | ||
890 | {OSPF Command} {no capability opaque} {} | |
891 | *ospfd* support Opaque LSA (RFC2370) as fondment for MPLS Traffic Engineering LSA. Prior to used MPLS TE, opaque-lsa must be enable in the configuration file. Alternate command could be "mpls-te on" (:ref:`OSPF_Traffic_Engineering`). | |
892 | ||
893 | .. index:: {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external)} {} | |
894 | ||
895 | {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external)} {} | |
896 | .. index:: {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) `link-state-id`} {} | |
897 | ||
898 | {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) `link-state-id`} {} | |
899 | .. index:: {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) `link-state-id` adv-router `adv-router`} {} | |
900 | ||
901 | {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) `link-state-id` adv-router `adv-router`} {} | |
902 | .. index:: {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) adv-router `adv-router`} {} | |
903 | ||
904 | {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) adv-router `adv-router`} {} | |
905 | .. index:: {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) `link-state-id` self-originate} {} | |
906 | ||
907 | {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) `link-state-id` self-originate} {} | |
908 | .. index:: {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) self-originate} {} | |
909 | ||
910 | {Command} {show ip ospf database (opaque-link|opaque-area|opaque-external) self-originate} {} | |
911 | Show Opaque LSA from the database. | |
912 | ||
913 | .. _Traffic_Engineering: | |
914 | ||
915 | Traffic Engineering | |
916 | =================== | |
917 | ||
918 | .. index:: {OSPF Command} {mpls-te on} {} | |
919 | ||
920 | {OSPF Command} {mpls-te on} {} | |
921 | .. index:: {OSPF Command} {no mpls-te} {} | |
922 | ||
923 | {OSPF Command} {no mpls-te} {} | |
924 | Enable Traffic Engineering LSA flooding. | |
925 | ||
926 | .. index:: {OSPF Command} {mpls-te router-address <A.B.C.D>} {} | |
927 | ||
928 | {OSPF Command} {mpls-te router-address <A.B.C.D>} {} | |
929 | .. index:: {OSPF Command} {no mpls-te} {} | |
930 | ||
931 | {OSPF Command} {no mpls-te} {} | |
932 | Configure stable IP address for MPLS-TE. This IP address is then advertise in Opaque LSA Type-10 TLV=1 (TE) | |
933 | option 1 (Router-Address). | |
934 | ||
935 | .. index:: {OSPF Command} {mpls-te inter-as area <area-id>|as} {} | |
936 | ||
937 | {OSPF Command} {mpls-te inter-as area <area-id>|as} {} | |
938 | .. index:: {OSPF Command} {no mpls-te inter-as} {} | |
939 | ||
940 | {OSPF Command} {no mpls-te inter-as} {} | |
941 | Enable RFC5392 suuport - Inter-AS TE v2 - to flood Traffic Engineering parameters of Inter-AS link. | |
942 | 2 modes are supported: AREA and AS; LSA are flood in AREA <area-id> with Opaque Type-10, | |
943 | respectively in AS with Opaque Type-11. In all case, Opaque-LSA TLV=6. | |
944 | ||
945 | .. index:: {Command} {show ip ospf mpls-te interface} {} | |
946 | ||
947 | {Command} {show ip ospf mpls-te interface} {} | |
948 | .. index:: {Command} {show ip ospf mpls-te interface `interface`} {} | |
949 | ||
950 | {Command} {show ip ospf mpls-te interface `interface`} {} | |
951 | Show MPLS Traffic Engineering parameters for all or specified interface. | |
952 | ||
953 | .. index:: {Command} {show ip ospf mpls-te router} {} | |
954 | ||
955 | {Command} {show ip ospf mpls-te router} {} | |
956 | Show Traffic Engineering router parameters. | |
957 | ||
958 | .. _Router_Information: | |
959 | ||
960 | Router Information | |
961 | ================== | |
962 | ||
963 | .. index:: {OSPF Command} {router-info [as | area <A.B.C.D>]} {} | |
964 | ||
965 | {OSPF Command} {router-info [as | area <A.B.C.D>]} {} | |
966 | .. index:: {OSPF Command} {no router-info} {} | |
967 | ||
968 | {OSPF Command} {no router-info} {} | |
969 | Enable Router Information (RFC4970) LSA advertisement with AS scope (default) or Area scope flooding | |
970 | when area is specified. | |
971 | ||
972 | .. index:: {OSPF Command} {pce address <A.B.C.D>} {} | |
973 | ||
974 | {OSPF Command} {pce address <A.B.C.D>} {} | |
975 | .. index:: {OSPF Command} {no pce address} {} | |
976 | ||
977 | {OSPF Command} {no pce address} {} | |
29adcd50 | 978 | .. index:: {OSPF Command} {pce domain as (0-65535)} {} |
42fc5d26 | 979 | |
29adcd50 QY |
980 | {OSPF Command} {pce domain as (0-65535)} {} |
981 | .. index:: {OSPF Command} {no pce domain as (0-65535)} {} | |
42fc5d26 | 982 | |
29adcd50 QY |
983 | {OSPF Command} {no pce domain as (0-65535)} {} |
984 | .. index:: {OSPF Command} {pce neighbor as (0-65535)} {} | |
42fc5d26 | 985 | |
29adcd50 QY |
986 | {OSPF Command} {pce neighbor as (0-65535)} {} |
987 | .. index:: {OSPF Command} {no pce neighbor as (0-65535)} {} | |
42fc5d26 | 988 | |
29adcd50 | 989 | {OSPF Command} {no pce neighbor as (0-65535)} {} |
42fc5d26 QY |
990 | .. index:: {OSPF Command} {pce flag BITPATTERN} {} |
991 | ||
992 | {OSPF Command} {pce flag BITPATTERN} {} | |
993 | .. index:: {OSPF Command} {no pce flag} {} | |
994 | ||
995 | {OSPF Command} {no pce flag} {} | |
996 | .. index:: {OSPF Command} {pce scope BITPATTERN} {} | |
997 | ||
998 | {OSPF Command} {pce scope BITPATTERN} {} | |
999 | .. index:: {OSPF Command} {no pce scope} {} | |
1000 | ||
1001 | {OSPF Command} {no pce scope} {} | |
1002 | The commands are conform to RFC 5088 and allow OSPF router announce Path Compuatation Elemenent (PCE) capabilities | |
1003 | through the Router Information (RI) LSA. Router Information must be enable prior to this. The command set/unset | |
1004 | respectively the PCE IP adress, Autonomous System (AS) numbers of controlled domains, neighbor ASs, flag and scope. | |
1005 | For flag and scope, please refer to RFC5088 for the BITPATTERN recognition. Multiple 'pce neighbor' command could | |
1006 | be specified in order to specify all PCE neighbours. | |
1007 | ||
1008 | .. index:: {Command} {show ip ospf router-info} {} | |
1009 | ||
1010 | {Command} {show ip ospf router-info} {} | |
1011 | Show Router Capabilities flag. | |
1012 | .. index:: {Command} {show ip ospf router-info pce} {} | |
1013 | ||
1014 | {Command} {show ip ospf router-info pce} {} | |
1015 | Show Router Capabilities PCE parameters. | |
1016 | ||
1017 | .. _Debugging_OSPF: | |
1018 | ||
1019 | Debugging OSPF | |
1020 | ============== | |
1021 | ||
1022 | .. index:: {Command} {debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {} | |
1023 | ||
1024 | {Command} {debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {} | |
1025 | .. index:: {Command} {no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {} | |
1026 | ||
1027 | {Command} {no debug ospf packet (hello|dd|ls-request|ls-update|ls-ack|all) (send|recv) [detail]} {} | |
1028 | Dump Packet for debugging | |
1029 | ||
1030 | .. index:: {Command} {debug ospf ism} {} | |
1031 | ||
1032 | {Command} {debug ospf ism} {} | |
1033 | .. index:: {Command} {debug ospf ism (status|events|timers)} {} | |
1034 | ||
1035 | {Command} {debug ospf ism (status|events|timers)} {} | |
1036 | .. index:: {Command} {no debug ospf ism} {} | |
1037 | ||
1038 | {Command} {no debug ospf ism} {} | |
1039 | .. index:: {Command} {no debug ospf ism (status|events|timers)} {} | |
1040 | ||
1041 | {Command} {no debug ospf ism (status|events|timers)} {} | |
1042 | Show debug information of Interface State Machine | |
1043 | ||
1044 | .. index:: {Command} {debug ospf nsm} {} | |
1045 | ||
1046 | {Command} {debug ospf nsm} {} | |
1047 | .. index:: {Command} {debug ospf nsm (status|events|timers)} {} | |
1048 | ||
1049 | {Command} {debug ospf nsm (status|events|timers)} {} | |
1050 | .. index:: {Command} {no debug ospf nsm} {} | |
1051 | ||
1052 | {Command} {no debug ospf nsm} {} | |
1053 | .. index:: {Command} {no debug ospf nsm (status|events|timers)} {} | |
1054 | ||
1055 | {Command} {no debug ospf nsm (status|events|timers)} {} | |
1056 | Show debug information of Network State Machine | |
1057 | ||
1058 | .. index:: {Command} {debug ospf event} {} | |
1059 | ||
1060 | {Command} {debug ospf event} {} | |
1061 | .. index:: {Command} {no debug ospf event} {} | |
1062 | ||
1063 | {Command} {no debug ospf event} {} | |
1064 | Show debug information of OSPF event | |
1065 | ||
1066 | .. index:: {Command} {debug ospf nssa} {} | |
1067 | ||
1068 | {Command} {debug ospf nssa} {} | |
1069 | .. index:: {Command} {no debug ospf nssa} {} | |
1070 | ||
1071 | {Command} {no debug ospf nssa} {} | |
1072 | Show debug information about Not So Stub Area | |
1073 | ||
1074 | .. index:: {Command} {debug ospf lsa} {} | |
1075 | ||
1076 | {Command} {debug ospf lsa} {} | |
1077 | .. index:: {Command} {debug ospf lsa (generate|flooding|refresh)} {} | |
1078 | ||
1079 | {Command} {debug ospf lsa (generate|flooding|refresh)} {} | |
1080 | .. index:: {Command} {no debug ospf lsa} {} | |
1081 | ||
1082 | {Command} {no debug ospf lsa} {} | |
1083 | .. index:: {Command} {no debug ospf lsa (generate|flooding|refresh)} {} | |
1084 | ||
1085 | {Command} {no debug ospf lsa (generate|flooding|refresh)} {} | |
1086 | Show debug detail of Link State messages | |
1087 | ||
1088 | .. index:: {Command} {debug ospf te} {} | |
1089 | ||
1090 | {Command} {debug ospf te} {} | |
1091 | .. index:: {Command} {no debug ospf te} {} | |
1092 | ||
1093 | {Command} {no debug ospf te} {} | |
1094 | Show debug information about Traffic Engineering LSA | |
1095 | ||
1096 | .. index:: {Command} {debug ospf zebra} {} | |
1097 | ||
1098 | {Command} {debug ospf zebra} {} | |
1099 | .. index:: {Command} {debug ospf zebra (interface|redistribute)} {} | |
1100 | ||
1101 | {Command} {debug ospf zebra (interface|redistribute)} {} | |
1102 | .. index:: {Command} {no debug ospf zebra} {} | |
1103 | ||
1104 | {Command} {no debug ospf zebra} {} | |
1105 | .. index:: {Command} {no debug ospf zebra (interface|redistribute)} {} | |
1106 | ||
1107 | {Command} {no debug ospf zebra (interface|redistribute)} {} | |
1108 | Show debug information of ZEBRA API | |
1109 | ||
1110 | .. index:: {Command} {show debugging ospf} {} | |
1111 | ||
1112 | {Command} {show debugging ospf} {} | |
1113 | ||
1114 | OSPF Configuration Examples | |
1115 | =========================== | |
1116 | ||
1117 | A simple example, with MD5 authentication enabled: | |
1118 | ||
1119 | :: | |
1120 | ||
42fc5d26 QY |
1121 | ! |
1122 | interface bge0 | |
1123 | ip ospf authentication message-digest | |
1124 | ip ospf message-digest-key 1 md5 ABCDEFGHIJK | |
1125 | ! | |
1126 | router ospf | |
1127 | network 192.168.0.0/16 area 0.0.0.1 | |
1128 | area 0.0.0.1 authentication message-digest | |
a8c90e15 | 1129 | |
42fc5d26 | 1130 | |
d50b2aa0 | 1131 | An :abbr:`ABR` router, with MD5 authentication and performing summarisation |
42fc5d26 QY |
1132 | of networks between the areas: |
1133 | ||
1134 | :: | |
1135 | ||
42fc5d26 QY |
1136 | ! |
1137 | password ABCDEF | |
1138 | log file /var/log/frr/ospfd.log | |
1139 | service advanced-vty | |
1140 | ! | |
1141 | interface eth0 | |
1142 | ip ospf authentication message-digest | |
1143 | ip ospf message-digest-key 1 md5 ABCDEFGHIJK | |
1144 | ! | |
1145 | interface ppp0 | |
1146 | ! | |
1147 | interface br0 | |
1148 | ip ospf authentication message-digest | |
1149 | ip ospf message-digest-key 2 md5 XYZ12345 | |
1150 | ! | |
1151 | router ospf | |
1152 | ospf router-id 192.168.0.1 | |
1153 | redistribute connected | |
1154 | passive interface ppp0 | |
1155 | network 192.168.0.0/24 area 0.0.0.0 | |
1156 | network 10.0.0.0/16 area 0.0.0.0 | |
1157 | network 192.168.1.0/24 area 0.0.0.1 | |
1158 | area 0.0.0.0 authentication message-digest | |
1159 | area 0.0.0.0 range 10.0.0.0/16 | |
1160 | area 0.0.0.0 range 192.168.0.0/24 | |
1161 | area 0.0.0.1 authentication message-digest | |
1162 | area 0.0.0.1 range 10.2.0.0/16 | |
1163 | ! | |
a8c90e15 | 1164 | |
42fc5d26 QY |
1165 | |
1166 | A Traffic Engineering configuration, with Inter-ASv2 support. | |
1167 | ||
1168 | - First, the 'zebra.conf' part: | |
1169 | ||
1170 | :: | |
1171 | ||
42fc5d26 QY |
1172 | hostname HOSTNAME |
1173 | password PASSWORD | |
1174 | log file /var/log/zebra.log | |
1175 | ! | |
1176 | interface eth0 | |
1177 | ip address 198.168.1.1/24 | |
1178 | mpls-te on | |
1179 | mpls-te link metric 10 | |
1180 | mpls-te link max-bw 1.25e+06 | |
1181 | mpls-te link max-rsv-bw 1.25e+06 | |
1182 | mpls-te link unrsv-bw 0 1.25e+06 | |
1183 | mpls-te link unrsv-bw 1 1.25e+06 | |
1184 | mpls-te link unrsv-bw 2 1.25e+06 | |
1185 | mpls-te link unrsv-bw 3 1.25e+06 | |
1186 | mpls-te link unrsv-bw 4 1.25e+06 | |
1187 | mpls-te link unrsv-bw 5 1.25e+06 | |
1188 | mpls-te link unrsv-bw 6 1.25e+06 | |
1189 | mpls-te link unrsv-bw 7 1.25e+06 | |
1190 | mpls-te link rsc-clsclr 0xab | |
1191 | ! | |
1192 | interface eth1 | |
1193 | ip address 192.168.2.1/24 | |
1194 | mpls-te on | |
1195 | mpls-te link metric 10 | |
1196 | mpls-te link max-bw 1.25e+06 | |
1197 | mpls-te link max-rsv-bw 1.25e+06 | |
1198 | mpls-te link unrsv-bw 0 1.25e+06 | |
1199 | mpls-te link unrsv-bw 1 1.25e+06 | |
1200 | mpls-te link unrsv-bw 2 1.25e+06 | |
1201 | mpls-te link unrsv-bw 3 1.25e+06 | |
1202 | mpls-te link unrsv-bw 4 1.25e+06 | |
1203 | mpls-te link unrsv-bw 5 1.25e+06 | |
1204 | mpls-te link unrsv-bw 6 1.25e+06 | |
1205 | mpls-te link unrsv-bw 7 1.25e+06 | |
1206 | mpls-te link rsc-clsclr 0xab | |
1207 | mpls-te neighbor 192.168.2.2 as 65000 | |
a8c90e15 | 1208 | |
42fc5d26 QY |
1209 | |
1210 | - Then the 'ospfd.conf' itself: | |
1211 | ||
1212 | :: | |
1213 | ||
42fc5d26 QY |
1214 | hostname HOSTNAME |
1215 | password PASSWORD | |
1216 | log file /var/log/ospfd.log | |
1217 | ! | |
1218 | ! | |
1219 | interface eth0 | |
1220 | ip ospf hello-interval 60 | |
1221 | ip ospf dead-interval 240 | |
1222 | ! | |
1223 | interface eth1 | |
1224 | ip ospf hello-interval 60 | |
1225 | ip ospf dead-interval 240 | |
1226 | ! | |
1227 | ! | |
1228 | router ospf | |
1229 | ospf router-id 192.168.1.1 | |
1230 | network 192.168.0.0/16 area 1 | |
1231 | ospf opaque-lsa | |
1232 | mpls-te | |
1233 | mpls-te router-address 192.168.1.1 | |
1234 | mpls-te inter-as area 1 | |
1235 | ! | |
1236 | line vty | |
a8c90e15 | 1237 | |
42fc5d26 QY |
1238 | |
1239 | A router information example with PCE advsertisement: | |
1240 | ||
1241 | :: | |
1242 | ||
42fc5d26 QY |
1243 | ! |
1244 | router ospf | |
1245 | ospf router-id 192.168.1.1 | |
1246 | network 192.168.0.0/16 area 1 | |
1247 | capability opaque | |
1248 | mpls-te | |
1249 | mpls-te router-address 192.168.1.1 | |
1250 | router-info area 0.0.0.1 | |
1251 | pce address 192.168.1.1 | |
1252 | pce flag 0x80 | |
1253 | pce domain as 65400 | |
1254 | pce neighbor as 65500 | |
1255 | pce neighbor as 65200 | |
1256 | pce scope 0x80 | |
1257 | ! | |
a8c90e15 | 1258 | |
42fc5d26 | 1259 |