Multitopology Routing in cRPD
Multitopology in cRPD
cRPD enables BGP multiple RIBs functionality to support Multitopology routing (MTR) based on the routing policy with Linux FIBs (routes in forwarding plane). The applications can select the required routing table based on the routing policy from the Linux FIB in cRPD for different types of traffic. Each type of traffic is defined by a topology that is used to create a new routing table for that topology. Each topology uses the unified control plane to make routing decisions for traffic associated with that topology. In addition, each topology has a separate forwarding table and, in effect, a dedicated forwarding plane for each topology.
Service providers and enterprises can use multitopology routing (MTR) to engineer traffic flow across a network. MTR can be used with direct and static routes, IS-IS, OSPF, and BGP. In a network carrying multiple traffic types, you often need to direct different types of application traffic over multiple links depending on their link characteristics. Communities are used for BGP when exporting routes to multitopology. OSPFv3 does not support MTR. MTR discovers IGP routes and able to resolve BGP routes against custom topologies with static and OSPF.
You can configure separate topologies to share the same network links as needed. MTR uses a combination of control plane (routing) and forwarding plane filters.
MTR provides the ability to generate forwarding tables based on the resolved entries in the routing tables for the topologies you create. MTR and forwarding is available only on master routing instance. A dedicated RIB is created for storing the Multitopology routes. BGP multipath is not enabled on topologies.
When routing topologies are configured under routing-options
, a new routing table for each topology is created. Each routing
protocol creates a routing table based on the topology name, the instance
name, and the purpose of the table.
Example: Configure Multitopology Routing with BGP in cRPD
This example shows how to configure community-based multiple topologies with BGP in cRPD and unicast the traffic using Multitopology Routing (MTR) over network paths.
Requirements
This example requires following software release:
-
cRPD 19.4R1 or later.
Overview
Multitopology routing support for BGP is based on the community value in a BGP route. This configuration determines the association between topology and one or more community values and populates the topology routing tables. Arriving BGP updates that have a matching community value are replicated in the associated topology routing table.
Configure the topologies with BGP inet
family and verify the BGP
import matching route into topology RIB (also known as routing table). For each
topology, a list of community objects must be provided such that the routing
software can set up an internal ribgroup
and the corresponding
secondary table import policy.
Topology
Figure 1 shows the topology for configuring multitopology routing with BGP.

