[mpls-linux-general] unexpected problems
Status: Beta
Brought to you by:
jleu
From: Marc Droste-F. <md...@un...> - 2001-10-30 17:02:55
|
Hallo, while trying to create a Hop-to-Hop route via MPLS unexpected problems appeared. i.e.: <A>-<B>-<C> = route via 3 nodes Our system works like this. On each node a MPLS-forwarding is initialized: i.e.: forwarding at node B MPLS_LABELSPACE --------------------------------------------- lo 0 eth0 0 eth1 0 eth2 0 . --------------------------------------------- MPLS_IN --------------------------------------------- 40018c00 gen 99 0 POP DLV 40019000 gen 100 0 POP FWD(40019002) 40019400 gen 101 0 POP FWD(40019403) 40019800 gen 102 0 POP FWD(40019804) . --------------------------------------------- MPLS_OUT --------------------------------------------- 40019002 SET(eth0) 40019403 SET(eth1) 40019804 SET(eth2) The nodes on path got the task to pop just one label from the incoming stack before forwarding it to the next node. If the node recognizes label 99 on the top of the stack, it pops it away and forwards it to the ip-layer. The whole route is defined by the labelstack generated on the first node on path. i.e: MPLS_OUT --------------------------------------------- 408e5803 PUSH(gen 101) SET(eth1) 408e5c03 PUSH(gen 99) FWD(408e5803) 408e6003 FWD(408e5c03) . --------------------------------------------- MPLS_TUNNEL --------------------------------------------- mpls0 408e6003 An analysis with tethereal shows that the labelstack received on the last node is not plain ip. tethereal still seems to recognize a mpls header and shows a corrupt MPLS labelstack. The mpls header seems to be correct except on the last node. i.e.: tethereal seems to show on the node B a correct MPLS header. Capturing on eth1 (the outgoing interface at node B): Frame 1 (56 on wire, 56 captured) Arrival Time: Oct 30, 2001 13:12:10.817675000 Time delta from previous packet: 0.000000000 seconds Time relative to first packet: 0.000000000 seconds Frame Number: 1 Packet Length: 56 bytes Capture Length: 56 bytes Ethernet II Destination: 00:02:b3:1f:0b:a2 (00:02:b3:1f:0b:a2) Source: 00:02:b3:1f:0b:96 (00:02:b3:1f:0b:96) Type: MPLS label switched packet (0x8847) MultiProtocol Label Switching Header MPLS Label: Unknown (99) MPLS Experimental Bits: 0 MPLS Bottom Of Label Stack: 1 MPLS TTL: 255 Internet Protocol, Src Addr: denise-3 (10.0.3.8), Dst Addr: 10.1.2.6 (10.1.2.6) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 35 Identification: 0x7d8f Flags: 0x04 .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 64 Protocol: UDP (0x11) Header checksum: 0xa42c (correct) Source: denise-3 (10.0.3.8) Destination: 10.1.2.6 (10.1.2.6) User Datagram Protocol, Src Port: 1024 (1024), Dst Port: 9876 (9876) Source port: 1024 (1024) Destination port: 9876 (9876) Length: 15 Checksum: 0x91e5 (correct) Data (7 bytes) Thanks in advance for new ideas solving this problem. Andreas & Marc. -------------------------- University Of Paderborn |