Dell Networking SONiC Route Map
Summary: This article explains about Route Map with a basic example in Dell Networking SONiC.
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
| Prerequisites We are using standard interface naming to demonstrate the Concepts. See the article Dell Networking S-Series: Basic Interface Configuration - SONiC 4.0 for more information regarding interface naming |
Index
What is a Route-Map.Match and set statement values.
Configuration Syntax
Create Route map
Match Statement
Set Statement
Call Statement
Remove Route-map configuration
Verify Route map
Sample configuration
What is a Route-Map.
Route-Map is used for editing and controlling route learning in the OSPF or BGP routing process. It also plays a role in generating a default route within an OSPF routing process. Essentially, a route-map specifies which routes from a specified routing protocol are permitted to be redistributed into the target routing process.To filter routes for redistribution, use route-maps with IP prefix lists and or AS Path List.
The table below outlines the actions taken when multiple match commands are encountered within a single route-map sequence.
| Route-map Statement | Prefix list Statement | Route Match/No Match | Action |
|---|---|---|---|
| Permit | Permit | Match | Route is permitted and can perform set or call. |
| Permit | No Match | Continue with next route-map sequence | |
| Deny | Match | Continue with next route-map sequence | |
| Deny | No Match | Continue with next route-map sequence | |
| Deny | Permit | Match | Route is denied. |
| Permit | No Match | Continue with next route-map sequence | |
| Deny | Match | Continue with next route-map sequence | |
| Deny | No Match | Continue with next route-map sequence |
Match and set statement values.
Each route-map statement has two types of values:- A match value selects routes to which this statement should be applied.
- A set value modifies information that is to be redistributed into the target protocol.
If the match criteria fail, then this statement is not applicable to the route, then DELL SONiC will proceed to evaluate the route against the next statement in the route-map. Scanning of the route-map continues until a statement is found that matches the route or until the end of the route-map is reached.
A match or set value in each statement can be missed or repeated several times, if ones of these conditions exist:
- If several match entries are present in a statement, all must succeed for a given route in order for that route to match the statement (a logical AND algorithm is applied)
- If a match entry sees several objects in one entry, either of them should match (a logical OR algorithm is applied)
- If a match entry is not present, all routes match the statement.
- If a set entry is not present in the route-map permit statement, then the route is redistributed without modification of its current attributes.
- A route-map statement without a match or set entry does perform an action. An empty permit statement allows a redistribution of the remaining routes without modification.
- An empty deny statement does not allow a redistribution of other routes as this is the default action if a route-map is completed scanned but no explicit match is found.
Configuration Syntax
Create Route map
Create a route-map to match the route parameters listed in the next step. Specify a permit or deny statement to configure how matching routes are handled. Enter the sequence number for the order in which the statement is processed in the map.Command Syntax
admin@DELLSONiC :~$ sonic-cli
DELLSONiC # configure
DELLSONiC (config)# route-map map-name {permit | deny} {sequence-number}
|
Match Statement
In route-map configuration mode, enter any of these match statements to select routes.Command Syntax
admin@DELLSONiC :~$ sonic-cli
DELLSONiC # configure
DELLSONiC (config)# route-map map-name {permit | deny} {sequence-number}
DELLSONiC(config-route-map)# match {match statement}
|
Possible Match Statements as-path Set routing policy match criteria as-path community Set routing policy match criteria to BGP community evpn Set routing policy match criteria to BGP Ethernet Virtual Private Network ext-community Set routing policy match criteria to BGP extended community interface Set routing policy match criteria to interface ip Set routing policy match criteria ipv6 Set routing policy match criteria local-preference Set routing policy match criteria to local-preference metric Set routing policy match criteria to metric origin Specify BGP origin peer Set routing policy match criteria to peer IP source-protocol Specify source protocol source-vrf Source VRF tag Redistributes routes in the routing table that match the specified tags. |
Set Statement
In route-map configuration mode, enter any of these set statements to change the specified BGP attribute in matching routes.Command Syntax
admin@DELLSONiC :~$ sonic-cli
DELLSONiC # configure
DELLSONiC (config)# route-map map-name {permit | deny} {sequence-number}
DELLSONiC(config-route-map)# set {Set-statement}
|
Possible Set-Statement as-path Transform BGP AS-path attribute comm-list Set BGP community list (for deletion) community BGP community attribute extcommunity BGP extended community attribute ip IPv4 information ipv6 IPv6 information local-preference BGP local preference path attribute metric Set metric value action for the routing policy origin BGP origin code tag Tag value for routing protocol weight BGP weight for routing table |
Call Statement
The "call" statement allow to call another route-map if the match condition is satisfied.Command Syntax
admin@DELLSONiC :~$ sonic-cli
DELLSONiC # configure
DELLSONiC (config)# route-map map-name {permit | deny} {sequence-number}
DELLSONiC (config-route-map)# call {route-map-name}
|
Remove Configuration
Ensure to remove any route-map association before removing route-map.To remove a configured value in a route-map entry, enter the no version of the match or set command.
Example
admin@DELLSONiC :~$ sonic-cli
DELLSONiC # configure
DELLSONiC (config)# route-map map-name {permit | deny} {sequence-number}
DELLSONiC (config-route-map)# no match as-path
DELLSONiC (config-route-map)# no set origin
DELLSONiC (config-route-map)# no call
|
admin@DELLSONiC :~$ sonic-cli DELLSONiC # configure DELLSONiC (config)# no route-map map-name |
Verify Route map
Use bellow commands to verify route map configuration. DELLSONiC# show route-map |
DELLSONiC# show route-map {route-map-name} |
Use the below commands to find the route map applied to a neighbor.
DELLSONiC# show bgp ipv4 unicast neighbors |
DELLSONiC# show bgp ipv6 unicast neighbors |
You can also grep with policy in the above commands to see a smaller output. DELLSONiC#show bgp ipv4 unicast neighbors <neighbor>| find policy |
Sample configuration
Requirement: See below topology. Three loopback IP 1.1.1.1/32, 2.2.2.2/32 and 3.3.3.3/32 is advertised by DELL-SONiC-R1 to DELL-SONiC-R2 using BGP.Consider that we need the route to 1.1.1.1/32 to be advertised as having Origin EGP to be received on DELL-SONiC-R3.
The routes 2.2.2.2/32 and 3.3.3.3/32 should not be altered.
Let us first configure a prefix list. Let us name the prefix list IP-LIST-TO-MODIFY and allow 1.1.1.1/32 prefix.
DELL-SONiC-R2# configure DELL-SONiC-R2(config)# ip prefix-list IP-LIST-TO-MODIFY seq 1 permit 1.1.1.1/32 DELL-SONiC-R2(config)# exit DELL-SONiC-R2# |
DELL-SONiC-R2# show ip prefix-list
IP prefix list IP-LIST-TO-MODIFY:
seq 1 permit 1.1.1.1/32
DELL-SONiC-R2# |
Let us configure the route map on DELL-SONiC-R2. Let us name the route map MAP-TO-MODIFICATION
DELL-SONiC-R2# configure DELL-SONiC-R2(config)# route-map MAP-TO-MODIFICATION permit 1 DELL-SONiC-R2(config-route-map)# match ip address prefix-list IP-LIST-TO-MODIFY DELL-SONiC-R2(config-route-map)# set origin egp DELL-SONiC-R2(config-route-map)# exit DELL-SONiC-R2(config)# route-map MAP-TO-MODIFICATION permit 2 DELL-SONiC-R2(config-route-map)# exit DELL-SONiC-R2(config)# exit DELL-SONiC-R2# |
Let us break down the configuration for further explanation.
Here under sequence 1 the match condition is to match any IP in prefix list IP-LIST-TO-MODIFY where we already have specified 1.1.1.1/32. So when 1.1.1.1/32 IP matches the cation to be taken is set the origin code to egp. DELL-SONiC-R2# configure DELL-SONiC-R2(config)# route-map MAP-TO-MODIFICATION permit 1 DELL-SONiC-R2(config-route-map)# match ip address prefix-list IP-LIST-TO-MODIFY DELL-SONiC-R2(config-route-map)# set origin egp DELL-SONiC-R2(config-route-map)# exit |
The next sequence is to allow all other routes (2.2.2.2/32 and 3.3.3.3/32) without any modification. You can write a separate prefix list for this but for simplicity we are not defining any match entry. If a match entry is not present, all routes are considered match under the sequence. If no set action is specified the default action is redistribute the route without any modification. DELL-SONiC-R2(config)# route-map MAP-TO-MODIFICATION permit 2 DELL-SONiC-R2(config-route-map)# exit DELL-SONiC-R2(config)# exit DELL-SONiC-R2# |
Let us verify the route-map configuration.
DELL-SONiC-R2# show running-configuration route-map ! route-map MAP-TO-MODIFICATION permit 1 match ip address prefix-list IP-LIST-TO-MODIFY set origin egp ! route-map MAP-TO-MODIFICATION permit 2 DELL-SONiC-R2# |
DELL-SONiC-R2# show route-map
Route map MAP-TO-MODIFICATION:
permit, sequence 1
Match clauses:
ip address prefix-list IP-LIST-TO-MODIFY
Set clauses:
route origin EGP
Call clauses:
Actions:
Exit routemap
permit, sequence 2
Match clauses:
Set clauses:
Call clauses:
Actions:
Exit routemap
DELL-SONiC-R2# |
Let us apply the route-map MAP-TO-MODIFICATION in the outbound direction to neighbor DELL-SONiC-R3 (20.0.0.2)
DELL-SONiC-R2(config)# router bgp 100 DELL-SONiC-R2(config-router-bgp)# neighbor 20.0.0.2 DELL-SONiC-R2(config-router-bgp-neighbor)# remote-as 200 DELL-SONiC-R2(config-router-bgp-neighbor)# no shutdown DELL-SONiC-R2(config-router-bgp-neighbor)# address-family ipv4 unicast DELL-SONiC-R2(config-router-bgp-neighbor-af)# route-map MAP-TO-MODIFICATION out ===>Apply the Route-map in outbound direction DELL-SONiC-R2(config-router-bgp-neighbor-af)# end DELL-SONiC-R2# |
Let us verify the bgp configuration.
DELL-SONiC-R2# show running-configuration bgp ! router bgp 100 log-neighbor-changes timers 60 180 ! neighbor 10.0.0.1 remote-as 100 ! address-family ipv4 unicast activate ! neighbor 20.0.0.2 remote-as 200 ! address-family ipv4 unicast activate route-map MAP-TO-MODIFICATION out DELL-SONiC-R2# |
We can see the Route-map MAP-TO-MODIFICATION applied on neighbor 20.0.0.2.
DELL-SONiC-R2# show bgp ipv4 unicast neighbors 20.0.0.2
BGP neighbor is 20.0.0.2, remote AS 200, local AS 100, external link
BGP version 4, remote router ID 20.0.0.2 , local router ID 20.0.0.1
BGP state = Established, up for 00:35:59
Last read 00:00:59, Last write 00:00:59
Hold time is 180 seconds, keepalive interval is 60 seconds
Minimum time between advertisement runs is 0 seconds
Neighbor capabilities:
4 Byte AS: advertised and received
AddPath IPv4 Unicast Receive: advertised and received
Route refresh: advertised and received
Multiprotocol Extension: advertised and received
Graceful restart: advertised and received
Hostname capability advertised (name: DELL-SONiC-R2) received (name: DELL-SONiC-R3)
Message statistics:
InQ depth is 0
OutQ depth is 0
Sent Rcvd
Opens: 2 2
Notifications: 0 0
Updates: 10 4
Keepalive: 37 37
Route Refresh: 0 0
Capability: 0 0
Total: 49 43
For address family: IPv4 Unicast
Address-family enabled
Prefixes received 0
Export policy:
MAP-TO-MODIFICATION
Connections established 2, dropped 1
Last reset 00:36:00, Last reset reason Peer closed the session
Local host: 20.0.0.1, Local port: 57552
Foreign host: 20.0.0.2, Foreign port: 179
BGP Connect Retry Timer in Seconds 30
DELL-SONiC-R2# |
Verification
Let us see how the routes 1.1.1.1/32, 2.2.2.2/32 and 3.3.3.3/32 looks on DELL-SONiC-R1, DELL-SONiC-R2, DELL-SONiC-R3.
On DELL-SONiC-R1
DELL-SONiC-R1# show bgp ipv4 unicast
BGP routing table information for VRF default
Router identifier 10.0.0.1, local AS number 100
Status codes: R - removed, S - stale, s - suppressed, * - valid
h - history, d - damped, > - best, = - multipath, q - queued, r - RIB-failure
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPref Weight Path
*> 1.1.1.1/32 0.0.0.0 0 32768 ?
*> 2.2.2.2/32 0.0.0.0 0 32768 ?
*> 3.3.3.3/32 0.0.0.0 0 32768 ?
*> 10.0.0.0/24 0.0.0.0 0 32768 ?
DELL-SONiC-R1# |
DELL-SONiC-R1# show bgp ipv4 unicast 1.1.1.1
BGP routing table entry for 1.1.1.1/32
Paths: (1 available, best #1, table default)
Local
0.0.0.0 from 0.0.0.0 (10.0.0.1)
Origin incomplete, metric 0, weight 32768, valid, best (First path received)
Last update: 2024-02-21 17:15:48+0000
DELL-SONiC-R1#
DELL-SONiC-R1# show bgp ipv4 unicast 2.2.2.2
BGP routing table entry for 2.2.2.2/32
Paths: (1 available, best #1, table default)
Local
0.0.0.0 from 0.0.0.0 (10.0.0.1)
Origin incomplete, metric 0, weight 32768, valid, best (First path received)
Last update: 2024-02-21 17:15:48+0000
DELL-SONiC-R1#
We can see the Origin incomplete for 1.1.1.1/32 and 2.2.2.2/32
|
DELL-SONiC-R1# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
C>* 1.1.1.1/32 Direct Loopback0 0/0 00:38:32 ago
C>* 2.2.2.2/32 Direct Loopback1 0/0 00:38:32 ago
C>* 3.3.3.3/32 Direct Loopback3 0/0 00:38:32 ago
C>* 10.0.0.0/24 Direct Eth1/1 0/0 00:38:32 ago |
On DELL-SONiC-R2
DELL-SONiC-R2# show bgp ipv4 unicast
BGP routing table information for VRF default
Router identifier 20.0.0.1, local AS number 100
Status codes: R - removed, S - stale, s - suppressed, * - valid
h - history, d - damped, > - best, = - multipath, q - queued, r - RIB-failure
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPref Weight Path
*> 1.1.1.1/32 10.0.0.1 0 100 0 ?
*> 2.2.2.2/32 10.0.0.1 0 100 0 ?
*> 3.3.3.3/32 10.0.0.1 0 100 0 ?
*> 10.0.0.0/24 10.0.0.1 0 100 0 ?
DELL-SONiC-R2# |
DELL-SONiC-R2# show bgp ipv4 unicast 1.1.1.1
BGP routing table entry for 1.1.1.1/32
Paths: (1 available, best #1, table default)
Local
10.0.0.1 from 10.0.0.1 (10.0.0.1)
Origin incomplete, metric 0, localpref 100, valid, internal, best (First path received)
Last update: 2024-02-21 17:17:25+0000
DELL-SONiC-R2#
DELL-SONiC-R2# show bgp ipv4 unicast 2.2.2.2
BGP routing table entry for 2.2.2.2/32
Paths: (1 available, best #1, table default)
Local
10.0.0.1 from 10.0.0.1 (10.0.0.1)
Origin incomplete, metric 0, localpref 100, valid, internal, best (First path received)
Last update: 2024-02-21 17:17:26+0000
DELL-SONiC-R2#
We can see the Origin incomplete for 1.1.1.1/32 and 2.2.2.2/32.
|
DELL-SONiC-R2# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
B>* 1.1.1.1/32 via 10.0.0.1 Eth1/1 200/0 00:39:48 ago
B>* 2.2.2.2/32 via 10.0.0.1 Eth1/1 200/0 00:39:48 ago
B>* 3.3.3.3/32 via 10.0.0.1 Eth1/1 200/0 00:39:48 ago
B 10.0.0.0/24 via 10.0.0.1 200/0 00:39:48 ago
C>* 10.0.0.0/24 Direct Eth1/1 0/0 00:40:08 ago
C>* 20.0.0.0/24 Direct Eth1/2 0/0 00:40:08 ago |
On DELL-SONiC-R3
DELL-SONiC-R3# show bgp ipv4 unicast
BGP routing table information for VRF default
Router identifier 20.0.0.2, local AS number 200
Status codes: R - removed, S - stale, s - suppressed, * - valid
h - history, d - damped, > - best, = - multipath, q - queued, r - RIB-failure
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPref Weight Path
*> 1.1.1.1/32 20.0.0.1 0 100 e
*> 2.2.2.2/32 20.0.0.1 0 100 ?
*> 3.3.3.3/32 20.0.0.1 0 100 ?
*> 10.0.0.0/24 20.0.0.1 0 100 ?
DELL-SONiC-R3#
Note the e(highlighted in red). This means the origin is EGP for 1.1.1.1/32.
|
DELL-SONiC-R3# show bgp ipv4 unicast 1.1.1.1/32
BGP routing table entry for 1.1.1.1/32
Paths: (1 available, best #1, table default)
100
20.0.0.1 from 20.0.0.1 (20.0.0.1)
Origin EGP, valid, best
Last update: 2024-02-21 17:17:27+0000
DELL-SONiC-R3#
We can see 1.1.1.1/32 has Origin EGP.
|
Lets check 2.2.2.2/32 origin
DELL-SONiC-R3# show bgp ipv4 unicast 2.2.2.2
BGP routing table entry for 2.2.2.2/32
Paths: (1 available, best #1, table default)
100
20.0.0.1 from 20.0.0.1 (20.0.0.1)
Origin incomplete, metric , valid, external, best (First path received)
Last update: 2024-02-21 17:17:26+0000
DELL-SONiC-R3#
We can see Origin incomplete for 2.2.2.2/32. |
DELL-SONiC-R3# show ip route
Codes: K - kernel route, C - connected, S - static, B - BGP, O - OSPF
> - selected route, * - FIB route, q - queued route, r - rejected route
Destination Gateway Dist/Metric Last Update
--------------------------------------------------------------------------------------------------------------------------------
B>* 1.1.1.1/32 via 20.0.0.1 Eth1/2 20/0 00:41:27 ago
B>* 2.2.2.2/32 via 20.0.0.1 Eth1/2 20/0 00:41:27 ago
B>* 3.3.3.3/32 via 20.0.0.1 Eth1/2 20/0 00:41:27 ago
B>* 10.0.0.0/24 via 20.0.0.1 Eth1/2 20/0 00:41:27 ago
C>* 20.0.0.0/24 Direct Eth1/2 0/0 00:41:39 ago
DELL-SONiC-R3#
|
Affected Products
Enterprise SONiC Distribution, PowerSwitch E3200-ON Series, Dell EMC Networking N3200-ON, PowerSwitch S5212F-ON, PowerSwitch S5224F-ON, PowerSwitch S5232F-ON, PowerSwitch S5248F-ON, PowerSwitch S5296F-ON, PowerSwitch Z9264F-ON, PowerSwitch Z9332F-ON
, PowerSwitch Z9432F-ON
...
Article Properties
Article Number: 000222196
Article Type: How To
Last Modified: 21 Mar 2024
Version: 8
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.