Re: [mpls-linux-general] SOS.....MPLS forwarding not working...URGENT
Status: Beta
Brought to you by:
jleu
|
From: James R. L. <jl...@mi...> - 2002-10-21 16:26:52
|
On Mon, Oct 21, 2002 at 05:07:42PM +0530, Amritpal Singh wrote: > Hi James, > > Ya the message "mpls_bind_out2fec: couldn't find the FIB_NODE(0)" is gone now > after having added the host-specific route. > But still the problem of counters in /proc/net/mpls_* being zero persists. > > I found out that having configured a LSP between B and C only, the counters increment only when I ping > from A to C or from B to C or D. This is strange because I was testing MPLS by pinging D from A. > > > A---------------B-----------C---------------------D > > Can you enlighten me on this ? Why is ping from A to D not taking the MPLS path ? Are you creating cross connects on B and C? mplsadm2 -B -I gen:16:0 -O 0x4 > > Regards > Amrit > ------------------------------ > ----- Original Message ----- > From: James R. Leu > To: Amritpal Singh > Cc: mpl...@li... > Sent: Friday, October 18, 2002 11:14 PM > Subject: Re: [mpls-linux-general] SOS.....MPLS forwarding not working...URGENT > > > The first change I suggest you make is to switch to the latest version > of mpls-linux-1.1. Many things have changed since 1.0, and I do not have > the time to downgrade to mpls-linux-1.0 to test/verify any of the > mpls-linux-1.0 command you are try, but...... > > ... since it seems like you need to stay with mpls-linux-1.0 the only thing > I can see wrong (from a quick skim of your output) is that when specifing > -f <prefix>, the prefix must have an EXACT match in your routing table. > > In your example below, 10.2.0.2/32 must show up in your routing table. > The "mpls_bind_out2fec: couldn't find the FIB_NODE(0)" message in > the 'dmesg' output is what tells me that 10.2.0.2/32 is not in your > routing table. > > Jim > > On Fri, Oct 18, 2002 at 06:20:46PM +0530, Amritpal Singh wrote: > > > > Hi All, > > > > The following is the setup in which I am trying to test MPLS. > > > > > > -------- ----------------- ----------------- --------- > > | |------------------ | |------------------| |------------------- | | > > | A | | B | | C | | D | > > -------- ----------------- ----------------- --------- > > 10.1.1.2 10.1.1.1 10.2.0.1 10.2.0.2 10.2.1.1 10.2.1.10 > > eth0 eth0 eth1 eth0 eth1 eth0 > > > > I am running mpls-linux-1.0 on a Red Hat Linux 7.2 > > All the nodes hav the patch applied to them. > > > > Nodes B and C are the ones which should enable me to see label switching. > > So I configure the incoming and outgoing labels on B and C as follows. > > > > **************FOR NODE B ****************************************************** > > [root@ferrari utils]# ./mplsadm -v -A -O gen:16:eth1:ipv4:10.2.0.2 > > > > Out label input: gen:16:eth1:ipv4:10.2.0.2 > > > > ipv4 > > > > [root@ferrari utils]# > > > > [root@ferrari utils]# ./mplsadm -B -O gen:16:eth1 -f 10.2.0.2/32 > > > > [root@ferrari utils]# > > > > [root@ferrari utils]# ./mplsadm -L eth1:0 > > > > [root@ferrari utils]# ./mplsadm -v -A -I gen:17:0 > > > > In label input: gen:17:0 > > > > [root@ferrari utils]# ./mplsadm -d > > > > Debug: Success > > > > [root@ferrari utils]# ./mplsadm -v -B -O gen:16:eth1 -f 10.2.0.2/32 > > > > Out label input: gen:16:eth1 > > > > FEC input: 10.2.0.2/32 > > > > ****************END FOR NODE B *********************************************** > > > > ****************FOR NODE C ***************************************************** > > [root@renault utils]# ./mplsadm -v -A -O gen:17:eth0:ipv4:10.2.0.1 > > > > Out label input: gen:17:eth0:ipv4:10.2.0.1 > > > > ipv4 > > > > [root@renault utils]# > > > > [root@renault utils]# ./mplsadm -v -B -O gen:17:eth0 -f 10.2.0.1/32 > > > > Out label input: gen:17:eth0 > > > > FEC input: 10.2.0.1/32 > > > > [root@renault utils]# ./mplsadm -L eth0:0 > > > > [root@renault utils]# ./mplsadm -v -A -I gen:16:0 > > > > In label input: gen:16:0 > > > > [root@renault utils]# ./mplsadm -L eth1:0 > > > > [root@renault utils]# > > > > *****************************END FOR NODE C ************************************* > > > > > > > > I see all the valid entries in all the mpls_* files in /proc/net as shown below. > > > > **********FOR NODE B ************************************************************** > > [root@ferrari Desktop]# more /proc/net/mpls_* > > > > :::::::::::::: > > > > /proc/net/mpls_fec > > > > :::::::::::::: > > > > :::::::::::::: > > > > /proc/net/mpls_in > > > > :::::::::::::: > > > > 40004400 0/0/0 gen 17 0 POP PEEK > > > > :::::::::::::: > > > > /proc/net/mpls_labelspace > > > > :::::::::::::: > > > > lo 0 > > > > eth1 0 > > > > :::::::::::::: > > > > /proc/net/mpls_out > > > > :::::::::::::: > > > > 40004003 0/0/0 PUSH(gen 16) SET(eth1,10.2.0.2) > > > > :::::::::::::: > > > > /proc/net/mpls_tunnel > > > > :::::::::::::: > > > > *************END FOR NODE B *************************************************** > > ***************FOR NODE C ****************************************************** > > [root@renault root]# more /proc/net/mpls_* > > > > :::::::::::::: > > > > /proc/net/mpls_fec > > > > :::::::::::::: > > > > :::::::::::::: > > > > /proc/net/mpls_in > > > > :::::::::::::: > > > > 40004000 0/0/0 gen 16 0 POP PEEK > > > > :::::::::::::: > > > > /proc/net/mpls_labelspace > > > > :::::::::::::: > > > > lo 0 > > > > eth0 0 > > > > :::::::::::::: > > > > /proc/net/mpls_out > > > > :::::::::::::: > > > > 40004403 0/0/0 PUSH(gen 17) SET(eth0,10.2.0.1) > > > > :::::::::::::: > > > > /proc/net/mpls_tunnel > > > > :::::::::::::: > > > > > > > > But when I try to ping D from A I donot see the label switching happening at all.Ping works fine. > > > > But the counters in mpls_in and mpls_out remain 0.Plus I donot see anything in mpls_fec.Should I ? > > > > I run ethereal on B and C to see incoming/outgoing labels on the packet but I find that > > there is absolutely no label on the packets. > > > > The last few lines of output of "DMESG" are shown below . > > ************************FOR NODE B ***************************************** > > MPLS version 0.996 11/21/2001 jl...@mi... > > > > MPLS Tunnel interface > > > > ds: no socket drivers loaded! > > > > VFS: Mounted root (ext2 filesystem) readonly. > > > > Freeing unused kernel memory: 224k freed > > > > Adding Swap: 153176k swap-space (priority -1) > > > > mpls_prep_out2fec: enter > > > > Label GEN 16 > > > > Key GEN 16 3 > > > > mpls_fill_key_res: enter > > > > mpls_fill_key_res: exit > > > > mpls_bind_out2fec: couldn't find the FIB_NODE(0) > > > > mpls_bind_out2fec: exit > > > > mpls_set_labelspace: enter > > > > mpls_set_labelspace: labelspace(0) > > > > mpls_set_labelspace: exit > > > > *****************************END FOR NODE B ******************************* > > ***************************** FOR NODE C ************************************ > > MPLS version 0.996 11/21/2001 jl...@mi... > > > > MPLS Tunnel interface > > > > ds: no socket drivers loaded! > > > > VFS: Mounted root (ext2 filesystem) readonly. > > > > Freeing unused kernel memory: 224k freed > > > > Adding Swap: 153176k swap-space (priority -1) > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > device eth0 entered promiscuous mode > > > > device eth0 left promiscuous mode > > > > *******************************************END FOR NODE C ******************************** > > > > I cannot upgrade to the latest version available because of time constraints.I had downloaded this > > version some months back and I have to show MPLS working with this version only. > > > > I will be very thankful to all the people who respond and help me in any way. > > > > I am looking forward to your comments on this. > > > > P.S: Last query: Do I need to "decode" the ICMP packet received at node C by ethereal into a MPLS packet. > > As I see the raw packet received at the ethereal there is no MPLS header. But there is an option in ethereal > > to decode the packet in a number of way. So should I decode it at the link layer as MPLS packet to see the header? > > > > Thanks again > > Amrit > > > > -------------------------------- > > Amritpal Singh > > Infosys Technologies Ltd. > > Bangalore - 561229 > > Tel No : 4166308 > > --------------------------------- > > > -- > James R. Leu > -- James R. Leu |