Symptom : When different types of RTs (2-byte AS, 4-byte AS) is configured on RPL & VRF route target, it will be treated as 'additive' extended communities.
Conditions: RTs (2-byte AS, 4-byte AS)
Ex:
route-policy TEST-IPv4
if destination in (0.0.0.0/0) then
set extcommunity rt (94770:124)
done
endif
end-policy
!
vrf TEST
address-family ipv4 unicast
import route-target 64770:10
!
export route-policy TEST-IPv4
export route-target 64770:10
!
Below is the RT community tag behaviour
From 7.3.2 to 24.2.x release:
show bgp vpnv4 unicast vrf TEST 0.0.0.0/0 detail
BGP routing table entry for 0.0.0.0/0, Route Distinguisher: 2.2.2.2:7
Versions:
Process bRIB/RIB SendTblVer
Speaker 5 5
Local Label: 24000 (with rewrite);
Flags: 0x21040012+0x00000000;
Last Modified: Sep 25 01:01:33.910 for 02:12:16
Paths: (1 available, best #1)
Advertised to peers (in unique update groups):
172.26.44.218
Path #1: Received by speaker 0
Flags: 0x200000000d040123+0x00, import: 0x31f
Advertised to peers (in unique update groups):
172.26.44.218
Local
0.0.0.0 from 0.0.0.0 (1.1.1.1), if-handle 0x0a000060
Origin IGP, metric 0, localpref 100, weight 32768, valid, local, best, group-best, import-candidate
Received Path ID 0, Local Path ID 1, version 5
Extended community: RT:94770:124 RT:64770:10 <<<<<<<<<<<<<<< Here the RT from export route-policy TEST-IPv4 is added due to different types of RTs (2-byte AS, 4-byte AS) is configured on RPL & VRF route target, it will be treated as 'additive' extended communities
Prior to 7.2.2 release
show bgp vpnv4 unicast vrf TEST 0.0.0.0/0 detail
BGP routing table entry for 0.0.0.0/0, Route Distinguisher:2.2.2.2:7
Versions:
Process bRIB/RIB SendTblVer
Speaker 37 37
Local Label: 24003 (with rewrite);
Flags: 0x00040001+0x00000000;
Last Modified: Sep 24 21:08:02.563 for 00:37:42
Paths: (1 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Flags: 0x400000000d040123, import: 0x1f
Not advertised to any peer
Local
0.0.0.0 from 0.0.0.0 (1.1.1.1), if-handle 0x00000060
Origin IGP, metric 0, localpref 100, weight 32768, valid, local, best, group-best, import-candidate
Received Path ID 0, Local Path ID 1, version 37
Extended community: RT:94770:124 <<<<<<<<<<<<<<< Only the RT from export route-policy TEST-IPv4 is added
=> If we want the same behaviour as prior to 7.2.2, below 2 workaround solutions options can be applied
- Before applying RT in route-policy, we can use below mentioned command to remove any RT if applied prior to that:
delete extcommunity rt all for example ,
route-policy TEST-IPv4
if destination in (0.0.0.0/0) then
delete extcommunity rt all
set extcommunity rt (94770:124)
done
endif
end-policy
This will help in achieving the intended behaviour.
2. To use similar type of RT ( right now VRF RT and Route-policy RT are both of different types i.e (AS2 and AS4)), therefore this behaviour is being observed. If we will modify the RT to similar one's like (AS2 or AS4 only), then also you will achieve the intended behaviour.
RP/0/0/CPU0:PE2(config-vrf-af)#export route-target ?
<1-65535>: 2-byte AS number
<65536-4294967295>: 4-byte AS number in asplain format
A.B.C.D: IPv4 address
<cr>
In below fixes , we have treated both AS types as similar one's to achieve the intended behaviour as in earlier (< 7.2.2) release
https://bst.cisco.com/bugsearch/bug/CSCwi27010