ā07-07-2025 06:07 AM
Hi
Following "Another Discussion " i have this problem which the output of "show mpls forwarding-table exact-route" is not correct.
i tested it on both ASR903(15.6(2)SP) and CSR1000V(15.4(3)S)
this is the output of my csr1000v
it says that its going to use Vlan 20 for outgoing traffic but i captured the traffic and found out its now working as expected.(used vlan 10)
this causes an imbalance of traffic on my links.
i would be pleased if anyone can help or explain to me why this is happenning and how can i resolve this problem.
PE.LEFT#show ip route 172.16.1.3 Routing entry for 172.16.1.3/32 Known via "isis", distance 115, metric 20, type level-1 Redistributing via isis test Last update from 192.168.12.6 on GigabitEthernet2.20, 01:41:09 ago Routing Descriptor Blocks: 192.168.12.6, from 172.16.1.3, 01:41:09 ago, via GigabitEthernet2.20 Route metric is 20, traffic share count is 1 * 192.168.12.2, from 172.16.1.3, 01:41:09 ago, via GigabitEthernet2.10 Route metric is 20, traffic share count is 1 PE.LEFT#show ip cef 172.16.1.3 172.16.1.3/32 nexthop 192.168.12.2 GigabitEthernet2.10 label 18 nexthop 192.168.12.6 GigabitEthernet2.20 label 18 PE.LEFT#show run | s router isis test ip router isis test ip router isis test router isis test net 49.0000.1720.1600.1001.00 is-type level-1 metric-style wide passive-interface Loopback0 maximum-paths 32 PE.LEFT#show mpls l2 vc det Local interface: Gi3 up, line protocol up, Ethernet:1 up Destination address: 172.16.1.3, VC ID: 21, VC status: up Output interface: Gi2.10, imposed label stack {18 21} Preferred path: not configured Default path: active Next hop: 192.168.12.2 Create time: 01:37:02, last status change time: 01:37:02 Last label FSM state change time: 01:37:02 Signaling protocol: LDP, peer 172.16.1.3:0 up Targeted Hello: 172.16.1.1(LDP Id) -> 172.16.1.3, LDP is UP Graceful restart: not configured and not enabled Non stop routing: not configured and not enabled Status TLV support (local/remote) : enabled/supported LDP route watch : enabled Label/status state machine : established, LruRru Last local dataplane status rcvd: No fault Last BFD dataplane status rcvd: Not sent Last BFD peer monitor status rcvd: No fault Last local AC circuit status rcvd: No fault Last local AC circuit status sent: No fault Last local PW i/f circ status rcvd: No fault Last local LDP TLV status sent: No fault Last remote LDP TLV status rcvd: No fault Last remote LDP ADJ status rcvd: No fault MPLS VC labels: local 18, remote 21 Group ID: local 0, remote 0 MTU: local 1500, remote 1500 Remote interface description: Sequencing: receive disabled, send disabled Control Word: On (configured: autosense) SSO Descriptor: 172.16.1.3/21, local label: 18 Dataplane: SSM segment/switch IDs: 4106/4105 (used), PWID: 4 VC statistics: transit packet totals: receive 991, send 3797 transit byte totals: receive 152030, send 402298 transit packet drops: receive 0, seq error 0, send 0 PE.LEFT#show mpls fo PE.LEFT#show mpls forwarding-table Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 16 Pop Label 172.16.1.2/32 0 Gi2.10 192.168.12.2 Pop Label 172.16.1.2/32 0 Gi2.20 192.168.12.6 17 18 172.16.1.3/32 0 Gi2.10 192.168.12.2 18 172.16.1.3/32 0 Gi2.20 192.168.12.6 18 No Label l2ckt(4) 157948 Gi3 point2point 19 Pop Label 192.168.23.0/30 0 Gi2.10 192.168.12.2 Pop Label 192.168.23.0/30 0 Gi2.20 192.168.12.6PE.LEFT#show mpls fo PE.LEFT#show mpls forwarding-table ex PE.LEFT#show mpls forwarding-table exact-route l PE.LEFT#show mpls forwarding-table exact-route label 17 bo PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 21 Local Outgoing Prefix Bytes Label Outgoing Next Hop Label Label or Tunnel Id Switched interface 17 18 172.16.1.3/32 0 Gi2.20 192.168.12.6 PE.LEFT#
Thanks
Amir
ā07-07-2025 06:15 AM - edited ā07-07-2025 06:16 AM
You have TWO path to destiantion
So what you see I think normal
MHM
ā07-07-2025 07:23 AM
PE.LEFT#show mpls forwarding-table exact-route 172.16.1.3/32
Do this you will see output of two path
MHM
ā07-07-2025 07:30 AM
yes i do see 2 paths.
normally, the traffic of each vc should pass through one link. and if there are multiple links and vc s, they should get balanced.
PE.LEFT#show mpls forwarding-table 172.16.1.3
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.10 192.168.12.2
18 172.16.1.3/32 0 Gi2.20 192.168.12.6
PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 20
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.10 192.168.12.2
PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 21
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.20 192.168.12.6
PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 22
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.10 192.168.12.2
PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 23
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.20 192.168.12.6
PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 24
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.10 192.168.12.2
PE.LEFT#show mpls forwarding-table exact-route label 17 bottom-label 25
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
17 18 172.16.1.3/32 0 Gi2.20 192.168.12.6
PE.LEFT#
the problem is that for example i have a label stack of {17 25} so this should pass through Gi2.20 but it doesnt.
the router forwards all the traffic through gi2.10 and doesnt act as it says in the show exact-route command.
i can verify this by seeing both the wireshark capture of the link and by seeing the traffic rate passing through the links.
Thanks
Amir
ā07-07-2025 08:03 AM
Sorry this P or PE ?
I think the prefix must insert with latter ""V"" in table and with label
MHM
ā07-07-2025 08:09 AM - edited ā07-07-2025 08:10 AM
The one i just posted is the PE but i tried on both of them and they are the same.
the "v" in the mpls forwarding table is for l3vpn vrf prefixes.
in my scenario, there is only l2vpn traffic. (which i have the problem)
I think there is a bug or maybe a misconfiguration but i want documentation about it.
Amir
ā07-07-2025 08:31 AM
Ok' try use in command only bottom label
Let upper label change according to select interface
MHM
ā07-07-2025 10:32 AM - edited ā07-07-2025 10:45 AM
Hi @Amirmahdi.M ,
The interface displayed by the "show mpls for label X bottom-label Y" and the output interface displayed in the "show mpls l2 vc det" should match. I suspect the reason they don't match in your case is because of the older level of code you are running.
Ultimately, you should rely on the output interface displayed in the "show mpls l2 vc det".
PE.LEFT#show mpls l2 vc det Local interface: Gi3 up, line protocol up, Ethernet:1 up Destination address: 172.16.1.3, VC ID: 21, VC status: up Output interface: Gi2.10, imposed label stack {18 21}
You can always use mpls traffic engineering if you want the pseudowire to steer the traffic via a specific interface.
ā07-07-2025 01:24 PM
You are right about the PE side. I forgot that it always sends the traffic through Gi2.10 (no FAT or Entropy)
I played with the vc ids and finally got the P router which should do the balance in MPLS core, do the bottom label lookup and it sent the traffic through Gi2.20 (CSR1000V)
So i realized that it works correct on the CSR1000V but i dont know why it doesnt act the same on the ASR903
The ASR903 is acting as a P router for a mikrotik PE
There are tons of vc ids on the mikrotik so the Cisco P router should be able to balance the traffic on the links it has with the mikrotik but this doesnt happen.
like 98% of the traffic is on link 1 and only 2% of the traffic is on link2
The scenario is just like the one i tried with CSR1000V
Thanks
Amir
ā07-07-2025 02:38 PM
From what I read in cisco guide' asr900 mpls load balance is per flow
I.e. if source destiantion is same then router will use same label stack
MHM
ā07-12-2025 01:30 PM
Hello again @Harold Ritter and @MHM Cisco World
I guessed that maybe the reason why the asr903 (P router) wouldnt do the load balancing was the lack of control word on the mikrotik PE side.
I did enable the control word on mikrotik so the P routers would know that this is l2vpn traffic not l3vpn but it didnt make any change.(verfied CW on both PEs)
I still see about all the traffic passing through link 1.
I also found out that the little traffic that was passing through link 2, was the P router's own xconnect which was shown in the output interface of "show mpls l2 vc det". I also tried using "traceroute mpls nil-fec" to test the load balancing but because of the explicit null on the bottom of the stack (i think nil-fec forces it), i couldnt do much testing.
Do you think this is some kind of bug or does the asr903 lack the feature of load balancing l2vpn traffic by the bottom label (VC label)?
Also because mikrotik lacks the proper implementation of ISIS i cant really do MPLS TE to manually balance the traffic.(we dont use ospf)
Thanks
Amir
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide