MPLS: MPLS VPN Troubleshooting: MPLS-TE:
MPLS Advantage or Why to use MPLS: Explain advantage of MPLS Layer-2/3 VPN, MPLS-TE & VPLS as well as explain BGP free core. LABEL: 4 byte in size: 20 bit label/3 bit EXP/ 1 bit of S bit/ 8 bit TTL. POP function: It can be done using implicit-null label (PHP Process) (explicit-null label is used to preserver the QOS value) Label Distribution Methods:
LDP/TDP Router id: loopback address or highest interface IP address Ldp discovery transport-address: by default LDP/TDP router-id will be a LDP transport address. But in some cases if routers do not have reachability to each other LOOPBACK address then they are not going to build up LDP/TDP neighbor relationship. At that time you will have to use mpls ldp discovery transport-address command and you will have to specify the directly connected interface IP address to build LDP/TDP neighbor relationship. This is same as BGP update-source deployment. Cell MODE MPLS: Exchanging label between IP ATM switch through VPI/VCI. MPLS label written into ATM cell. ATM use VPI/VCI 0/32 for control information exchange for routing protocol as well as label distribution protocol, We can configure different VPI/VCI control VC. Enabling MPLS under ATM interface then we are running MPLS inside the PVC which is called Frame Mode. MPLS control message or data packet will be encapsulated into cell and then send it over the VC. But when you create ATM subinterface with mpls (interface ATM0/0.1 mpls) then it will called Cell mode MPLS. Cell Mode ATM Configuration: Interface ATM0/3.1 mpls Ip address 150.1.12.2 255.255.255.0 PVC 0/102 mpls atm control-vc 201 Frame Mode: label will be inserted between L-2 and L-3 header. Cell Mode: VPI/VCI file are used as label as well as for label switching also. ATM LSR connot forward IP Packets.
ATM LSR ( Those are the routers between EDGE PE or Edge ATM LSR): They can only forward the router. ATM edge LSR: Segment packets into cell and forward them into MPLS ATM domain as well as reassemble cells into packet.
Per-platform label allocation is default in Frame-mode MPLS. Benefits of per-platform label allocation: 1. Smaller LFIB 2. Faster label exchange. Disadvantage is less secure. LDP-ID= 1.1.1.1:0; 0 after: is indicating per-platform allocation mode.
Per-interface label allocation is default in Cell-mode MPLS. Therefore if single router has two parallel link to same ATM switch there will be two LDP sessions are established and they will have separate labels allocation.
LDP session between ATM LSRs:
CEF Default: When standard CEF or distributed CEF operations are enabled globally, all interface that support CEF are enabled by default. Frame Mode MPLS in ATM network: When ATM infrastructure is not capable to support cell mode MPLS then you will have to build ATM PVC between the both end routers separated by ATM switch network ( which is not capable of running cell-mode MPLS.) Here both the end router will establish there LDP/TDP neighbor relationship with each other, not with any of the ATM switch in network. It is like you will have to crate Layer-2 tunnel of ATM PVC between two end points routers through ATM network and LDP/TDP messages will be travel through that tunnel transparently. You can have multiple LSP passing over one ATM PVC (in case of MPLS TE you can have multiple LSP). In Cell mode MPLS: Cisco use VPI value of 1 by default (“mpls atm vpi” is used to change the value), control vc 0/32 by default (“mpls atm control-vc” is used to change the value, but both end should have same configuration of this parameter). Uses the MPLS type for the sub-interface (interface atm 0/0.2 mpls), “mpls ldp maxhop “ command is used for LDP loop-detection, “mpls ldp atm vc-merge” is used to enable VC merge by default VC merge is enabled on ATM switches that support VC merge functionality. ATM Cell mode can be used where all atm devices in the path are capable of running layer-3 routing as well as supporting cell mode ATM. Frame mode MPLS over ATM is used where two ATM MPLS routers are seperated by the cloude of ATM switches which are not supporting any layer-3 functionality and MPLS, these switches can only understand VPI/VCI value and switch the cell using that.
RT: RT is 8 byte BGP Extended community. Format of RT ASN:NN or IP Address:NN. BGP VPNv4 will accept only those VPNv4routes which has exact RT configured on one of the local VRF on the router. You can disable that feature by using “no bgp default route-target filter” BGPVPNv4 will assign unique label to each and every prefix of VRF, to verify use “show ip bgp vpn4 all label” (In later IOS you can have option of having only One VPN label for VRF, it means all prefixes in VRF will have same label) In “show ip cef vrf x 1.1.1.1” left hand side label is transport label and right hand side label is VPN label R1#show ip cef vrf GREEN 22.22.22.22 22.22.22.22/32, version 9, epoch 0, cached adjacency to Serial0/0/0.101 0 packets, 0 bytes tag information set local tag: VPN-route-head fast tag rewrite with Se0/0/0.101, point2point, tags imposed: {18<-LDP Label 24<-VPN Label} “show ip bgp vpn4 all <ip prefix>” will give you nexthop/RD(VPNv4)/RT information for given prefix. This command will also show you any other extended or standard community attached to the prefix(route). “show ip bgp vpnv4 all label” will give show you the VPN label associated with the appropriate route of particular VRF. In MPLS VPN PE-CE protocol metrics will be converted to BGP MED during redistribution from IGP to SP MP-BGP and BGP MED will be converted to the IGP metrics during redistribution from SP MP-BGP to PE-CE IGP. 1. Routes are not showing up in PE VPNv4 table 1. Check for RT under VRF configuration of LOCAL ROUTER and REMOTE ROUTER 2. Check for the VRF IGP to BGP VRF address family redistribution on REMOTE ROUTER 3. Check for the NEXT-HOP-SELF configuration in IBGP or EBGP configuration of REMOTE router 4. Check the REMOTE ROUTER IP ROUTE VRF table or CE-PE routing protocol configuration on REMOTE ROUTER. 5. Check for VPNv4 session between the REMOTE and LOCAL Router a. check for proper neighbor configuration b. check for update-source if BGP is between LOOPBACK addresses c. Check for ebgp-multihop configuration (MPLS VPN option C) d. Check the activation of neighbor under BGP address-family configuration e. Check if you need local-as configuration option
6. Check for CE-PE configuration on both end if BGP is the CE-PE protocol As BGP use different way to advertise the routes and each one need specific component in routing or bgp table 1. Network command a. Network command only b. Network command with mask (Needs specific component in Routing table of same mask, use static route to achieve this) 2. Aggregate command (Need component in BGP table) 3. Redistribute static/connected/IGPs (Check for prefix-list or route-map associated with that) 4. Check neighbor configuration command syntax for Prefix-list or route-map configuration 5. Allowas-in on CE routers and AS-OVERRIDE on PE routers *7. no BGP Route-target filter
2. Routes are not showing up in CE Routing table 1. Check for the next-hop info in VPNv4 table of LOCAL ROUTER and in IP Routing table 2. Check for redistribution of BGP routes into the CE-PE table of local PE 3. Check for passive interface config on both PE and CE routes 4. Check for area connectivity in OSPF and configure Virtual link if needed 5. Check for CE-PE protocol version configuration in case of RIP 6. Check for BGP configuration
3. Ping ISSUE 1. Most of the issue is broken LSP a. Check for IP CEF is enabled or not b. Label distribution protocol mismatch LDP or TCP c. Make sure label protocol is enabled globally as well as on interface d. look at the LOOPBACK updates in IGP as well as label allocation for it Configure OSPF loopback with point to point network type or Use loopback of /32
e. check for end to end LSP using CEF table MPLS Forwarding Table LFIB BGP VPNv4 table with label f. In MPLS VPN option B (Here BGP next hop will do the work, you can avoid the redistribution) and C don’t forget to redistribute the BGP into IGP to generate the label for remote AS PE's LOOPBACK's in local AS , same way advertise local AS PE's loopback to the remote AS.
g. Check for MPLS configuration between both the AS if you are using the Option B with Multihope MP-EBGP between the loopback interface of ASBR's of two different PE's of respective AS.
4. Desire Path for traffic: a. next-hope-unchange (MPLS VPN option C) b. Local Pref on local router c. MED on remote router d. redistribution with different metrics on differnet PEs facing to same Cutomer's CEs e. OSPF SHAM-LINK with metrics manipulations
5. Loop prevention in MPLS VPN: a. BGP uses SOO Use with route-map ip vrf sitemap b. EIGRP uses SOO ip vrf sitemap <route-map> c. OSPF uses DOWN-BIT (LSA-3) & TAG-BIT (LSA-5 & 7) MPLS-TE 4. Setup and hold priority. Flooding:
1. PATH Message Objects: A. Label Request Object: This object request the label for establishing end to end LSP. Egress LSR and Transit LSR will generate label upon arrival of PATH message with this object. B. Explicit Route Object (ERO): This object has the addresses of each nodes through which LSP must path (Explicit Path option in MPLS-TE) C.
Record Route Object (RRO): This object will record the IP add or Router
ID of the router it is passing through to reach egress router. This can
be useful in loop prevention. RRO is also carrying the "Label Record desire" flag in session attribute which will be used in MPLS FRR capability for Link and NODE protections. D. Sender TSPec: This object will request a bandwidth reservation for LSP. 2. RESV Message Objects: A. Label Object: On coming back to ingress LSR this OBJECT will carry the label to establish the LSP path. This label were requested by Label Request Object in PATH Message. B. Record Route Object (RRO): Same function as RRO in PATH messages. LDP vs RSVP vs BGP:1. LDP (RFC5036) : independent & liberal retention mode, easy to configure, easy to add node in network, depends on IGP, need Targeted session or LDP Session protection to avoid any traffic black holing or looping when there is a change in IGP best path, not suitable for inter AS LSP setup. use UDP to discover neighbor and TCP to build session, use hellos as a keepalive to maintain the session, hellos are sent on 224.0.0.2 (all multicast Router address), Targeted hellos, session protection does need IP rechability between end routers, Targeted hellos are unicast, incremental updates for label binding, updates are reliable because of TCP session. Use TCP/UDP port 646 (TDP use TCP/UDP 711). TLV based protocol easy to expand. 2. RSVP (RFC3209) : Good to provide guaranteed bandwidth & fast fail over or path repair (MPLS FRR), create large number of session and need to maintain large number of sessions on router, provisioning need more configuration, addition of new node needs configuration on head end as well as local router. constrain based LSP computation, Head end only will decide the LSP Path. 3. BGP : Useful in inter-AS LSP establishment, most of the MPLS service inner label exchanged by MPBGP (exceptional Draft Martini based L2 VPN), Easy to extend or add new capability. RFC Lists: MPSL VPN RFC 2547 & 4364 (new) IETF Working GroupBGP RFC 1771 & 4271 IETF Working Group L2VPN RFC 4761(BGP) & 4762(LDP) & Frame Work (4664) IETF Working Group MPLS TE RFC 2702 IETF Working Group In case of backup (Protected) LSP exists then PLR will report the local protection available to headend. In case of failure PLR will signal the PATH ERROR with ERROR_SPEC to head end that tunnel is locally repaired so that head end will not tear down the TE tunnel. Locally protected link or node LSP will be up since you provision the FRR or Local link or node protection, it will not be signaled upon link failure, its already up. Once local protection is in use, headend will try to recalculate or reroute the LSP via alternate or another backup path. Locally protected LSP will remain in use till headend reroute the LSP to backup or alternate path, if headend fails to reroute or establish backup LSP, link protection will be used continuously and traffic will flow end to end and at the same time headend will keep trying to signal the LSP via alternate or backup path at periodic interval. JUNOS MPLS timers: retry-timer: Time between attempts to bring up failed primary path Default is 30 seconds retry-limit: Number of failed attempts to bring up primary path Default is 0 (unlimited retries) If limit reached, human intervention required revert-timer: Minimum time the primary must be up and stable before traffic is reverted to it Default is 60 seconds If set to 0 the LSP does not revert Optimize-timer: It is used with CSPF, if LSP is running on primary path and you add much better route then primary path or any other path that comes up which is better then the existing path that LSP is using then LSP will not be able to use that link. By default timer is 0 means optimization is disable, so in this case primary path will switch to other path only when it has failure occurred on existing primary path. To initiate manual optimization use: clear mpls lsp optimize Adaptive: Adaptive keyword will allow to use SE reservation to avoid the duplication of resource reservation. lab@r1# show label-switched-path to-r2 to 192.168.1.2; bandwidth 75m; no-cspf; primary test1 { adaptive; } secondary test2 { standby; adaptive; } Forwarding adjacency: It advertises the LSP as point to point interface in IGP so IGP can use it in its SFP calculation. You can define the metrics on LSP to be used. Use only CSPF LSP with forwarding adjacency so that IGP will not put that LSP in TED. In ISIS case, it needs LSP in both direction to use forwarding adjacency where as OSPF can work with one direction LSP and have IP reachability to local router from remote end. LSPs are only used for data traffic, no control traffic or routing updates exchanged via LSPs. In following case ISIS is advertising LSP to-r2 in ISIS in level 2 with metric of 5. isis { interface all { level 1 disable; } label-switched-path to-r2 { level 2 metric 5; } } No primary path only secondary path: In ISP network if you have primary path and secondary path, if failure happens on primary path LSP will switch over to the backup path. Again if primary path comes backup then primary path will resignaled and traffic will revert back from secondary path to the primary path. To avoid this situation we can use multiple secondiary path and do not define any primary path at all. If one secondary path fails (1st path), traffic will switched to the next available secondary path(2nd path) and if previously failed secondary path comes backup up router will not switch data back to the first secondary path. |