diff options
Diffstat (limited to 'docs/configuration/protocols')
| -rw-r--r-- | docs/configuration/protocols/ospf.rst | 691 | 
1 files changed, 473 insertions, 218 deletions
| diff --git a/docs/configuration/protocols/ospf.rst b/docs/configuration/protocols/ospf.rst index 7d9950e6..7270febc 100644 --- a/docs/configuration/protocols/ospf.rst +++ b/docs/configuration/protocols/ospf.rst @@ -20,11 +20,8 @@ OSPFv2 (IPv4)  General Configuration  --------------------- -.. cfgcmd:: set protocols ospf area <number> - -   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. +VyOS does not have a special command to start the OSPF process. The OSPF process +starts when the first ospf enabled interface is configured.  .. cfgcmd:: set protocols ospf area <number> network <A.B.C.D/M> @@ -32,40 +29,48 @@ General Configuration     an address from defined range then the command enables OSPF on this      interface so router can provide network information to the other ospf      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> -   This command sets the reference bandwidth for cost calculations, where  -   bandwidth can be in range from 1 to 4294967, specified in Mbits/s. The  -   default is 100Mbit/s (i.e. a link of bandwidth 100Mbit/s or higher will  -   have a cost of 1. Cost of lower bandwidth links will be scaled with  +   This command sets the reference bandwidth for cost calculations, where +   bandwidth can be in range from 1 to 4294967, specified in Mbits/s. The +   default is 100Mbit/s (i.e. a link of bandwidth 100Mbit/s or higher will +   have a cost of 1. Cost of lower bandwidth links will be scaled with     reference to this cost).  .. cfgcmd:: set protocols ospf parameters router-id <rid>     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. -   However it MUST be unique within the entire OSPF domain to the OSPF speaker – bad -   things will happen if multiple OSPF speakers are configured with the same router-ID! +   IP address of the router, but need not be – it can be any arbitrary 32bit +   number. However it MUST be unique within the entire OSPF domain to the OSPF +   speaker – bad things will happen if multiple OSPF speakers are configured +   with the same router-ID!  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      external-routing capable areas, of the specified metric and metric type.  -   If the :cfgcmd:`always` keyword is given then the default is always advertised,  -   even when there is no default present in the routing table. The argument -   :cfgcmd:`route-map` specifies to advertise the default route if the route map  -   is satisfied. +   If the :cfgcmd:`always` keyword is given then the default is always +   advertised, even when there is no default present in the routing table. +   The argument :cfgcmd:`route-map` specifies to advertise the default route +   if the route map is satisfied.  .. 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      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.     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     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     :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: -   **cisco** – a router will be considered as ABR if it has several configured links to  -   the networks in different areas one of which is a backbone area. 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. +   **cisco** – a router will be considered as ABR if it has several configured +   links to the networks in different areas one of which is a backbone area. +   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.     **standard** – router has several active links to different areas. -   **shortcut** – identical to "standard" but in this model a router is allowed to use a  -   connected areas topology without involving a backbone area for inter-area connections. +   **shortcut** – identical to "standard" but in this model a router is +   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`.  -   A "shortcut" model allows ABR to create routes between areas based on the topology of the  -   areas connected to this router 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` +   Detailed information about "cisco" and "ibm" models differences can be +   found in :rfc:`3509`. A "shortcut" model allows ABR to create routes +   between areas based on the topology of the areas connected to this router +   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 -   :rfc:`2328`, the successor to :rfc:`1583`, suggests according to section G.2 (changes) -   in section 16.4.1 a change to the path preference algorithm that prevents possible  -   routing loops that were possible in the old version of OSPFv2. More specifically it  -   demands that inter-area paths and intra-area backbone path are now of equal preference  -   but still both preferred to external paths. +   :rfc:`2328`, the successor to :rfc:`1583`, suggests according to section +   G.2 (changes) in section 16.4.1 a change to the path preference algorithm +   that prevents possible routing loops that were possible in the old version +   of OSPFv2. More specifically it demands that inter-area paths and +   intra-area backbone path are now of equal preference but still both +   preferred to external paths.     This command should NOT be set normally.  .. cfgcmd:: set protocols ospf passive-interface <interface> -   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). +   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 protocols ospf passive-interface default -   This command specifies all interfaces as passive by default. Because this command changes  -   the configuration logic to a default passive; therefore, interfaces where router adjacencies -   are expected need to be configured with the :cfgcmd:`passive-interface-exclude` command. +   This command specifies all interfaces as passive by default. Because this +   command changes the configuration logic to a default passive; therefore, +   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> -   This command allows exclude interface from passive state. This command is used if the -   command :cfgcmd:`passive-interface default` was configured. +   This command allows exclude interface from passive state. This command is +   used if the command :cfgcmd:`passive-interface default` was configured.  .. cfgcmd:: set protocols ospf refresh timers <seconds> -   The router automatically updates link-state information with its neighbors. Only an obsolete -   information is updated which age has exceeded a specific threshold. This parameter changes -   a threshold value, which by default is 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> - -   This command sets the initial delay, the initial-holdtime and the maximum-holdtime between -   when SPF is calculated and the event which triggered the calculation. The times are specified -   in milliseconds and must be in the range of 0 to 600000 milliseconds. :cfgcmd:`delay` sets -   the initial SPF schedule delay in milliseconds. The default value is 200 ms. -   :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 +   The router automatically updates link-state information with its neighbors. +   Only an obsolete information is updated which age has exceeded a specific +   threshold. This parameter changes a threshold value, which by default is +   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> + +   This command sets the initial delay, the initial-holdtime and the +   maximum-holdtime between when SPF is calculated and the event which +   triggered the calculation. The times are specified in milliseconds and must +   be in the range of 0 to 600000 milliseconds. :cfgcmd:`delay` sets the +   initial SPF schedule delay in milliseconds. The default value is 200 ms. +   :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. @@ -161,108 +178,147 @@ Areas Configuration  .. 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  -   originates routes external to OSPF and hence an area where all external routes are  -   via the ABR(s). Hence, ABRs for such an area do not need to pass AS-External LSAs  -   (type-5) or ASBR-Summary LSAs (type-4) into the area. They need only pass  -   Network-Summary (type-3) LSAs into such an area, along with a default-route summary. +   This command specifies the area to be a Stub Area. That is, an area where +   no router originates routes external to OSPF and hence an area where all +   external routes are via the ABR(s). Hence, ABRs for such an area do not +   need to pass AS-External LSAs (type-5) or ASBR-Summary LSAs (type-4) into +   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 -   This command specifies the area to be a Totally Stub Area. In addition to stub area -   limitations this area type prevents an ABR from injecting Network-Summary (type-3) -   LSAs into the specified stub area. Only default summary route is allowed. +   This command specifies the area to be a Totally Stub Area. In addition to +   stub area limitations this area type prevents an ABR from injecting +   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. -   The cost range is 0 to 16777215. +   This command sets the cost of default-summary LSAs announced to stubby +   areas. The cost range is 0 to 16777215.  .. cfgcmd:: set protocols ospf area <number> area-type nssa -   This command specifies the area to be a Not So Stubby Area. External routing information -   is imported into an NSSA in Type-7 LSAs. Type-7 LSAs are similar to Type-5 AS-external -   LSAs, except that they can only be flooded into the NSSA. In order to further propagate  -   the NSSA external information, the Type-7 LSA must be translated to a Type-5  -   AS-external-LSA by the NSSA ABR. +   This command specifies the area to be a Not So Stubby Area. External +   routing information is imported into an NSSA in Type-7 LSAs. Type-7 LSAs +   are similar to Type-5 AS-external LSAs, except that they can only be +   flooded into the NSSA. In order to further propagate the NSSA external +   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 -   This command specifies the area to be a NSSA Totally Stub Area. ABRs for such an area do -   not need to pass Network-Summary (type-3) LSAs (except the default summary route), -   ASBR-Summary LSAs (type-4) and AS-External LSAs (type-5) into the area. But Type-7 LSAs  -   that convert to Type-5 at the NSSA ABR are allowed. +   This command specifies the area to be a NSSA Totally Stub Area. ABRs for +   such an area do not need to pass Network-Summary (type-3) LSAs (except the +   default summary route), ASBR-Summary LSAs (type-4) and AS-External LSAs +   (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.     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  -   Type-5 LSAs. When role is Always, Type-7 LSAs are translated into Type-5 LSAs regardless  -   of the translator state of other NSSA border routers. When role is Candidate, this router  -   participates in 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. +   Specifies whether this NSSA border router will unconditionally translate +   Type-7 LSAs into Type-5 LSAs. When role is Always, Type-7 LSAs are +   translated into Type-5 LSAs regardless of the translator state of other +   NSSA border routers. When role is Candidate, this router participates in +   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 -   This command specifies that simple password authentication should be used for the given  -   area. The password must also be configured on a per-interface basis. +   This command specifies that simple password authentication should be used +   for the given area. The password must also be configured on a per-interface +   basis.  .. cfgcmd:: set protocols ospf area <number> authentication md5 -   This command specify that OSPF packets must be authenticated with MD5 HMACs within the  -   given area. Keying material must also be configured on a per-interface basis. +   This command specify that OSPF packets must be authenticated with MD5 HMACs +   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) +   can’t 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> -   This parameter allows to "shortcut" routes (non-backbone) for inter-area routes. There  -   are three modes available for routes shortcutting: +   This parameter allows to "shortcut" routes (non-backbone) for inter-area +   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  -   to the backbone area or this link was lost. -   **enable** – the area will be used for shortcutting every time the route that goes through  -   it is cheaper. +   **default** –  this area will be used for shortcutting only if ABR does not +   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 it is cheaper.     **disable** – this area is never used by ABR for routes shortcutting.  .. cfgcmd:: set protocols ospf area <number> virtual-link <A.B.C.D>     Provides a backbone area coherence by virtual link establishment. -   In general, OSPF protocol requires a backbone area (area 0) to be coherent and fully  -   connected. I.e. any backbone area router must have a route to any other backbone area  -   router. Moreover, every ABR must have a link to backbone area. However, it is not always  -   possible to have a physical link 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. +   In general, OSPF protocol requires a backbone area (area 0) to be coherent +   and fully connected. I.e. any backbone area router must have a route to any +   other backbone area router. Moreover, every ABR must have a link to +   backbone area. However, it is not always possible to have a physical link +   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. -   <A.B.C.D> – ABR router-id with which a virtual link is established. Virtual link must be  -   configured on both routers. +   <A.B.C.D> – ABR router-id with which a virtual link is established. Virtual +   link must be configured on both routers. -   Formally, a virtual link looks like a point-to-point network connecting two ABR from one  -   area one of which physically connected to a backbone area. This pseudo-network is considered -   to belong to a backbone area. +   Formally, a virtual link looks like a point-to-point network connecting two +   ABR from one area one of which physically connected to a backbone area. +   This pseudo-network is considered to belong to a backbone area.  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  -   packets are authenticated. Key has length up to 8 chars. +   This command sets OSPF authentication key to a simple password. After +   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  -   authentication. +   Simple text password authentication is insecure and deprecated in favour of +   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  -   OSPF authentication key to a cryptographic password. Key-id identifies secret key used to  -   create the message digest. This ID 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),  +   This command specifys that MD5 HMAC authentication must be used on this +   interface. It sets OSPF authentication key to a cryptographic password. +   Key-id identifies secret key used to create the message digest. This ID +   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.  .. cfgcmd:: set interfaces <inttype> <intname> ip ospf bandwidth <number> @@ -272,66 +328,73 @@ Interfaces Configuration  .. cfgcmd:: set interfaces <inttype> <intname> ip ospf cost <number> -   This command sets link cost for the specified interface. The cost value is set to -   router-LSA’s metric field and used for SPF calculation. The cost range is 1 to 65535. +   This command sets link cost for the specified interface. The cost value is +   set to router-LSA’s metric field and used for SPF calculation. The cost +   range is 1 to 65535.  .. 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  -   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. +   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> ip ospf 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. +   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> ip ospf 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. +   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> ip ospf network <type> -   This command allows to specify the distribution type for the network connected  -   to this interface: +   This command allows to specify the distribution type for the network  +   connected to this interface:     **broadcast** – broadcast IP addresses distribution.     **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.  .. cfgcmd:: set interfaces <inttype> <intname> ip ospf 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. +   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> 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 -   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. +   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> ip ospf 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. +   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.  Manual Neighbor Configuration  ----------------------------- -OSPF routing devices normally discover their neighbors dynamically by listening to the broadcast -or multicast hello packets on the network. Because an NBMA network does not support broadcast (or -multicast), the device cannot discover its neighbors dynamically, so you must configure all the -neighbors statically. +OSPF routing devices normally discover their neighbors dynamically by +listening to the broadcast or multicast hello packets on the network. +Because an NBMA network does not support broadcast (or multicast), the +device cannot discover its neighbors dynamically, so you must configure all +the neighbors statically.  .. 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> -   This command specifies the length of time, in seconds, before the routing device sends hello -   packets out of the interface before it establishes adjacency with a neighbor. The range is 1 -   to 65535 seconds. The default value is 60 seconds. +   This command specifies the length of time, in seconds, before the routing +   device sends hello packets out of the interface before it establishes +   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> -   This command specifies the router priority value of the nonbroadcast neighbor associated with -   the IP address specified. The default is 0. This keyword does not apply to point-to-multipoint -   interfaces. +   This command specifies the router priority value of the nonbroadcast +   neighbor associated with the IP address specified. The default is 0. +   This keyword does not apply to point-to-multipoint interfaces.  Redistribution Configuration  ---------------------------- -.. cfgcmd:: set protocols ospf redistribute bgp +.. cfgcmd:: set protocols ospf redistribute <route source> -   Redistribute BGP routes to OSPF process. - -.. cfgcmd:: set protocols ospf redistribute connected - -   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. +   This command redistributes routing information from the given route source +   to the OSPF process. There are five modes available for route source: bgp, +   connected, kernel, rip, static.  .. cfgcmd:: set protocols ospf default-metric <number> @@ -380,29 +430,33 @@ Redistribution Configuration  .. cfgcmd:: set protocols ospf redistribute <route source> metric <number> -   This command specifies metric for redistributed routes from given route source. There  -   are five modes available for route source: bgp, connected, kernel, rip, static. The  -   metric range is 1 to 16. +   This command specifies metric for redistributed routes from given route +   source. There are five modes available for route source: bgp, connected, +   kernel, rip, static. The metric range is 1 to 16.  .. cfgcmd:: set protocols ospf redistribute <route source> metric-type <1|2> -   This command specifies metric type for redistributed routes. Difference between two metric -   types that metric type 1 is a metric which is "commensurable" with inner OSPF links. When  -   calculating a metric to the external destination, the full path metric is calculated as a  -   metric sum path of a router which had advertised this link plus the link metric. Thus, a  -   route with the least summary metric will be selected. If external link is advertised with  -   metric type 2 the path is selected which lies through the router which advertised this link -   with the least metric despite of the fact that internal path to this router is longer (with -   more cost). However, if two routers advertised an external link and with metric type 2 the -   preference is given to the path which lies through the router 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. +   This command specifies metric type for redistributed routes. Difference +   between two metric types that metric type 1 is a metric which is +   "commensurable" with inner OSPF links. When calculating a metric to the +   external destination, the full path metric is calculated as a metric sum +   path of a router which had advertised this link plus the link metric. +   Thus, a route with the least summary metric will be selected. If external +   link is advertised with metric type 2 the path is selected which lies +   through the router which advertised this link with the least metric +   despite of the fact that internal path to this router is longer (with more +   cost). However, if two routers advertised an external link and with metric +   type 2 the preference is given to the path which lies through the router +   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> -   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, rip, static. +   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, rip, static.  Operational Mode Commands @@ -420,8 +474,8 @@ Operational Mode Commands  .. opcmd:: show ip ospf neighbor detail -   This command displays the neighbors information in a detailed form, not just -   a summary table. +   This command displays the neighbors information in a detailed form, not +   just a summary table.  .. code-block:: none @@ -459,18 +513,18 @@ Operational Mode Commands  .. opcmd:: show ip ospf neighbor <A.B.C.D> -   This command displays the neighbors information in a detailed form for a neighbor -   whose IP address is specified. +   This command displays the neighbors information in a detailed form for a +   neighbor whose IP address is specified.  .. opcmd:: show ip ospf neighbor <intname>     This command displays the neighbors status for a neighbor on the specified     interface. -.. opcmd:: show ip ospf interface [intname] +.. opcmd:: show ip ospf interface [<intname>] -   This command displays state and configuration of OSPF the specified interface, -   or all interfaces if no interface is given. +   This command displays state and configuration of OSPF the specified +   interface, or all interfaces if no interface is given.  .. code-block:: none @@ -500,8 +554,8 @@ Operational Mode Commands  .. opcmd:: show ip ospf route -   This command displays the OSPF routing table, as determined by the most recent -   SPF calculation. +   This command displays the OSPF routing table, as determined by the most +   recent SPF calculation.  .. code-block:: none @@ -527,23 +581,24 @@ Operational Mode Commands  The table consists of following data: -**OSPF network routing table** – includes a list of acquired routes for all  -accessible networks (or aggregated area ranges) of OSPF system. "IA" flag means -that route destination is in the area to which the router is not connected, i.e. -it’s an inter-area path. In square brackets a summary metric for all links through -which a path lies to this network is specified. "via" prefix defines a -router-gateway, i.e. the first router on the way to the destination (next hop). +**OSPF network routing table** – includes a list of acquired routes for all +accessible networks (or aggregated area ranges) of OSPF system. "IA" flag +means that route destination is in the area to which the router is not +connected, i.e. it’s an inter-area path. In square brackets a summary metric +for all links through which a path lies to this network is specified. "via" +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   accessible ABRs and ASBRs.  **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 -(E1 – metric type 1, E2 – metric type 2). External link metric is printed in the -"<metric of the router which advertised the link>/<link metric>" format. +(E1 – metric type 1, E2 – metric type 2). External link metric is printed in +the "<metric of the router which advertised the link>/<link metric>" format.  .. opcmd:: show ip ospf border-routers -   This command displays a table of paths to area boundary and autonomous system -   boundary routers. +   This command displays a table of paths to area boundary and autonomous +   system boundary routers.  .. 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     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:     asbr-summary, external, network, nssa-external, opaque-area, opaque-as,     opaque-link, router, summary. -   [A.B.C.D] – link-state-id. With this specified the command displays portion of -   the network environment that is being described by the advertisement. The value -   entered depends on the advertisement’s LS type. It must be entered in the form -   of an IP address. +   [A.B.C.D] – link-state-id. With this specified the command displays portion +   of the network environment that is being described by the advertisement. +   The value entered depends on the advertisement’s LS type. It must be +   entered in the form of an IP address. -   :cfgcmd:`adv-router <A.B.C.D>` – router id, which link advertisements need to be -   reviewed. +   :cfgcmd:`adv-router <A.B.C.D>` – router id, which link advertisements need +   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 @@ -666,6 +724,203 @@ address and the node 1 sending the default route:  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-LSA’s 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.  **Node 1:** @@ -692,9 +947,9 @@ A typical configuration using 2 nodes.    show ipv6 ospfv3 redistribute -.. note:: You cannot easily redistribute IPv6 routes via OSPFv3 on a WireGuard -   interface link. This requires you to configure link-local addresses manually -   on the WireGuard interfaces, see :vytask:`T1483`. +.. note:: You cannot easily redistribute IPv6 routes via OSPFv3 on a  +   WireGuard interface link. This requires you to configure link-local +   addresses manually on the WireGuard interfaces, see :vytask:`T1483`.  Example configuration for WireGuard interfaces: @@ -739,4 +994,4 @@ Example configuration for WireGuard interfaces:    vyos@ospf02# run sh ipv6 ospfv3 neighbor    Neighbor ID     Pri    DeadTime    State/IfState         Duration I/F[State]    192.168.0.1       1    00:00:39     Full/PointToPoint    00:19:44 wg01[PointToPoint] - +   | 
