Skip to content

Route Reflector#

Virtual Networks → RRRoute Reflectors

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 BGPPeer for every RouteReflectorClient that the RouteReflector targets. This targeting is done by assigning labels to the RouteReflectorClient, and referencing this label in the RouteReflector.

Don't forget to use labels!

If no target label is specified in the ClientSelector property of the RouteReflector resource, the RouteReflector will create BGPPeer resources for every DefaultRouteReflectorClient and RouteReflectorClient.

Example:

In this example, RR1 will create 3 derived BGPPeer resources: one for each client. RR2 will create only 2 derived BGPPeer resources: one towards client1, and one towards client2. Client3 does not have label my-rrc-label=A, and therefore is not selected as client for RR2.

To set up BGP route reflectors in the default VRF, use DefaultRouteReflector instead.

Dependencies#

To configure this resource, the following resources must exist or be created alongside the RouteReflector

  • A BGPGroup that the RouteReflector will inherit settings from, such as local and remote AS numbers
  • An interface that the RouteReflector will use to establish the client sessions. This can either be a RoutedInterface or an IRBInterface

Referenced resources#

BGPGroup#

The BGPPeer resource that the RouteReflector creates towards each selected RouteReflectorClient is always linked to a single BGPGroup. 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 BGPGroup, the operator can change these settings in a single location for all client BGP peers.

RoutedInterface#

To know which IP address the router uses to send BGP traffic, EDA must have a reference to a virtual interface. If this interface is a RoutedInterface attached directly to an Interface, a reference to this resource needs to be provided when creating the RouteReflector.

IRBInterface#

To know which IP address the router uses to send BGP traffic, EDA must have a reference to a virtual interface. If this interface is an IRBInterface attached to a BridgeDomain, a reference to this resource needs to be provided when creating the RouteReflector.

Policy#

The BGPPeer resources that the RouteReflector creates towards each selected RouteReflectorClient inherit import/export policies from the assigned BGPGroup. This behavior can be overridden by specifying policies in the RouteReflector. Click here for more information on BGP import/export policies.

Examples#

apiVersion: protocols.eda.nokia.com/v2
kind: RouteReflector
metadata:
  labels:
    my-rr-label: vnet-bgp
  name: my-rr
  namespace: eda
spec:
  bgpGroup: bgp-ipv4-only
  clusterID: 10.0.0.1
  interface: spine-1-interface-rr
  interfaceKind: RoutedInterface
  ipv4ClientSelectors:
    - my-rrc-label=vnet-bgp
  ipv4Unicast:
    enabled: true
  ipv6ClientSelectors:
    - my-rrc-label=vnet-bgp
  ipv6Unicast:
    enabled: false
cat << 'EOF' | kubectl apply -f -
apiVersion: protocols.eda.nokia.com/v2
kind: RouteReflector
metadata:
  labels:
    my-rr-label: vnet-bgp
  name: my-rr
  namespace: eda
spec:
  bgpGroup: bgp-ipv4-only
  clusterID: 10.0.0.1
  interface: spine-1-interface-rr
  interfaceKind: RoutedInterface
  ipv4ClientSelectors:
    - my-rrc-label=vnet-bgp
  ipv4Unicast:
    enabled: true
  ipv6ClientSelectors:
    - my-rrc-label=vnet-bgp
  ipv6Unicast:
    enabled: false
EOF

Custom Resource Definition#

To browse the Custom Resource Definition go to crd.eda.dev.

RouteReflector

protocols.eda.nokia.com / v2

SPEC

RouteReflector enables the configuration of iBGP sessions with RouteReflectorClients. It includes settings for selecting Interfaces, client selectors for IPv4 and IPv6, and the option to specify a BGP group and cluster ID.

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

STATUS

RouteReflectorStatus defines the observed state of RouteReflector

  • #
  • #
  • #
  • #
  • #
  • #
  • #