11-21-2010 10:08 AM
Dear,
Since I am getting very different answers from one to another, I am posting it now in the MPLS map.
Is MPLS over PPP supported or not? I have tested it heavily but not get it working. I have put the mpls ip on the Dialer of my CE device (3725) and mpls ip on the virtual-template of me PE (7200). The LDP neighbor comes up, but I cannot ping it and after some minutes its showing down again.
any help please
11-21-2010 02:40 PM
Hello Samuel,
MPLS is fully supported on links with PPP encapsulation. See the RFC 3032 for more information.
However, the problem you are dealing with here seems not to be related to the MPLS-labeled packets themselves but rather to a different problem. The LDP session created between your two devices is a TCP-based session with UDP-encapsulated Hello packets - a completely normal and usual TCP/UDP communication. There is no MPLS labeling used to create or maintain this LDP session. Therefore, if the LDP session flaps, there must be a different reason for it.
Can you please post the configuration of both your devices? And also please post the debug messages appearing at the console at the time of the flap.
Best regards,
Peter
11-22-2010 06:21 AM
Dear Peter,
Please find my configs below:
PE router (Cisco 7200 - Running IOS 12.2-22.SRE2)
!
boot-start-marker
boot system flash
boot-end-marker
!
security passwords min-length 1
logging console notifications
enable secret 5 *****************************
!
aaa new-model
!
!
aaa authentication login default local
aaa authentication enable default enable
aaa authentication ppp default group radius local
aaa authorization exec default local
aaa authorization network default group radius none
!
!
!
!
!
aaa session-id common
ip source-route
ip cef
!
!
ip vrf vlan1
rd 39721:100
route-target export 39721:100
route-target import 39721:100
!
bba-group pppoe global
virtual-template 1
!
interface Loopback0
description INT
ip address 1.3.5.7 255.255.255.255
interface GigabitEthernet0/3
mtu 1540
no ip address
media-type gbic
speed 1000
duplex full
no negotiation auto
!
interface GigabitEthernet0/3.120
encapsulation dot1Q 120
pppoe enable group global
!
interface Virtual-Template1
ip unnumbered Loopback0
ip load-sharing per-packet
peer default ip address pool default
mpls ip
mpls label protocol ldp
keepalive 2
ppp mtu adaptive
ppp authentication pap
ppp multilink
ppp multilink links minimum 1
ppp multilink fragment maximum 2
!
radius-server attribute nas-port format d
radius-server host ********* auth-port 1812 acct-port 1813 key 7 **********************
radius-server vsa send authentication
CE DEVICE ( 3725 - running IOS 12.4-15.T14)
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Router
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
ip cef
!
!
!
!
ip vrf vlan1
rd 39721:100
route-target export 39721:100
route-target import 39721:100
mpls label protocol ldp
controller DSL 0/0
mode atm
line-term cpe
line-mode 2-wire line-zero
dsl-mode shdsl symmetric annex B
line-rate auto
interface ATM0/0
no ip address
no atm ilmi-keepalive
pvc 8/35
encapsulation aal5snap
pppoe-client dial-pool-number 1
interface Dialer0
ip address negotiated
encapsulation ppp
dialer pool 1
dialer-group 1
mpls ip
ppp authentication pap callin
ppp pap sent-username ************** password 0 ***********
mpls ldp router-id Dialer0 force
Router#sh users
Line User Host(s) Idle Location
* 0 con 0 idle 00:00:00
Interface User Mode Idle Peer Address
Vi2 PPPoE 00:00:19 1.3.5.7
*Jul 26 12:18:44.595: %LDP-5-NBRCHG: LDP Neighbor 1.3.5.7 (1) is UP
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.3.5.7, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Router#
*Jul 26 12:21:44.627: %LDP-5-NBRCHG: LDP Neighbor 1.3.5.7:0 (1) is DOWN (Session KeepAlive Timer expired)
*Jul 26 12:21:48.951: %BGP-5-ADJCHANGE: neighbor 1.3.5.7 Up
*Jul 26 12:21:51.271: %LDP-5-NBRCHG: LDP Neighbor 1.3.5.7:0 (1) is UP
When I disable MPLS on virtual-template or Dialer interface, I am able to ping the PE router.
Rgds,
Samuel
11-22-2010 02:44 PM
Hello Samuel,
I have a feeling you have stumbled across a bug. I have been able to replicate this behavior using two routers interconnected via a direct Ethernet interconnection running PPPoE.
What I observed using Wireshark was that when I pinged the PE's loopback from CE, pings failed because CE sent unlabeled ICMP packets to CE (which is correct) but the PE responded by sending MPLS-labeled ICMP replies back to CE, and CE dropped them. After further investigation, the CE was found to advertise its PPP-negotiated IP address from its Dialer0 interface in LDP using an explicit non-null label, just as if that prefix was a remotely-learned network. This behavior is incorrect - the CE should have advertised this prefix with implicit-null label or should not have advertised it at all. As a result, PE started using this label when sending packets to CE's IP address, and the CE dropped them.
In my lab, I have tried to replicate your configuration to a reasonable degree. The CE negotiated an IP address of 100.100.100.1. The PE was using the IP 1.3.5.7/32 on its loopback.
Note that CE has created a forwarding entry in its LFIB for its own negotiated IP address:
CE(config)#do show mpls fo
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 1.3.5.7/32 0 Di0 point2point
17 Untagged 100.100.100.1/32 918 Di0 point2point
CE(config)#
That is unusual - there are also other interfaces created on the CE but they do not have any mapping created and inserted into the LFIB.
Moreover, CE has advertised this prefix to PE:
PE(config)#do show mpls fo
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 17 100.100.100.1/32 0 Vi1.1 point2point
17 Pop tag 15.15.15.0/24 0 Vi1.1 point2point
PE(config)#do show ip cef 100.100.100.1
100.100.100.1/32, version 32, epoch 0, attached, connected, cached adjacency to Virtual-Access1.1
0 packets, 0 bytes
tag information set
local tag: 16
fast tag rewrite with Vi1.1, point2point, tags imposed: {17}
via Virtual-Access1.1, 0 dependencies
valid cached adjacency
tag rewrite with Vi1.1, point2point, tags imposed: {17}
Note that PE learned the label 17 for the Di0's IP address at CE, and is using it to communicate with 100.100.100.1. For some reason, the CE is unable to process such packets and it drops them. Also note that there is another network 15.15.15.0/24 learned from the CE which is also directly attached to it but which is correctly recognized with the implicit-null label, and which was not explicitly mentioned in the LFIB output on CE. This is how the 100.100.100.1/32 entry should have looked like - but it does not, and I believe this is the symptom of the bug.
To summarize, this issue is created by the fact that after CE negotiates its own IP address via IPCP, it assigns it an explicit non-null label instead of treating that IP address as a locally-attached prefix, and advertises a label mapping for this prefix to PE, forcing it into using that label when communicating with CE. It is important that this problem arises only when using the ip address negotiated command on CE. I have verified that if using a statically configured IP address on the CE router, no bogus label mappings are advertised and the connection is stable.
A workaround is possible by preventing the CE from advertising a label mapping for its own Di0's IP address. Unfortunately, I have not found a way how to filter received label mappings on PE, but only how to filter label mapping being sent. Therefore, this filtering has to be done on the CE, and if the CE is not assigned a constant IP address then the ACL has to cover the entire IP local pool defined on the PE.
The configuration of the workaround on the CE would be as follows:
ip access-list standard LDP_Mappings
deny 100.100.100.0 0.0.0.255 ! This is the range of the IP local pool used on PE
permit any
mpls ldp advertise-labels for LDP_Mappings
no mpls ldp advertise-labels
This configuration appears to prevent the CE from advertising its negotiated IP address on Di0 in a label mapping, thus making sure that CE-PE communication itself is unlabeled.
Please give it a try and let me if it worked. You can also raise a TAC ticket directly from this thread - consider doing that please. If this is indeed a bug then it definitely should be resolved.
Best regards,
Peter
12-06-2010 02:56 PM
Hello Peter,
very good job
I had some doubts after having seen Samuel's configuration but you have done some tests and pointed to the issue
Best Regards
Giuseppe
12-14-2010 07:52 AM
I have noticed the issues with PPPoE also. Tested on 12.4 24T4 and 15.0M4.
Once I add the LDP access list as above and a static IP on the dialer it works.
Anyone know if this is by design or a bug?
I would like to be able to assign addresses through Radius but if we have to staticaly assign our edge routers I guess that is ok too.
12-28-2010 09:28 AM
Hello Feene1,
the LDP router-id is supposed to be a stable address on the device typically that of a loopback interface.
>> Once I add the LDP access list as above and a static IP on the dialer it works.
When the IP address on the dialer is static and not the result of IPCP negotiation the dialer interface is treated as a normal interface.
I'm afraid this depends from MPLS implementation and this may be by design rather then a SW bug.
By the way, if we try to change the MPLS LDP router-id on the fly, the change is not active immediately unless we add the force option.
We can consider the use of MPLS over PPPoE a corner case that is not covered by current MPLS code implementation.
Hope to help
Giuseppe
01-25-2011 05:33 AM
Dear,
After our last discussion I have worked with this on Cisco 3745 and it worked smootly.
Now I was testing this feature on the Cisco 2651XM. With the Cisco 12.3(26) software, all is working perfect.
Since we want to support SHDSL WICs in the device, I was forced to move to 12.3T version. Here, the LDP neighbor is comming up but MPLS is not working correctly:
Router#sh mpls forwarding-table
16 Untagged 1.3.5.7/32 0 Vi1 point2point
17 Aggregate 1.115.0.12/30[V] 0
Tag 16 should be POP tag. Packets sent from the PE to CE are arriving at the CE, but the CE is not answering them.
I believe this is a bug but I was wondering if their is a workaround.
Rgds,
Samuel
01-25-2011 06:17 AM
When I ran into an IOS that didnt work - I put a static IP on the dialer interface and it popped up.
Something to try.
01-26-2011 05:53 AM
I tried that already yesterday but this was not solving the issue.
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