[mpls-linux-general] Strange Behaviour with LER<--->LER LSP and mpls-linux 0.700
Status: Beta
Brought to you by:
jleu
From: Jordan H. <jo...@br...> - 2000-12-23 00:46:04
|
Hey James, I have been playing with mpls-linux for awhile now and recently I re-compiled and patched the test11 kernel so I could try version 0.700 of your mpls-linux package. So far, I am seeing some strange behaviors. Here is the topology: |----------| |----------| | LER A | | LER B | | eth1 | | eth0 | |----------| |----------| | | .1 .2 | ----------- ----------- 172.16.x.x 10.0.0.x (All connections are 100 Mb/s Ethernet) On LER A: # route add -host 10.0.0.2 dev eth1 # mplsadm -L eth1:0 # mplsadm -A -B -O gen:16:eth1:ipv4:10.0.0.1 -f 10.0.0.2/32 # mplsadm -A -I gen:17:0 On LER B: # route add -host 10.0.0.1 dev eth0 # mplsadm -L eth0:0 # mplsadm -A -B -O gen:17:eth0:ipv4:10.0.0.2 -f 10.0.0.1/32 # mplsadm -A -I gen:16:0 The first thing that I see, when I do I ping from LER A to LER B is this (according to both tcpdump and ethereal): 18:16:05.140992 > arp who-has 10.0.0.1 tell 10.0.0.1 (0:20:78:11:8:63) That ARP is /originating/ from LER A! Why does it need to know its own MAC? Weird, huh?? I tried to pry myself around whatever problem that is by creating a static arp entry. Then, according to ethereal a properly formed MPLS tagged ICMP packet goes out the door. The story on LER B is the same thing, I must add a static ARP entry for the local interface before it will start to send MPLS tagged packets. However, not all is well after that. I started a ping from LER B to LER A and the packet looks badly mangled from LER A's perspective. The packet from from ethereal looks like: 0000 00 a0 cc 62 8e 49 00 a0 cc 62 8e 49 88 47 45 00 ..=CCb.I.. =CCb.= I.GE. 0010 00 54 00 00 40 00 ff 01 67 a6 0a 00 00 02 0a 00 .T..@.=FF. g=A6.= ..... 0020 00 01 08 00 d6 84 c9 03 00 00 23 fd 43 3a fa 3c ....=D6.=C9. ..#= =FDC:=FA< 0030 0c 00 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 ........ ........ 0040 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 ........ .. !"#$= % 0050 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 &'()*+,- ./01234= 5 0060 36 37 34 35 36 37 674567 To to the ethereal layer view this looks like: Frame #x Ethernet II MultiProtocol Label Switching Header MultiProtocol Label Switching Header MultiProtocol Label Switching Header IP [Malformed Frame: IP] Whereas a proper packet looks like: 0000 00 20 78 11 08 63 00 20 78 11 08 63 88 47 00 01 . x..c. x..c.G.. 0010 01 40 45 00 00 54 00 00 40 00 40 01 26 a7 0a 00 .@E..T.. @.@.&=A7= .. 0020 00 01 0a 00 00 02 08 00 cf e7 70 04 0e 00 ff ee ........ =CF=E7p= ...=FF=EE 0030 43 3a 70 e7 0b 00 08 09 0a 0b 0c 0d 0e 0f 10 11 C:p=E7.... .....= ... 0040 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 ........ ...... = ! 0050 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 "#$%&'() *+,-./0= 1 0060 32 33 34 35 36 37 234567 To ethereal this correctly appears as: Frame #x Ethernet II MultiProtocol Label Switching Header Internet Protocol Internet Control Message Protocol I am not sure exactly at which stage things are breaking down here, but this is a config that used to work with the 0.6xx mpls-linux code. If there is something you would like me to try, or can point me toward th= e right place to start poking around I would be most appreciative! Anyway, thank you very much! Jordan. --=20 *------=3D=3D=3D=3D=3D=3D=3D=3D=3D------* | Jordan Husney | I Software Engineer I I Bravida Corporation I | (651) 698-4611 | *------=3D=3D=3D=3D=3D=3D=3D=3D=3D------* |