Configuration
To configure multitopology routing for BGP:
CLI Quick Configuration
set routing-options topologies family inet topology red table-id 40 set routing-options topologies family inet topology blue table-id 41 set routing-options topologies family inet topology green table-id 42 set routing-options router-id 10.2.2.2 set routing-options autonomous-system 65500 set routing-options rib :red.inet.0 static route 10.1.1.1/32 next-hop 10.15.0.2 set routing-options rib :green.inet.0 static route 10.1.1.1/32 next-hop 10.13.0.2 set routing-options rib :blue.inet.0 static route 10.1.1.1/32 next-hop 10.17.0.2 set protocols bgp group ibgp-app-rr-ser type internal set protocols bgp group ibgp-app-rr-ser traceoptions file bgp size 100m set protocols bgp group ibgp-app-rr-ser traceoptions flag update set protocols bgp group ibgp-app-rr-ser traceoptions flag state set protocols bgp group ibgp-app-rr-ser local-address 10.77.1.1 set protocols bgp group ibgp-app-rr-ser family inet unicast add-path send path-count 6 set protocols bgp family inet unicast topology red community 1:1 set protocols bgp family inet unicast topology green community 1:2 set protocols bgp family inet unicast topology blue community 1:3
Configuring BGP through Multitopology Routing
Step-by-Step Procedure
-
Configure multiple topologies.
[edit routing-options topologies] user@crpd# set family inet topology red table-id 40 user@crpd# set family inet topology blue table-id 41 user@crpd# set family inet topology green table-id 42
-
Configure static routes.
[edit routing-options] user@crpd# set router-id 10.2.2.2 user@crpd# set autonomous-system 65500 user@crpd# set rib :red.inet.0 static route 10.1.1.1/32 next-hop 10.15.0.2 user@crpd# set rib :green.inet.0 static route 10.1.1.1/32 next-hop 10.13.0.2 user@crpd# set rib :blue.inet.0 static route 10.1.1.1/32 next-hop 10.17.0.2
-
Configure BGP group parameters to import the matching route into the topology routing tables. BGP uses the target community identifier to install the routes it learns in the appropriate routing table.
[edit protocols bgp] user@crpd# set group ibgp-app-rr-ser type internal user@crpd# set group ibgp-app-rr-ser traceoptions file bgp size 100m user@crpd# set group ibgp-app-rr-ser traceoptions flag update user@crpd# set group ibgp-app-rr-ser traceoptions flag state user@crpd# set group ibgp-app-rr-ser local-address 10.77.1.1 user@crpd# set group ibgp-app-rr-ser family inet unicast add-path send path-count 6 user@crpd# set family inet unicast topology red community 1:1 user@crpd# set family inet unicast topology green community 1:2 user@crpd# set family inet unicast topology blue community 1:3
Results
From configuration mode, confirm your configuration by entering the show
protocols bgp
and show routing-options
commands.
If the output does not display the intended configuration, repeat the
instructions in this example to correct the configuration.
show routing-options topologies { family inet { topology red { table-id 40; } topology blue { table-id 41; } topology green { table-id 42; } } } rib :red.inet.0 { static { route 10.1.1.1/32 next-hop 10.15.0.2; } } rib :green.inet.0 { static { route 10.1.1.1/32 next-hop 10.13.0.2; } } rib :blue.inet.0 { static { route 10.1.1.1/32 next-hop 10.17.0.2; } }
user@crpd# show protocols bgp family inet { unicast { topology red { community 1:1; } topology green { community 1:2; } topology blue { community 1:3; } } group ibgp-app-rr-ser { type internal; traceoptions { file bgp size 100m; flag update; } local-address 10.77.1.1; family inet { unicast { add-path { send { path-count 6; } } } } } }
If you are done configuring the device, enter the commit
command
from configuration mode.
Verification
Verifying BGP routes
Purpose
To verify the BGP matched routes:
Action
From operational mode, enter the show route protocol bgp all
table
command:
user@crpd> show route protocol bgp all table
:red.inet.0: 11 destinations, 11 routes (8 active, 0 holddown, 3 hidden) + = Active Route, - = Last Active, * = Both 10.99.9.1/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.15.0.2 via ens4f1 10.99.9.2/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.15.0.2 via ens4f1 10.99.9.5/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.15.0.2 via ens4f1 :green.inet.0: 10 destinations, 10 routes (8 active, 0 holddown, 2 hidden) + = Active Route, - = Last Active, * = Both 10.9.9.1/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.13.0.2 via ens4f1 10.9.9.4/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.13.0.2 via ens4f1 :blue.inet.0: 11 destinations, 11 routes (8 active, 0 holddown, 3 hidden) + = Active Route, - = Last Active, * = Both 10.99.9.3/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.17.0.2 via ens4f1 10.99.9.4/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.17.0.2 via ens4f1 10.99.9.5/32 [BGP/170] 00:05:07, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 10.17.0.2 via ens4f1
From operational mode, enter the show route protocol bgp all table
inet.0
command:
user@crpd> show route protocol bgp all table inet.0
inet.0: 20 destinations, 20 routes (20 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.99.9.1/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.2/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.3/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.4/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1 10.99.9.5/32 *[BGP/170] 00:00:14, localpref 100, from 10.49.114.118 AS path: I, validation-state: unverified > to 1.15.0.2 via ens4f1
Meaning
You can view the BGP matching routes installed to routing tables and when the
routes without community targets are available only in the
inet.0
routing table.