Default Route Reflector#
Underlay Routing → DRDefault Route Reflectors
The DefaultRouteReflector resource is in many ways similar to the RouteReflector resource, but is deployed in the default VRF instead of the overlay. This means that it has support for more routing protocols, which are required to distribute overlay (service) routes.
BGP route reflectors are used to eliminate the need for a full-mesh iBGP peering network, where every router needs to establish an iBGP session with every other router in the network. Route reflectors re-advertise the routes they receive from the route reflector clients, removing the need for iBGP sessions between the clients.
EDA creates a derived DefaultBGPPeer for every DefaultRouteReflectorClient that the DefaultRouteReflector targets. This targeting is done by assigning labels to the DefaultRouteReflectorClient, and referencing this label in the DefaultRouteReflector.
Don't forget to use labels!
If no target label is specified in the ClientSelector property of the DefaultRouteReflector resource, the DefaultRouteReflector will create DefaultBGPPeer resources for every DefaultRouteReflectorClient and RouteReflectorClient.
Example:
DefaultRouteReflectorRR1 has noClientSelectorlabelsDefaultRouteReflectorRR2 has oneClientSelectorlabel:rr-label=clientDefaultRouteReflectorClientClient1 has one label:rr-label=clientDefaultRouteReflectorClientClient2 has one label:rr-label=clientDefaultRouteReflectorClientClient3 has one label:rr-label=somethingelse
In this example, RR1 will create 3 derived DefaultBGPPeer resources: one for each client. RR2 will create only 2 derived DefaultBGPPeer resources: one towards client1, and one towards client2. Client3 does not have label rr-label=client, and therefore is not selected as client for RR2.
To set up BGP route reflectors in router services, use RouteReflector instead.
Dependencies#
To configure this resource, the following resources must exist or be created alongside the DefaultRouteReflector
- A
DefaultBGPGroupthat theDefaultRouteReflectorwill inherit settings from, such as local and remote AS numbers - An interface that the
DefaultRouteReflectorwill use to establish the client sessions. This can either be aSystemInterfaceor aDefaultInterface
Referenced resources#
DefaultBGPGroup#
The DefaultBGPPeer resource that the DefaultRouteReflector creates towards each selected DefaultRouteReflectorClient is always linked to a single DefaultBGPGroup. These BGP peers share common parameters, such as BGP import and export policies, local and peer autonomous system numbers, and BGP timers. By specifying these parameters in a DefaultBGPGroup, the operator can change these settings in a single location for all client BGP peers.
SystemInterface#
To know which IP address is used to send BGP traffic, EDA must have a reference to a virtual interface. If this interface is a SystemInterface attached directly to the system address of the DefaultRouter, a reference to this resource needs to be provided when creating the DefaultRouteReflector.
DefaultInterface#
To know which IP address is used to send BGP traffic, EDA must have a reference to a virtual interface. If this interface is an DefaultInterface attached to a DefaultRouter, a reference to this resource needs to be provided when creating the DefaultRouteReflector.
Policy#
The DefaultBGPPeer resources that the DefaultRouteReflector creates towards each selected DefaultRouteReflectorClient inherit import/export policies from the assigned DefaultBGPGroup. This behavior can be overridden by specifying policies in the DefaultRouteReflector. Click here for more information on BGP import/export policies.
Examples#
apiVersion: protocols.eda.nokia.com/v2
kind: DefaultRouteReflector
metadata:
labels:
rr-label: rr
name: example-route-reflector
namespace: eda
spec:
clientSelectors:
- rr-label=client
clusterID: 10.100.0.1
defaultBGPRRGroup: example-default-group
interface: spine-1-loopback
interfaceKind: DefaultInterface
ipv4Unicast:
enabled: true
cat << 'EOF' | kubectl apply -f -
apiVersion: protocols.eda.nokia.com/v2
kind: DefaultRouteReflector
metadata:
labels:
rr-label: rr
name: example-route-reflector
namespace: eda
spec:
clientSelectors:
- rr-label=client
clusterID: 10.100.0.1
defaultBGPRRGroup: example-default-group
interface: spine-1-loopback
interfaceKind: DefaultInterface
ipv4Unicast:
enabled: true
EOF
Custom Resource Definition#
To browse the Custom Resource Definition go to crd.eda.dev.
DefaultRouteReflector
SPEC
DefaultRouteReflector enables the configuration of iBGP sessions to RouteReflectorClients. It includes settings for the DefaultInterface, BGP group, client selectors, and the Cluster ID. Additionally, it allows for the configuration of L2VPN EVPN settings and applies common BGP configuration settings to manage routing efficiently within the network.
-
AS Path Options
-
The maximum number of times the global AS number or a local AS number of the BGP instance can appear in any received AS_PATH before it is considered a loop and considered invalid.
default: 0range: 0 to 255 -
Options for removing private AS numbers (2-byte and 4-byte) from the advertised AS path towards all peers.
-
If set to true then do not delete or replace a private AS number that is the same as the peer AS number.
default: false -
If set to true then only delete or replace private AS numbers that appear before the first occurrence of a non-private ASN in the sequence of most recent ASNs in the AS path.
default: false -
The method by which private AS numbers are removed from the advertised AS_PATH attribute.
default: "Disabled"enum: "Disabled", "Replace", "Delete"
-
-
-
Enable or disable Bi-forward Forwarding Detection (BFD) with fast failover.
-
List of RR client IPs to which the iBGP sessions are established.
-
Label selector used to select the RouteReflectorClients to which the iBGP sessions are established.
-
Sets the cluster ID for route reflectors.
-
Reference to a DefaultBGPGroup.
-
Reference to a Policy CR that will be used to filter routes advertised to peers.
-
Enables Graceful Restart on the peer and sets the stale route time in seconds.
range: 1 to 3600 -
Reference to a Policy CR that will be used to filter routes received from peers.
-
Reference to either a DefaultInterface or SystemInterface from which the session to the client will be done from.
-
Reference to a the Kind of interface from which the session to the client will be done from.
enum: "DefaultInterface", "SystemInterface" -
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.
-
Configures the maximum number of IPv4 unicast prefixes that can be received from a BGP peer.
-
Configuration of the maximum number of prefixes that can be accepted from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting only accepted routes.
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be accepted before a warning is logged.
range: 1 to 100
-
-
Configuration of the maximum number of prefixes that can be received from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting all routes (accepted and rejected by import policies).
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be received before a warning is logged.
range: 1 to 100
-
-
-
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
-
Enables advertisement of IPv6 Unicast routes with IPv4 next-hops to peers.
-
Configuration of the maximum number of prefixes that can be accepted from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting only accepted routes.
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be accepted before a warning is logged.
range: 1 to 100
-
-
Configuration of the maximum number of prefixes that can be received from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting all routes (accepted and rejected by import policies).
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be received before a warning is logged.
range: 1 to 100
-
-
-
-
Reference to a Keychain resource that will be used for authentication with the BGP peer.
-
Parameters relating to the EVPN AFI/SAFI.
-
Enables advertisement of EVPN routes with IPv6 next-hops to peers.
-
Enables the L2VPN EVPN AFISAFI.
-
Configures the maximum number of EVPN prefixes that can be received from a BGP peer.
-
Configuration of the maximum number of prefixes that can be accepted from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting only accepted routes.
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be accepted before a warning is logged.
range: 1 to 100
-
-
Configuration of the maximum number of prefixes that can be received from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting all routes (accepted and rejected by import policies).
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be received before a warning is logged.
range: 1 to 100
-
-
-
-
The local autonomous system number advertised to peers.
-
Local Autonomous System number.
range: 1 to 4294967295 -
When set to true, the global ASN value is prepended to the AS path in outbound routes towards each BGP peer.
-
When set to true, the local AS value is prepended to the AS path of inbound routes from each EBGP peer.
-
-
When false, all large (12 byte) BGP communities from all outbound routes advertised to the peer are stripped.
-
When false, all standard (4 byte) communities from all outbound routes advertised to the peer are stripped.
-
Options for controlling the generation of default routes towards BGP peers.
-
Enables the sending of a synthetically generated default IPv4 or IPV6 route to each peer.
-
Reference to a Policy that should be applied to the advertised default routes, in order to set their attributes to non-default values.
-
-
Timer configurations
-
The time interval in seconds between successive attempts to establish a session with a peer.
range: 1 to 65535 -
The hold-time interval in seconds that the router proposes to the peer in its OPEN message.
range: 0 to 65535 -
The interval in seconds between successive keepalive messages sent to the peer.
range: 0 to 21845 -
The value assigned to the MinRouteAdvertisementIntervalTimer of RFC 4271, for both EBGP and IBGP sessions, in seconds.
range: 1 to 255
-
-
Parameters related to the VPN IPv4 Unicast AFI/SAFI.
-
Enables advertisement of VPN IPv4 routes with IPv6 next-hops to peers.
-
Enables the VPN IPv4 Unicast AFI/SAFI.
-
Prefix Limit parameters for the VPN IPv4 Unicast AFI/SAFI.
-
Configuration of the maximum number of prefixes that can be accepted from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting only accepted routes.
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be accepted before a warning is logged.
range: 1 to 100
-
-
Configuration of the maximum number of prefixes that can be received from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting all routes (accepted and rejected by import policies).
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be received before a warning is logged.
range: 1 to 100
-
-
-
Enables advertisement of the Extended Next Hop Encoding Capability (RFC 8950) to peers.
-
-
Parameters related to the VPN IPv6 Unicast AFI/SAFI.
-
Enables the VPN IPv6 Unicast AFI/SAFI.
-
Prefix Limit parameters for the VPN IPv6 Unicast AFI/SAFI.
-
Configuration of the maximum number of prefixes that can be accepted from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting only accepted routes.
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be accepted before a warning is logged.
range: 1 to 100
-
-
Configuration of the maximum number of prefixes that can be received from a BGP peer.
-
Defines the action to take when the maximum number of prefixes is exceeded. Session is reset if set to false, otherwise only a warning is logged.
-
Maximum number of prefixes allowed to be received from the neighbor, counting all routes (accepted and rejected by import policies).
format: int32range: 1 to 4294967295 -
A percentage of the maximum number of prefixes that can be received before a warning is logged.
range: 1 to 100
-
-
-
STATUS
DefaultRouteReflectorStatus defines the observed state of DefaultRouteReflector
-
Indicates the health score of the Route Reflector.
-
Indicates the reason for the health score.
-
The time when the state of the resource last changed.
-
Total number of configured route reflector client peers on the route reflector.
-
Total number of configured route reflector client peers on the route reflector that are operationally down.
-
List of route reflector BGPPeers which are operationally down.
-
Operational state of the Route Reflector.
enum: "Up", "Down", "Degraded", "Unknown"