Merge pull request #433 from craterman/patch-13

OSPF: added OSPFv3 commands and formated OSPFv2
This commit is contained in:
Robert Göhler 2021-01-19 20:49:39 +01:00 committed by GitHub
commit c696c0ab33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,11 +20,8 @@ OSPFv2 (IPv4)
General Configuration General Configuration
--------------------- ---------------------
.. cfgcmd:: set protocols ospf area <number> VyOS does not have a special command to start the OSPF process. The OSPF process
starts when the first ospf enabled interface is configured.
This command is udes to enable the OSPF process. The area number can be
specified in decimal notation in the range from 0 to 4294967295. Or it
can be specified in dotted decimal notation similar to ip address.
.. cfgcmd:: set protocols ospf area <number> network <A.B.C.D/M> .. cfgcmd:: set protocols ospf area <number> network <A.B.C.D/M>
@ -33,6 +30,10 @@ General Configuration
interface so router can provide network information to the other ospf interface so router can provide network information to the other ospf
routers via this interface. routers via this interface.
This command is also used to enable the OSPF process. The area number can be
specified in decimal notation in the range from 0 to 4294967295. Or it
can be specified in dotted decimal notation similar to ip address.
.. cfgcmd:: set protocols ospf auto-cost reference-bandwidth <number> .. cfgcmd:: set protocols ospf auto-cost reference-bandwidth <number>
This command sets the reference bandwidth for cost calculations, where This command sets the reference bandwidth for cost calculations, where
@ -44,28 +45,32 @@ General Configuration
.. cfgcmd:: set protocols ospf parameters router-id <rid> .. cfgcmd:: set protocols ospf parameters router-id <rid>
This command sets the router-ID of the OSPF process. The router-ID may be an This command sets the router-ID of the OSPF process. The router-ID may be an
IP address of the router, but need not be it can be any arbitrary 32bit number. IP address of the router, but need not be it can be any arbitrary 32bit
However it MUST be unique within the entire OSPF domain to the OSPF speaker bad number. However it MUST be unique within the entire OSPF domain to the OSPF
things will happen if multiple OSPF speakers are configured with the same router-ID! speaker bad things will happen if multiple OSPF speakers are configured
with the same router-ID!
Optional Configuration Optional Configuration
---------------------- ----------------------
.. cfgcmd:: set protocols ospf default-information originate [always] [metric <number>] [metric-type <1|2>] [route-map <name>] .. cfgcmd:: set protocols ospf default-information originate [always]
[metric <number>] [metric-type <1|2>] [route-map <name>]
Originate an AS-External (type-5) LSA describing a default route into all Originate an AS-External (type-5) LSA describing a default route into all
external-routing capable areas, of the specified metric and metric type. external-routing capable areas, of the specified metric and metric type.
If the :cfgcmd:`always` keyword is given then the default is always advertised, If the :cfgcmd:`always` keyword is given then the default is always
even when there is no default present in the routing table. The argument advertised, even when there is no default present in the routing table.
:cfgcmd:`route-map` specifies to advertise the default route if the route map The argument :cfgcmd:`route-map` specifies to advertise the default route
is satisfied. if the route map is satisfied.
.. cfgcmd:: set protocols ospf distance global <distance> .. cfgcmd:: set protocols ospf distance global <distance>
This command change distance value of OSPF. The distance range is 1 to 255. This command change distance value of OSPF globally.
The distance range is 1 to 255.
.. cfgcmd:: set protocols ospf distance ospf <external|inter-area|intra-area> <distance> .. cfgcmd:: set protocols ospf distance ospf <external|inter-area|intra-area>
<distance>
This command change distance value of OSPF. The arguments are the distance This command change distance value of OSPF. The arguments are the distance
values for external routes, inter-area routes and intra-area routes values for external routes, inter-area routes and intra-area routes
@ -80,7 +85,8 @@ Optional Configuration
:cfgcmd:`detail` argument, all changes in adjacency status are shown. :cfgcmd:`detail` argument, all changes in adjacency status are shown.
Without :cfgcmd:`detail`, only changes to full or regressions are shown. Without :cfgcmd:`detail`, only changes to full or regressions are shown.
.. cfgcmd:: set protocols ospf max-metric router-lsa <administrative|on-shutdown <seconds>|on-startup <seconds>> .. cfgcmd:: set protocols ospf max-metric router-lsa
<administrative|on-shutdown <seconds>|on-startup <seconds>>
This enables :rfc:`3137` support, where the OSPF process describes its This enables :rfc:`3137` support, where the OSPF process describes its
transit links in its router-LSA as having infinite distance so that other transit links in its router-LSA as having infinite distance so that other
@ -94,65 +100,76 @@ Optional Configuration
and/or for a period of seconds prior to shutdown with the and/or for a period of seconds prior to shutdown with the
:cfgcmd:`on-shutdown <seconds>` command. The time range is 5 to 86400. :cfgcmd:`on-shutdown <seconds>` command. The time range is 5 to 86400.
.. cfgcmd:: set protocols ospf parameters abr-type <cisco|ibm|shortcut|standard> .. cfgcmd:: set protocols ospf parameters abr-type
<cisco|ibm|shortcut|standard>
This command selects ABR model. OSPF router supports four ABR models: This command selects ABR model. OSPF router supports four ABR models:
**cisco** a router will be considered as ABR if it has several configured links to **cisco** a router will be considered as ABR if it has several configured
the networks in different areas one of which is a backbone area. Moreover, the link links to the networks in different areas one of which is a backbone area.
to the backbone area should be active (working). Moreover, the link to the backbone area should be active (working).
**ibm** identical to "cisco" model but in this case a backbone area link may not be active. **ibm** identical to "cisco" model but in this case a backbone area link
may not be active.
**standard** router has several active links to different areas. **standard** router has several active links to different areas.
**shortcut** identical to "standard" but in this model a router is allowed to use a **shortcut** identical to "standard" but in this model a router is
connected areas topology without involving a backbone area for inter-area connections. allowed to use a connected areas topology without involving a backbone
area for inter-area connections.
Detailed information about "cisco" and "ibm" models differences can be found in :rfc:`3509`. Detailed information about "cisco" and "ibm" models differences can be
A "shortcut" model allows ABR to create routes between areas based on the topology of the found in :rfc:`3509`. A "shortcut" model allows ABR to create routes
areas connected to this router but not using a backbone area in case if non-backbone route between areas based on the topology of the areas connected to this router
will be cheaper. For more information about "shortcut" model, see :t:`ospf-shortcut-abr-02.txt` but not using a backbone area in case if non-backbone route will be
cheaper. For more information about "shortcut" model,
see :t:`ospf-shortcut-abr-02.txt`
.. cfgcmd:: set protocols ospf parameters rfc1583-compatibility .. cfgcmd:: set protocols ospf parameters rfc1583-compatibility
:rfc:`2328`, the successor to :rfc:`1583`, suggests according to section G.2 (changes) :rfc:`2328`, the successor to :rfc:`1583`, suggests according to section
in section 16.4.1 a change to the path preference algorithm that prevents possible G.2 (changes) in section 16.4.1 a change to the path preference algorithm
routing loops that were possible in the old version of OSPFv2. More specifically it that prevents possible routing loops that were possible in the old version
demands that inter-area paths and intra-area backbone path are now of equal preference of OSPFv2. More specifically it demands that inter-area paths and
but still both preferred to external paths. intra-area backbone path are now of equal preference but still both
preferred to external paths.
This command should NOT be set normally. This command should NOT be set normally.
.. cfgcmd:: set protocols ospf passive-interface <interface> .. cfgcmd:: set protocols ospf passive-interface <interface>
This command specifies interface as passive. Passive interface advertises its address, This command specifies interface as passive. Passive interface advertises
but does not run the OSPF protocol (adjacencies are not formed and hello packets are its address, but does not run the OSPF protocol (adjacencies are not formed
not generated). and hello packets are not generated).
.. cfgcmd:: set protocols ospf passive-interface default .. cfgcmd:: set protocols ospf passive-interface default
This command specifies all interfaces as passive by default. Because this command changes This command specifies all interfaces as passive by default. Because this
the configuration logic to a default passive; therefore, interfaces where router adjacencies command changes the configuration logic to a default passive; therefore,
are expected need to be configured with the :cfgcmd:`passive-interface-exclude` command. interfaces where router adjacencies are expected need to be configured
with the :cfgcmd:`passive-interface-exclude` command.
.. cfgcmd:: set protocols ospf passive-interface-exclude <interface> .. cfgcmd:: set protocols ospf passive-interface-exclude <interface>
This command allows exclude interface from passive state. This command is used if the This command allows exclude interface from passive state. This command is
command :cfgcmd:`passive-interface default` was configured. used if the command :cfgcmd:`passive-interface default` was configured.
.. cfgcmd:: set protocols ospf refresh timers <seconds> .. cfgcmd:: set protocols ospf refresh timers <seconds>
The router automatically updates link-state information with its neighbors. Only an obsolete The router automatically updates link-state information with its neighbors.
information is updated which age has exceeded a specific threshold. This parameter changes Only an obsolete information is updated which age has exceeded a specific
a threshold value, which by default is 1800 seconds (half an hour). The value is applied threshold. This parameter changes a threshold value, which by default is
to the whole OSPF router. The timer range is 10 to 1800. 1800 seconds (half an hour). The value is applied to the whole OSPF router.
The timer range is 10 to 1800.
.. cfgcmd:: set protocols ospf timers throttle spf <delay|initial-holdtime|max-holdtime> <seconds> .. cfgcmd:: set protocols ospf timers throttle spf
<delay|initial-holdtime|max-holdtime> <seconds>
This command sets the initial delay, the initial-holdtime and the maximum-holdtime between This command sets the initial delay, the initial-holdtime and the
when SPF is calculated and the event which triggered the calculation. The times are specified maximum-holdtime between when SPF is calculated and the event which
in milliseconds and must be in the range of 0 to 600000 milliseconds. :cfgcmd:`delay` sets triggered the calculation. The times are specified in milliseconds and must
the initial SPF schedule delay in milliseconds. The default value is 200 ms. be in the range of 0 to 600000 milliseconds. :cfgcmd:`delay` sets the
:cfgcmd:`initial-holdtime` sets the minimum hold time between two consecutive SPF calculations. initial SPF schedule delay in milliseconds. The default value is 200 ms.
The default value is 1000 ms. :cfgcmd:`max-holdtime` sets the maximum wait time between two :cfgcmd:`initial-holdtime` sets the minimum hold time between two
consecutive SPF calculations. The default value is 1000 ms.
:cfgcmd:`max-holdtime` sets the maximum wait time between two
consecutive SPF calculations. The default value is 10000 ms. consecutive SPF calculations. The default value is 10000 ms.
@ -161,108 +178,147 @@ Areas Configuration
.. cfgcmd:: set protocols ospf area <number> area-type stub .. cfgcmd:: set protocols ospf area <number> area-type stub
This command specifies the area to be a Stub Area. That is, an area where no router This command specifies the area to be a Stub Area. That is, an area where
originates routes external to OSPF and hence an area where all external routes are no router originates routes external to OSPF and hence an area where all
via the ABR(s). Hence, ABRs for such an area do not need to pass AS-External LSAs external routes are via the ABR(s). Hence, ABRs for such an area do not
(type-5) or ASBR-Summary LSAs (type-4) into the area. They need only pass need to pass AS-External LSAs (type-5) or ASBR-Summary LSAs (type-4) into
Network-Summary (type-3) LSAs into such an area, along with a default-route summary. the area. They need only pass Network-Summary (type-3) LSAs into such an
area, along with a default-route summary.
.. cfgcmd:: set protocols ospf area <number> area-type stub no-summary .. cfgcmd:: set protocols ospf area <number> area-type stub no-summary
This command specifies the area to be a Totally Stub Area. In addition to stub area This command specifies the area to be a Totally Stub Area. In addition to
limitations this area type prevents an ABR from injecting Network-Summary (type-3) stub area limitations this area type prevents an ABR from injecting
LSAs into the specified stub area. Only default summary route is allowed. Network-Summary (type-3) LSAs into the specified stub area. Only default
summary route is allowed.
.. cfgcmd:: set protocols ospf area <number> area-type stub default-cost <number> .. cfgcmd:: set protocols ospf area <number> area-type stub default-cost
<number>
This command sets the cost of default-summary LSAs announced to stubby areas. This command sets the cost of default-summary LSAs announced to stubby
The cost range is 0 to 16777215. areas. The cost range is 0 to 16777215.
.. cfgcmd:: set protocols ospf area <number> area-type nssa .. cfgcmd:: set protocols ospf area <number> area-type nssa
This command specifies the area to be a Not So Stubby Area. External routing information This command specifies the area to be a Not So Stubby Area. External
is imported into an NSSA in Type-7 LSAs. Type-7 LSAs are similar to Type-5 AS-external routing information is imported into an NSSA in Type-7 LSAs. Type-7 LSAs
LSAs, except that they can only be flooded into the NSSA. In order to further propagate are similar to Type-5 AS-external LSAs, except that they can only be
the NSSA external information, the Type-7 LSA must be translated to a Type-5 flooded into the NSSA. In order to further propagate the NSSA external
AS-external-LSA by the NSSA ABR. information, the Type-7 LSA must be translated to a Type-5 AS-external-LSA
by the NSSA ABR.
.. cfgcmd:: set protocols ospf area <number> area-type nssa no-summary .. cfgcmd:: set protocols ospf area <number> area-type nssa no-summary
This command specifies the area to be a NSSA Totally Stub Area. ABRs for such an area do This command specifies the area to be a NSSA Totally Stub Area. ABRs for
not need to pass Network-Summary (type-3) LSAs (except the default summary route), such an area do not need to pass Network-Summary (type-3) LSAs (except the
ASBR-Summary LSAs (type-4) and AS-External LSAs (type-5) into the area. But Type-7 LSAs default summary route), ASBR-Summary LSAs (type-4) and AS-External LSAs
that convert to Type-5 at the NSSA ABR are allowed. (type-5) into the area. But Type-7 LSAs that convert to Type-5 at the NSSA
ABR are allowed.
.. cfgcmd:: set protocols ospf area <number> area-type nssa default-cost <number> .. cfgcmd:: set protocols ospf area <number> area-type nssa default-cost
<number>
This command sets the default cost of LSAs announced to NSSA areas. This command sets the default cost of LSAs announced to NSSA areas.
The cost range is 0 to 16777215. The cost range is 0 to 16777215.
.. cfgcmd:: set protocols ospf area <number> area-type nssa translate <always|candidate|never> .. cfgcmd:: set protocols ospf area <number> area-type nssa translate
<always|candidate|never>
Specifies whether this NSSA border router will unconditionally translate Type-7 LSAs into Specifies whether this NSSA border router will unconditionally translate
Type-5 LSAs. When role is Always, Type-7 LSAs are translated into Type-5 LSAs regardless Type-7 LSAs into Type-5 LSAs. When role is Always, Type-7 LSAs are
of the translator state of other NSSA border routers. When role is Candidate, this router translated into Type-5 LSAs regardless of the translator state of other
participates in the translator election to determine if it will perform the translations NSSA border routers. When role is Candidate, this router participates in
duties. When role is Never, this router will never translate Type-7 LSAs into Type-5 LSAs. the translator election to determine if it will perform the translations
duties. When role is Never, this router will never translate Type-7 LSAs
into Type-5 LSAs.
.. cfgcmd:: set protocols ospf area <number> authentication plaintext-password .. cfgcmd:: set protocols ospf area <number> authentication plaintext-password
This command specifies that simple password authentication should be used for the given This command specifies that simple password authentication should be used
area. The password must also be configured on a per-interface basis. for the given area. The password must also be configured on a per-interface
basis.
.. cfgcmd:: set protocols ospf area <number> authentication md5 .. cfgcmd:: set protocols ospf area <number> authentication md5
This command specify that OSPF packets must be authenticated with MD5 HMACs within the This command specify that OSPF packets must be authenticated with MD5 HMACs
given area. Keying material must also be configured on a per-interface basis. within the given area. Keying material must also be configured on a
per-interface basis.
.. cfgcmd:: set protocols ospf area <number> range <A.B.C.D/M> [cost <number>]
This command summarizes intra area paths from specified area into one
summary-LSA (Type-3) announced to other areas. This command can be used
only in ABR and ONLY router-LSAs (Type-1) and network-LSAs (Type-2)
(i.e. LSAs with scope area) can be summarized. AS-external-LSAs (Type-5)
cant be summarized - their scope is AS. The optional argument
:cfgcmd:`cost` specifies the aggregated link metric. The metric range is 0
to 16777215.
.. cfgcmd:: set protocols ospf area <number> range <A.B.C.D/M> not-advertise
This command instead of summarizing intra area paths filter them - i.e.
intra area paths from this range are not advertised into other areas.
This command makes sense in ABR only.
.. cfgcmd:: set protocols ospf area <number> range <A.B.C.D/M> substitute
<E.F.G.H/M>
One Type-3 summary-LSA with routing info <E.F.G.H/M> is announced into
backbone area if defined area contains at least one intra-area network
(i.e. described with router-LSA or network-LSA) from range <A.B.C.D/M>.
This command makes sense in ABR only.
.. cfgcmd:: set protocols ospf area <number> shortcut <default|disable|enable> .. cfgcmd:: set protocols ospf area <number> shortcut <default|disable|enable>
This parameter allows to "shortcut" routes (non-backbone) for inter-area routes. There This parameter allows to "shortcut" routes (non-backbone) for inter-area
are three modes available for routes shortcutting: routes. There are three modes available for routes shortcutting:
**default** this area will be used for shortcutting only if ABR does not have a link **default** this area will be used for shortcutting only if ABR does not
to the backbone area or this link was lost. have a link to the backbone area or this link was lost.
**enable** the area will be used for shortcutting every time the route that goes through **enable** the area will be used for shortcutting every time the route
it is cheaper. that goes through it is cheaper.
**disable** this area is never used by ABR for routes shortcutting. **disable** this area is never used by ABR for routes shortcutting.
.. cfgcmd:: set protocols ospf area <number> virtual-link <A.B.C.D> .. cfgcmd:: set protocols ospf area <number> virtual-link <A.B.C.D>
Provides a backbone area coherence by virtual link establishment. Provides a backbone area coherence by virtual link establishment.
In general, OSPF protocol requires a backbone area (area 0) to be coherent and fully In general, OSPF protocol requires a backbone area (area 0) to be coherent
connected. I.e. any backbone area router must have a route to any other backbone area and fully connected. I.e. any backbone area router must have a route to any
router. Moreover, every ABR must have a link to backbone area. However, it is not always other backbone area router. Moreover, every ABR must have a link to
possible to have a physical link to a backbone area. In this case between two ABR (one backbone area. However, it is not always possible to have a physical link
of them has a link to the backbone area) in the area (not stub area) a virtual link is organized. to a backbone area. In this case between two ABR (one of them has a link to
the backbone area) in the area (not stub area) a virtual link is organized.
<number> area identifier through which a virtual link goes. <number> area identifier through which a virtual link goes.
<A.B.C.D> ABR router-id with which a virtual link is established. Virtual link must be <A.B.C.D> ABR router-id with which a virtual link is established. Virtual
configured on both routers. link must be configured on both routers.
Formally, a virtual link looks like a point-to-point network connecting two ABR from one Formally, a virtual link looks like a point-to-point network connecting two
area one of which physically connected to a backbone area. This pseudo-network is considered ABR from one area one of which physically connected to a backbone area.
to belong to a backbone area. This pseudo-network is considered to belong to a backbone area.
Interfaces Configuration Interfaces Configuration
------------------------ ------------------------
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf authentication plaintext-password <text> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf authentication
plaintext-password <text>
This command sets OSPF authentication key to a simple password. After setting, all OSPF This command sets OSPF authentication key to a simple password. After
packets are authenticated. Key has length up to 8 chars. setting, all OSPF packets are authenticated. Key has length up to 8 chars.
Simple text password authentication is insecure and deprecated in favour of MD5 HMAC Simple text password authentication is insecure and deprecated in favour of
authentication. MD5 HMAC authentication.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf authentication md5 key-id <id> md5-key <text> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf authentication md5
key-id <id> md5-key <text>
This command specifys that MD5 HMAC authentication must be used on this interface. It sets This command specifys that MD5 HMAC authentication must be used on this
OSPF authentication key to a cryptographic password. Key-id identifies secret key used to interface. It sets OSPF authentication key to a cryptographic password.
create the message digest. This ID is part of the protocol and must be consistent across Key-id identifies secret key used to create the message digest. This ID
routers on a link. The key can be long up to 16 chars (larger strings will be truncated), is part of the protocol and must be consistent across routers on a link.
The key can be long up to 16 chars (larger strings will be truncated),
and is associated with the given key-id. and is associated with the given key-id.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf bandwidth <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf bandwidth <number>
@ -272,66 +328,73 @@ Interfaces Configuration
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf cost <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf cost <number>
This command sets link cost for the specified interface. The cost value is set to This command sets link cost for the specified interface. The cost value is
router-LSAs metric field and used for SPF calculation. The cost range is 1 to 65535. set to router-LSAs metric field and used for SPF calculation. The cost
range is 1 to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf dead-interval <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf dead-interval <number>
Set number of seconds for router Dead Interval timer value used for Wait Timer and Set number of seconds for router Dead Interval timer value used for Wait
Inactivity Timer. This value must be the same for all routers attached to a common Timer and Inactivity Timer. This value must be the same for all routers
network. The default value is 40 seconds. The interval range is 1 to 65535. attached to a common network. The default value is 40 seconds. The
interval range is 1 to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf hello-interval <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf hello-interval <number>
Set number of seconds for Hello Interval timer value. Setting this value, Hello Set number of seconds for Hello Interval timer value. Setting this value,
packet will be sent every timer value seconds on the specified interface. This Hello packet will be sent every timer value seconds on the specified
value must be the same for all routers attached to a common network. The default interface. This value must be the same for all routers attached to a
value is 10 seconds. The interval range is 1 to 65535. common network. The default value is 10 seconds. The interval range is 1
to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf mtu-ignore .. cfgcmd:: set interfaces <inttype> <intname> ip ospf mtu-ignore
This command disables check of the MTU value in the OSPF DBD packets. Thus, use This command disables check of the MTU value in the OSPF DBD packets. Thus,
of this command allows the OSPF adjacency to reach the FULL state even though use of this command allows the OSPF adjacency to reach the FULL state even
there is an interface MTU mismatch between two OSPF routers. though there is an interface MTU mismatch between two OSPF routers.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf network <type> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf network <type>
This command allows to specify the distribution type for the network connected This command allows to specify the distribution type for the network
to this interface: connected to this interface:
**broadcast** broadcast IP addresses distribution. **broadcast** broadcast IP addresses distribution.
**non-broadcast** address distribution in NBMA networks topology. **non-broadcast** address distribution in NBMA networks topology.
**point-to-multipoint** address distribution in point-to-multipoint networks. **point-to-multipoint** address distribution in point-to-multipoint
networks.
**point-to-point** address distribution in point-to-point networks. **point-to-point** address distribution in point-to-point networks.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf priority <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf priority <number>
This command sets Router Priority integer value. The router with the highest This command sets Router Priority integer value. The router with the
priority will be more eligible to become Designated Router. Setting the value highest priority will be more eligible to become Designated Router.
to 0, makes the router ineligible to become Designated Router. The default value Setting the value to 0, makes the router ineligible to become
is 1. The interval range is 0 to 255. Designated Router. The default value is 1. The interval range is 0 to 255.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf retransmit-interval <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf retransmit-interval
<number>
This command sets number of seconds for RxmtInterval timer value. This value is used This command sets number of seconds for RxmtInterval timer value. This
when retransmitting Database Description and Link State Request packets if acknowledge value is used when retransmitting Database Description and Link State
was not received. The default value is 5 seconds. The interval range is 3 to 65535. Request packets if acknowledge was not received. The default value is 5
seconds. The interval range is 3 to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ip ospf transmit-delay <number> .. cfgcmd:: set interfaces <inttype> <intname> ip ospf transmit-delay <number>
This command sets number of seconds for InfTransDelay value. It allows to set and adjust This command sets number of seconds for InfTransDelay value. It allows to
for each interface the delay interval before starting the synchronizing process of the set and adjust for each interface the delay interval before starting the
router's database with all neighbors. The default value is 1 seconds. The interval range synchronizing process of the router's database with all neighbors. The
is 3 to 65535. default value is 1 seconds. The interval range is 3 to 65535.
Manual Neighbor Configuration Manual Neighbor Configuration
----------------------------- -----------------------------
OSPF routing devices normally discover their neighbors dynamically by listening to the broadcast OSPF routing devices normally discover their neighbors dynamically by
or multicast hello packets on the network. Because an NBMA network does not support broadcast (or listening to the broadcast or multicast hello packets on the network.
multicast), the device cannot discover its neighbors dynamically, so you must configure all the Because an NBMA network does not support broadcast (or multicast), the
neighbors statically. device cannot discover its neighbors dynamically, so you must configure all
the neighbors statically.
.. cfgcmd:: set protocols ospf neighbor <A.B.C.D> .. cfgcmd:: set protocols ospf neighbor <A.B.C.D>
@ -339,39 +402,26 @@ neighbors statically.
.. cfgcmd:: set protocols ospf neighbor <A.B.C.D> poll-interval <seconds> .. cfgcmd:: set protocols ospf neighbor <A.B.C.D> poll-interval <seconds>
This command specifies the length of time, in seconds, before the routing device sends hello This command specifies the length of time, in seconds, before the routing
packets out of the interface before it establishes adjacency with a neighbor. The range is 1 device sends hello packets out of the interface before it establishes
to 65535 seconds. The default value is 60 seconds. adjacency with a neighbor. The range is 1 to 65535 seconds. The default
value is 60 seconds.
.. cfgcmd:: set protocols ospf neighbor <A.B.C.D> priority <number> .. cfgcmd:: set protocols ospf neighbor <A.B.C.D> priority <number>
This command specifies the router priority value of the nonbroadcast neighbor associated with This command specifies the router priority value of the nonbroadcast
the IP address specified. The default is 0. This keyword does not apply to point-to-multipoint neighbor associated with the IP address specified. The default is 0.
interfaces. This keyword does not apply to point-to-multipoint interfaces.
Redistribution Configuration Redistribution Configuration
---------------------------- ----------------------------
.. cfgcmd:: set protocols ospf redistribute bgp .. cfgcmd:: set protocols ospf redistribute <route source>
Redistribute BGP routes to OSPF process. This command redistributes routing information from the given route source
to the OSPF process. There are five modes available for route source: bgp,
.. cfgcmd:: set protocols ospf redistribute connected connected, kernel, rip, static.
Redistribute connected routes to OSPF process.
.. cfgcmd:: set protocols ospf redistribute kernel
Redistribute kernel routes to OSPF process.
.. cfgcmd:: set protocols ospf redistribute rip
Redistribute RIP routes to OSPF process.
.. cfgcmd:: set protocols ospf redistribute static
Redistribute static routes to OSPF process.
.. cfgcmd:: set protocols ospf default-metric <number> .. cfgcmd:: set protocols ospf default-metric <number>
@ -380,29 +430,33 @@ Redistribution Configuration
.. cfgcmd:: set protocols ospf redistribute <route source> metric <number> .. cfgcmd:: set protocols ospf redistribute <route source> metric <number>
This command specifies metric for redistributed routes from given route source. There This command specifies metric for redistributed routes from given route
are five modes available for route source: bgp, connected, kernel, rip, static. The source. There are five modes available for route source: bgp, connected,
metric range is 1 to 16. kernel, rip, static. The metric range is 1 to 16.
.. cfgcmd:: set protocols ospf redistribute <route source> metric-type <1|2> .. cfgcmd:: set protocols ospf redistribute <route source> metric-type <1|2>
This command specifies metric type for redistributed routes. Difference between two metric This command specifies metric type for redistributed routes. Difference
types that metric type 1 is a metric which is "commensurable" with inner OSPF links. When between two metric types that metric type 1 is a metric which is
calculating a metric to the external destination, the full path metric is calculated as a "commensurable" with inner OSPF links. When calculating a metric to the
metric sum path of a router which had advertised this link plus the link metric. Thus, a external destination, the full path metric is calculated as a metric sum
route with the least summary metric will be selected. If external link is advertised with path of a router which had advertised this link plus the link metric.
metric type 2 the path is selected which lies through the router which advertised this link Thus, a route with the least summary metric will be selected. If external
with the least metric despite of the fact that internal path to this router is longer (with link is advertised with metric type 2 the path is selected which lies
more cost). However, if two routers advertised an external link and with metric type 2 the through the router which advertised this link with the least metric
preference is given to the path which lies through the router with a shorter internal path. despite of the fact that internal path to this router is longer (with more
If two different routers advertised two links to the same external destimation but with cost). However, if two routers advertised an external link and with metric
different metric type, metric type 1 is preferred. If type of a metric left undefined the type 2 the preference is given to the path which lies through the router
router will consider these external links to have a default metric type 2. with a shorter internal path. If two different routers advertised two
links to the same external destimation but with different metric type,
metric type 1 is preferred. If type of a metric left undefined the router
will consider these external links to have a default metric type 2.
.. cfgcmd:: set protocols ospf redistribute <route source> route-map <name> .. cfgcmd:: set protocols ospf redistribute <route source> route-map <name>
This command allows to use route map to filter redistributed routes from given route source. This command allows to use route map to filter redistributed routes from
There are five modes available for route source: bgp, connected, kernel, rip, static. given route source. There are five modes available for route source: bgp,
connected, kernel, rip, static.
Operational Mode Commands Operational Mode Commands
@ -420,8 +474,8 @@ Operational Mode Commands
.. opcmd:: show ip ospf neighbor detail .. opcmd:: show ip ospf neighbor detail
This command displays the neighbors information in a detailed form, not just This command displays the neighbors information in a detailed form, not
a summary table. just a summary table.
.. code-block:: none .. code-block:: none
@ -459,18 +513,18 @@ Operational Mode Commands
.. opcmd:: show ip ospf neighbor <A.B.C.D> .. opcmd:: show ip ospf neighbor <A.B.C.D>
This command displays the neighbors information in a detailed form for a neighbor This command displays the neighbors information in a detailed form for a
whose IP address is specified. neighbor whose IP address is specified.
.. opcmd:: show ip ospf neighbor <intname> .. opcmd:: show ip ospf neighbor <intname>
This command displays the neighbors status for a neighbor on the specified This command displays the neighbors status for a neighbor on the specified
interface. interface.
.. opcmd:: show ip ospf interface [intname] .. opcmd:: show ip ospf interface [<intname>]
This command displays state and configuration of OSPF the specified interface, This command displays state and configuration of OSPF the specified
or all interfaces if no interface is given. interface, or all interfaces if no interface is given.
.. code-block:: none .. code-block:: none
@ -500,8 +554,8 @@ Operational Mode Commands
.. opcmd:: show ip ospf route .. opcmd:: show ip ospf route
This command displays the OSPF routing table, as determined by the most recent This command displays the OSPF routing table, as determined by the most
SPF calculation. recent SPF calculation.
.. code-block:: none .. code-block:: none
@ -528,22 +582,23 @@ Operational Mode Commands
The table consists of following data: The table consists of following data:
**OSPF network routing table** includes a list of acquired routes for all **OSPF network routing table** includes a list of acquired routes for all
accessible networks (or aggregated area ranges) of OSPF system. "IA" flag means accessible networks (or aggregated area ranges) of OSPF system. "IA" flag
that route destination is in the area to which the router is not connected, i.e. means that route destination is in the area to which the router is not
its an inter-area path. In square brackets a summary metric for all links through connected, i.e. its an inter-area path. In square brackets a summary metric
which a path lies to this network is specified. "via" prefix defines a for all links through which a path lies to this network is specified. "via"
router-gateway, i.e. the first router on the way to the destination (next hop). prefix defines a router-gateway, i.e. the first router on the way to the
destination (next hop).
**OSPF router routing table** includes a list of acquired routes to all **OSPF router routing table** includes a list of acquired routes to all
accessible ABRs and ASBRs. accessible ABRs and ASBRs.
**OSPF external routing table** includes a list of acquired routes that are **OSPF external routing table** includes a list of acquired routes that are
external to the OSPF process. "E" flag points to the external link metric type external to the OSPF process. "E" flag points to the external link metric type
(E1 metric type 1, E2 metric type 2). External link metric is printed in the (E1 metric type 1, E2 metric type 2). External link metric is printed in
"<metric of the router which advertised the link>/<link metric>" format. the "<metric of the router which advertised the link>/<link metric>" format.
.. opcmd:: show ip ospf border-routers .. opcmd:: show ip ospf border-routers
This command displays a table of paths to area boundary and autonomous system This command displays a table of paths to area boundary and autonomous
boundary routers. system boundary routers.
.. opcmd:: show ip ospf database .. opcmd:: show ip ospf database
@ -577,23 +632,26 @@ external to the OSPF process. "E" flag points to the external link metric type
Link ID ADV Router Age Seq# CkSum Route Link ID ADV Router Age Seq# CkSum Route
172.16.0.0 10.0.34.4 1063 0x80000001 0xc40d E2 172.16.0.0/24 [0x0] 172.16.0.0 10.0.34.4 1063 0x80000001 0xc40d E2 172.16.0.0/24 [0x0]
.. opcmd:: show ip ospf database <type> [A.B.C.D] [adv-router <A.B.C.D>|self-originate] .. opcmd:: show ip ospf database <type> [A.B.C.D]
[adv-router <A.B.C.D>|self-originate]
This command displays a database contents for a specific link advertisement type. This command displays a database contents for a specific link advertisement
type.
The type can be the following: The type can be the following:
asbr-summary, external, network, nssa-external, opaque-area, opaque-as, asbr-summary, external, network, nssa-external, opaque-area, opaque-as,
opaque-link, router, summary. opaque-link, router, summary.
[A.B.C.D] link-state-id. With this specified the command displays portion of [A.B.C.D] link-state-id. With this specified the command displays portion
the network environment that is being described by the advertisement. The value of the network environment that is being described by the advertisement.
entered depends on the advertisements LS type. It must be entered in the form The value entered depends on the advertisements LS type. It must be
of an IP address. entered in the form of an IP address.
:cfgcmd:`adv-router <A.B.C.D>` router id, which link advertisements need to be :cfgcmd:`adv-router <A.B.C.D>` router id, which link advertisements need
reviewed. to be reviewed.
:cfgcmd:`self-originate` displays only self-originated LSAs from the local router. :cfgcmd:`self-originate` displays only self-originated LSAs from the local
router.
.. code-block:: none .. code-block:: none
@ -666,6 +724,203 @@ address and the node 1 sending the default route:
OSPFv3 (IPv6) OSPFv3 (IPv6)
############# #############
General Configuration
---------------------
VyOS does not have a special command to start the OSPFv3 process. The OSPFv3
process starts when the first ospf enabled interface is configured.
.. cfgcmd:: set protocols ospfv3 area <number> interface <interface>
This command specifies the OSPFv3 enabled interface. This command is also
used to enable the OSPF process. The area number can be specified in
decimal notation in the range from 0 to 4294967295. Or it can be specified
in dotted decimal notation similar to ip address.
.. cfgcmd:: set protocols ospfv3 parameters router-id <rid>
This command sets the router-ID of the OSPFv3 process. The router-ID may be
an IP address of the router, but need not be it can be any arbitrary
32bit number. However it MUST be unique within the entire OSPFv3 domain to
the OSPFv3 speaker bad things will happen if multiple OSPFv3 speakers are
configured with the same router-ID!
Optional Configuration
----------------------
.. cfgcmd:: set protocols ospfv3 distance global <distance>
This command change distance value of OSPFv3 globally.
The distance range is 1 to 255.
.. cfgcmd:: set protocols ospfv3 distance ospfv3
<external|inter-area|intra-area> <distance>
This command change distance value of OSPFv3. The arguments are the
distance values for external routes, inter-area routes and intra-area
routes respectively. The distance range is 1 to 255.
Areas Configuration
-------------------
.. cfgcmd:: set protocols ospfv3 area <number> range <prefix>
This command summarizes intra area paths from specified area into one
Type-3 Inter-Area Prefix LSA announced to other areas. This command can be
used only in ABR.
.. cfgcmd:: set protocols ospfv3 area <number> range <prefix> not-advertise
This command instead of summarizing intra area paths filter them - i.e.
intra area paths from this range are not advertised into other areas. This
command makes sense in ABR only.
Interfaces Configuration
------------------------
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 cost <number>
This command sets link cost for the specified interface. The cost value is
set to router-LSAs metric field and used for SPF calculation. The cost
range is 1 to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 dead-interval
<number>
Set number of seconds for router Dead Interval timer value used for Wait
Timer and Inactivity Timer. This value must be the same for all routers
attached to a common network. The default value is 40 seconds. The
interval range is 1 to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 hello-interval
<number>
Set number of seconds for Hello Interval timer value. Setting this value,
Hello packet will be sent every timer value seconds on the specified
interface. This value must be the same for all routers attached to a
common network. The default value is 10 seconds. The interval range is 1
to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 mtu-ignore
This command disables check of the MTU value in the OSPF DBD packets.
Thus, use of this command allows the OSPF adjacency to reach the FULL
state even though there is an interface MTU mismatch between two OSPF
routers.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 network <type>
This command allows to specify the distribution type for the network
connected to this interface:
**broadcast** broadcast IP addresses distribution.
**point-to-point** address distribution in point-to-point networks.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 priority <number>
This command sets Router Priority integer value. The router with the
highest priority will be more eligible to become Designated Router.
Setting the value to 0, makes the router ineligible to become Designated
Router. The default value is 1. The interval range is 0 to 255.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 passive
This command specifies interface as passive. Passive interface advertises
its address, but does not run the OSPF protocol (adjacencies are not formed
and hello packets are not generated).
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 retransmit-interval
<number>
This command sets number of seconds for RxmtInterval timer value. This
value is used when retransmitting Database Description and Link State
Request packets if acknowledge was not received. The default value is 5
seconds. The interval range is 3 to 65535.
.. cfgcmd:: set interfaces <inttype> <intname> ipv6 ospfv3 transmit-delay
<number>
This command sets number of seconds for InfTransDelay value. It allows to
set and adjust for each interface the delay interval before starting the
synchronizing process of the router's database with all neighbors. The
default value is 1 seconds. The interval range is 3 to 65535.
Redistribution Configuration
----------------------------
.. cfgcmd:: set protocols ospfv3 redistribute <route source>
This command redistributes routing information from the given route source
to the OSPFv3 process. There are five modes available for route source:
bgp, connected, kernel, ripng, static.
.. cfgcmd:: set protocols ospf redistribute <route source> route-map <name>
This command allows to use route map to filter redistributed routes from
given route source. There are five modes available for route source: bgp,
connected, kernel, ripng, static.
Operational Mode Commands
-------------------------
.. opcmd:: show ipv6 ospfv3 neighbor
This command displays the neighbors status.
.. opcmd:: show ipv6 ospfv3 neighbor detail
This command displays the neighbors information in a detailed form, not
just a summary table.
.. opcmd:: show ipv6 ospfv3 neighbor <A.B.C.D>
This command displays the neighbors information in a detailed form for
a neighbor whose IP address is specified.
.. opcmd:: show ipv6 ospfv3 neighbor <intname>
This command displays the neighbors status for a neighbor on the specified
interface.
.. opcmd:: show ipv6 ospfv3 interface [prefix]|[<intname> [prefix]]
This command displays state and configuration of OSPF the specified
interface, or all interfaces if no interface is given. Whith the argument
:cfgcmd:`prefix` this command shows connected prefixes to advertise.
.. opcmd:: show ipv6 ospfv3 route
This command displays the OSPF routing table, as determined by the most
recent SPF calculation.
.. opcmd:: show ipv6 ospfv3 border-routers
This command displays a table of paths to area boundary and autonomous
system boundary routers.
.. opcmd:: show ipv6 ospfv3 database
This command displays a summary table with a database contents (LSA).
.. opcmd:: show ipv6 ospfv3 database <type> [A.B.C.D]
[adv-router <A.B.C.D>|self-originate]
This command displays a database contents for a specific link
advertisement type.
.. opcmd:: show ipv6 ospfv3 redistribute
This command displays external information redistributed into OSPFv3
Configuration Example
---------------------
A typical configuration using 2 nodes. A typical configuration using 2 nodes.
**Node 1:** **Node 1:**
@ -692,9 +947,9 @@ A typical configuration using 2 nodes.
show ipv6 ospfv3 redistribute show ipv6 ospfv3 redistribute
.. note:: You cannot easily redistribute IPv6 routes via OSPFv3 on a WireGuard .. note:: You cannot easily redistribute IPv6 routes via OSPFv3 on a
interface link. This requires you to configure link-local addresses manually WireGuard interface link. This requires you to configure link-local
on the WireGuard interfaces, see :vytask:`T1483`. addresses manually on the WireGuard interfaces, see :vytask:`T1483`.
Example configuration for WireGuard interfaces: Example configuration for WireGuard interfaces: