Router#
Virtual Networks → RRouters
The Router resource is a distributed service that maintains a routing table. Any traffic received by the Router service uses its routing table to determine the next-hop for that traffic. Synonyms for a Router service are "VPRN", "IP-VRF", or simply "VRF".
Although the nodeSelectors label selector property can be specified to determine where the Router service is deployed, this is optional: by default, the Router service will automatically be deployed wherever it is required.
Physical interfaces can be connected to the Router service through the following resources:
RoutedInterfacesconnect a singleInterfaceresource to the Router.IRBInterfacesconnect an entireBridgeDomainto the Router.
Typically, a RoutedInterface connects to a single host, and is configured with an IP that belongs to a point-to-point subnet with a /30 or /31 subnet mask. IRBInterfaces on the other hand are typically configured with an anycast gateway IP address that is used as the next-hop for many hosts connected to a BridgeDomain.
Router types#
A Router is a virtual network service, and can be local-only or distributed over multiple nodes. There are 4 types of Routers:
Simple: creates a local-onlyRouterservice, where connectivity is enabled only between interfaces on the node where the service is configured.EVPNVXLAN: creates a distributedRouterservice, where connectivity between local and remotely attached interfaces is encapsulated in an EVPN service tunnel over a VxLAN transport tunnel.EVPNMPLS: creates a distributedRouterservice, where connectivity between local and remotely attached interfaces is encapsulated in an EVPN service tunnel over an MPLS transport tunnel.IPVPN: creates a distributedRouterservice, where connectivity between local and remotely attached interfaces is encapsulated in a BGP-IPVPN service tunnel over an MPLS transport tunnel.
Service tunnel requirements#
If the type of the Router is either EVPNVXLAN or EVPNMPLS, EVPN routes must be exchanged via the underlay for the establishment of the service tunnels.
If the type of the Router is IPVPN, BGP-IPVPN routes must be exchanged via the underlay for the establishment of the service tunnels.
Transport tunnel requirements#
If the type of the Router is EVPNVXLAN, IP reachability is required to all system IP addresses of the nodes that participate in the service (unless a RouterInterconnect is used).
If the type of the Router is EVPNMPLS or IPVPN, label-switched transport tunnels must be established between all nodes that participate in the service (unless a RouterInterconnect is used).
EVIs and VNIs#
An Ethernet Virtual Instance or EVI is an EVPN concept, while a VXLAN Network Identifier (VNI) is a VxLAN concept. A thorough explanation of both protocols and related concepts is beyond the scope of this article, but it is worth talking about the assignment of these identifiers.
Both are integer numbers and are globally significant, meaning that all nodes must use the same values for the same service. To avoid accidentally assigning the same identifier to two different services, it is recommended to use the eviPool and encapOptions.vxlan.vniPool properties to let EDA take care of ensuring global uniqueness.
Note
Technically, the VNIs are only significant within an EVPN domain, and may be reused in different EVPN domains. However, due to the large number of VNIs available, it is recommended to use each VNI only once within your entire network.
If the Router service is meant to inter-op with network elements that are not managed by EDA, consider using a static EVI (property evi) and VNI (property encapOptions.vxlan.vni) instead of a pool.
Router ID#
The BGP container must be configured if the Router service is used to exchange routes with external clients through a BGPPeer connected to a RoutedInterface or IRBInterface.
A router ID must be configured before the BGP session can be established. This can either be explicitly configured for all nodes in the Router, or implicitly derived from the SystemInterface of the node.
Advanced options#
Note
These options are hidden behind the "advanced" toggle in the UI.
IP receive checks#
Some operating systems discard all IPv4 packets that are received on an IPv6-only subinterface (that is, a subinterface with no configured IPv4 addresses). To enable IPv4 forwarding in this scenario, the forwardingOptions.ipv4RxCheck option should be disabled on the Router.
Dependencies#
SystemInterface#
If the BGP container is enabled for the Router and the routerID parameter is not configured, a SystemInterface must be configured on every TopoNode that participates in the Router service and is actively or dynamically establishing BGP sessions through BGPPeer or BGPGroup resources.
Referenced resources#
IndexAllocationPool#
The EVI and VNI numbers can be allocated by EDA from an index allocation pool, which ensures that every index is only used once. For more information, check the EVIs and VNIs section of this article.
TopoNode#
The nodes where this service is deployed can optionally be specified manually through the nodeSelectors property. If not set, the Router resource will be deployed wherever necessary.
Policy#
Routing policies can be specified to:
- determine which routes are leaked into or out of the default VRF
- determine which routes are imported from or exported to BGP peers and/or OSPF neighbors
Keychain#
When setting up BGP sessions from this Router, a Keychain may be used to secure these BGP sessions. This default setting may be overridden by the BGPGroup and BGPPeer.
Examples#
cat << 'EOF' | kubectl apply -f -
apiVersion: services.eda.nokia.com/v2
kind: Router
metadata:
namespace: services
name: my-router
spec:
type: EVPNVXLAN
eviPool: evi-pool
bgp:
enabled: true
rapidWithdrawl: true
waitForFIBInstall: false
minWaitToAdvertiseSeconds: 0
ebgpPreference: 170
ibgpPreference: 170
ipv4Unicast:
enabled: true
EOF
Custom Resource Definition#
To browse the Custom Resource Definition go to crd.eda.dev.
Router
SPEC
The Router enables the configuration and management of routing functions within a network. This resource allows for setting a unique Router ID, configuring VNIs and EVIs with options for automatic allocation, and defining import and export route targets. It also includes advanced configuration options such as BGP settings, including autonomous system numbers, AFI/SAFI options, and route advertisement preferences. Node selectors can be used to constrain the deployment of the router to specific nodes within the network.
-
BGP configuration.
-
Autonomous System number for BGP.
format: int64range: 1 to 4294967295 -
Preference to be set for eBGP [default=170].
default: 170format: int32range: 1 to 255 -
Enable or disable BGP.
default: false -
Reference to a Policy CR that will be used to filter routes advertised to peers.
-
Preference to be set for iBGP [default=170].
default: 170format: int32range: 1 to 255 -
Reference to a Policy CR that will be used to filter routes received from peers.
-
IP aliasing configuration.
-
-
10 byte Ethernet Segment Identifier, if not set a type 0 ESI is generated.
default: "auto" -
The nexthop IP address to track for the IP alias.
-
When not set the ES is used in an all active mode. This references the TopoNode object and when set, the DF algorithm is configured to type preference and the selected Node is set with a higher preference value. All other Nodes have a lower value configured.
-
-
-
Parameters relating to the IPv4 unicast AFI/SAFI.
-
Enables advertisement of IPv4 Unicast routes with IPv6 next-hops to peers.
-
Enables the IPv4 unicast AFISAFI.
default: false -
Reference to a Policy resource to use when evaluating route exports from the Router for this address family.
-
Reference to a Policy resource to use when evaluating route imports into the Router for this address family.
-
Enable multipath.
-
When set to true, BGP is allowed to build a multipath set using BGP routes with different neighbor AS (most recent AS in the AS_PATH), When set to false, BGP is only allowed to use non-best paths for ECMP if they meet the multipath criteria and they have the same neighbor AS as the best path.
default: true -
The maximum number of BGP ECMP next-hops for BGP routes with an NLRI belonging to the address family of this configuration context.
format: int32range: 1 to 256
-
-
Enables the advertisement of the RFC 5549 capability to receive IPv4 routes with IPv6 next-hops.
-
-
Parameters relating to the IPv6 unicast AFI/SAFI.
-
Enables the IPv6 unicast AFISAFI
default: false -
Reference to a Policy resource to use when evaluating route exports from the Router for this address family.
-
Reference to a Policy resource to use when evaluating route imports into the Router for this address family.
-
Enable multipath.
-
When set to true, BGP is allowed to build a multipath set using BGP routes with different neighbor AS (most recent AS in the AS_PATH), When set to false, BGP is only allowed to use non-best paths for ECMP if they meet the multipath criteria and they have the same neighbor AS as the best path.
default: true -
The maximum number of BGP ECMP next-hops for BGP routes with an NLRI belonging to the address family of this configuration context.
format: int32range: 1 to 256
-
-
-
Keychain to be used for authentication
-
Minimum wait time before advertising routes post BGP restart.
default: 0format: int32range: 0 to 3600 -
Enable rapid withdrawal in BGP.
default: true -
Wait for FIB installation before advertising routes.
default: false
-
-
The name of the Router to configure on the device.
-
The description of the Router.
-
Set the maximum number of ECMP paths for the Router. This is supported only by some platforms, and will be ignored for others.
format: int32range: 1 to 256 -
Encapsulation-specific options (such as MPLS tunneling options).
default: {"vxlan": {"tunnelIndexPool": "tunnel-index-pool", "vniPool": "vni-pool"}}-
VXLAN encapsulation options. Only applicable if VXLAN encapsulation is used (Type=EVPNVXLAN).
-
Reference to tunnel index allocation pool.
default: "tunnel-index-pool" -
VNI for the Router; leave blank for auto-allocation from VNI pool. Only applicable to VXLAN encapsulation.
format: int32range: 1 to 16777215 -
Reference to VNI pool for auto-allocation. Only applicable to VXLAN encapsulation.
default: "vni-pool"
-
-
EVI for the Router; leave blank for auto-allocation from EVI pool. Optional for IPVPN (can be used to auto-derive RTs), required for EVPN.
format: int32range: 1 to 65535 -
Reference to EVI pool for auto-allocation.
default: "evi-pool" -
Export route target in 'target:N:N' format, if not specified, the default value taken as "target:1:<evi>".
-
Additional (advanced) traffic processing options that are specific to some platforms.
-
Check if IPv4 address family is enabled on receiving interface for IPv4 traffic. If false, traffic will be accepted from any interface regardless of address family configuration. Applicable only to SR Linux, ignored for unsupported platforms.
default: false -
Check if IPv6 address family is enabled on receiving interface for IPv6 traffic. If false, traffic will be accepted from any interface regardless of address family configuration. Applicable only to SR Linux, ignored for unsupported platforms.
default: false
-
-
Import route target in 'target:N:N' format, if not specified, the default value taken as "target:1:<evi>".
-
Node selectors for deployment constraints. If Nodes are selected, the Router will only be deployed on the Nodes selected, if left blank it will be deployed on all Nodes for which there are IRB or RoutedInterfaces referencing this Router.
-
Resilient Hashing configuration.
-
IPv4 or IPv6 prefix. Active routes in the FIB that exactly match this prefix or that are longer matches of this prefix are provided with resilient-hash programming.
-
-
The number of times each next-hop is repeated in the fill pattern if there are max-paths ECMP next-hops.
default: 1format: int32range: 1 to 32 -
The maximum number of ECMP next-hops per route associated with the resilient-hash prefix.
default: 1format: int32range: 1 to 64 -
IPv4 or IPv6 prefix. Active routes in the FIB that exactly match this prefix or that are longer matches of this prefix are provided with resilient-hash programming.
-
-
-
-
Router ID.
-
Select the type of Router. Simple doesn't include any overlay control plane or dataplane properties (such as EVPN/VXLAN). EVPNVXLAN includes the properties needed to provision this Router over an IP Fabric.
default: "EVPNVXLAN"enum: "Simple", "EVPNVXLAN", "EVPNMPLS", "IPVPN"
STATUS
RouterStatus defines the observed state of Router
-
List of BGPPeers attached to the router.
-
EVI in use for this Router.
format: int64 -
Export route target for this Router.
-
Indicates the health score of the Router.
format: int32range: <= 100 -
Explains the reason for the health score.
-
Import route target for this Router.
-
List of IRBInterfaces attached to the router.
-
Timestamp of the last state change.
-
List of nodes on which the Router is deployed.
-
Number of nodes on which the Router is configured.
format: int64 -
Operational state of the Router.
enum: "Up", "Down", "Degraded", "Unknown" -
List of RoutedInterfaces attached to the router.
-
Vxlan tunnel index in use.
format: int64 -
VNI in use for this Router.
format: int64