Re: [mpls-linux-general] can't traceroute and RTT MPLS greater than Ordinary IP Network.
Status: Beta
Brought to you by:
jleu
From: kuldonk d. <ku...@ya...> - 2010-03-07 02:36:42
|
________________________________ From: Adrian Popa <adr...@gm...> To: kuldonk doenk <ku...@ya...> Cc: mpls milis <mpl...@li...>; james leu <jl...@mi...>; james leu <jl...@us...> Sent: Fri, March 5, 2010 1:51:06 AM Subject: Re: [mpls-linux-general] can't traceroute and RTT MPLS greater than Ordinary IP Network. Hello, Here are the answers to your questions: 1) for the traceroute command - did you expect to see the hops in the mpls network? If yes, then make sure your MPLS routers have the necessary routing information to return the ICMP TTL exceeded message back to the source, but via IP. This happens because your "traceroute" packets are encapsulated in MPLS at the edge, their TTL is copied in the MPLS TTL, and the frame is forwarded using MPLS. When the MPLS TTL expires, the node should (it may depend on the configuration) issue an ICMP TTL expired back to the source. Since this ICMP traffic is between your router and your Host A, it will not travel through MPLS, because your router doesn't have the routing mapping necessary to encapsulate and forward your traffic. So, it will rely on IP to send the message. If your routing table(s) don't have the necessary information to route the packet, it will be dropped, and traceroute will show *. In order for traceroute to work properly, you should check that it works on your setup but only over IP (no mpls configuration), and also, you can use tcpdump on "any" interface on one router to see if it sends back ICMP TTL exceeded (or it can be ICMP port unreachable - depending on your traceroute type). yes. I wan to see it. So..for Static MPLS linux as I could not be done for traceroute to see hops??? 2) Your question also has your answer in it! Since you can capture traffic and see the label, then your network must be running MPLS. I don't know who you have to prove this (are the persons knowledgeable in networking?), but it's good enough evidence for me... I just wanted to prove whether my MPLS congfiguration really have to RUN. 3) There are two aspects of the performance you are mentioning. MPLS was intended to reduce IP lookup time, but I would say that todays networks don't use MPLS because of that reason. Advances in hardware (like Cisco's CEF) have made lookup very fast and it's no longer a software process in most high end routers. Most often MPLS is used to reduce the router's need for a internet/global routing table... In my experiments I managed to get MPLS performance close to IP performance, by disabling the debug messages in the mpls-linux implementation. You can do that by running "echo 0 > /sys/net/mpls/debug" (or something like that - haven't done it for years). Even with debugs disabled, there is no guarantee that you will see any speedup over IP. Keep in mind that your setup is small and your routing tables are small - so IP lookup time (even done in software) is comparable with MPLS switching. You can try feeding ~100.000 routes in your routing tables and then you should see some speed difference... Hope my answers helped, Regards, Adrian On Thu, Mar 4, 2010 at 6:01 PM, kuldonk doenk <ku...@ya...> wrote: hi james and all .. >I tried build basic testbed MPLS with make a label and routing protocolmanually(static). I use fedora 8 MPLS 1962. >below is a picture and configuration : >http://wenkul.files.wordpress.com/2010/03/lsp-1.jpg > >Host A (ubuntu) : > >Ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up >ip route >add default via 192.168.1.2 > > >LER 1 : >> > > >echo "1" > /proc/sys/net/mpls/debug >Modprobe >mpls4 >mpls >nhlfe add key 0 instructions push gen 100 nexthop eth1 ipv4 192.168.2.2 >ip >route add 192.168.7.0/24 via 192.168.2.2 mpls 0x2 >mpls >nhlfe add key 0 instructions nexthop eth0 ipv4 192.168.1.1 >mpls >labelspace set dev eth1 labelspace 0 >mpls >ilm add label gen 200 labelspace 0 >mpls xc add ilm_label gen 200 ilm_labelspace 0 nhlfe_key 0x3 > > >LSR : >>echo "1" > /proc/sys/net/mpls/debug >modprobe mpls4 >mpls labelspace set dev eth0 labelspace 0 >mpls ilm add label gen 100 labelspace 0 >mpls nhlfe add key 0 instructions push gen 700 nexthop eth2 ipv4 192.168.4.2 >>mpls xc add ilm_label gen 100 ilm_labelspace 0 nhlfe_key 0x2 >mpls labelspace set dev eth2 labelspace 0 >mpls ilm add label gen 800 labelspace 0 >mpls nhlfe add key 0 instructions push gen 200 nexthop eth0 ipv4 192.168.2.1 >>mpls xc add ilm_label gen 800 ilm_labelspace 0 nhlfe_key 0x3 > > >LER 2 : >echo "1" > /proc/sys/net/mpls/debug >>modprobe mpls4 >mpls labelspace set dev eth1 > labelspace 0 >mpls ilm add label gen 700 labelspace 0 >mpls nhlfe add key 0 instructions nexthop eth0 ipv4 192.168.7.2 >mpls xc add ilm_label gen 700 ilm_labelspace 0 nhlfe_key 0x2 >mpls nhlfe add key 0 instructions push gen 800 nexthop eth1 ipv4 192.168.4.1 >>ip route add 192.168.1.0/24 via 192.168.4.1 mpls 0x3 > > > >Host B (windows) : >> >IPADDRESS 192.168.7.2 >NETMASK 255.255.255.0 >GATEWAY 192.168.7.1 > > >1. First Question > >for Both of Host, i using default gateway. >then I do ping from host A to host B. Such as this results : >host A: >root@mpls5-desktop:~# ping 192.168.7.2 >PING 192.168.7.2 (192.168.7.2) 56(84) bytes of data. >64 bytes from 192.168.7.2: icmp_seq=1 ttl=125 time=1.81 ms >>64 bytes from 192.168.7.2: icmp_seq=2 ttl=125 time=1.79 ms >64 bytes from 192.168.7.2: icmp_seq=3 ttl=125 time=1.78 ms > > >but when i do "traceoute" the result doesn't match what I expected. >Such as this results : >host A: > >root@mpls5-desktop:~# traceroute 192.168.7.2 > >traceroute to 192.168.7.2 (192.168.7.2), 30 hops max, 60 byte packets > 1 mpls1.local (192.168.1.2) 0.096 ms 0.059 ms 0.036 ms > 2 * * * > 3 * * * > 4 192.168.7.2 (192.168.7.2) 0.263 ms 0.245 ms 0.260 ms > > > >My first question is "what is the problem and what should I do"? > > >2. Second Question. how to prove or to know whether the MPLS network has been able to work on a network?? > >because when i using ethereal or tcpdump in LSR, i got the package MPLS, > such as the following picture : >http://wenkul.files.wordpress.com/2010/01/screenshot-ethereal.png >> (capture using ethereal) >and >http://wenkul.files.wordpress.com/2010/03/eth1-ping.png >> (capture with tcpdump) > > >3. Third Question >I also tried to compare the Round Trip Time (RTT) from ordinary IP networks with MPLS networks by using the "ping" command as shown above. > >when > RTT ordinary IP networks : >>host A >> >root@mpls5-desktop:~# ping 192.168.7.2 -c 30 >PING 192.168.7.2 (192.168.7.2) 56(84) bytes of data. >64 bytes from 192.168.7.2: icmp_seq=1 ttl=125 time=0.344 ms >>64 bytes from 192.168.7.2: icmp_seq=2 ttl=125 time=0.308 ms >64 bytes from 192.168.7.2: icmp_seq=3 ttl=125 time=0.321 ms > >When RTT of > MPLS network: >host A: >root@mpls5-desktop:~# ping 192.168.7.2 -c 30 >PING 192.168.7.2 (192.168.7.2) 56(84) bytes of data. >64 bytes from 192.168.7.2: icmp_seq=1 ttl=125 time=1.81 ms >>64 bytes from 192.168.7.2: icmp_seq=2 ttl=125 time=1.79 ms >64 bytes from 192.168.7.2: icmp_seq=3 ttl=125 time=1.78 ms > >it should theoretically MPLS network RTT is smaller than the normal IP networks. MPLS goal is to streamline the process of analyzing the data packets in an MPLS router making faster than normal IP networks. but Why the value of common IP network ping faster than MPLS network ???? > >I want to ask for help to all , because I need a short time to > solve this problem. please help me. > > > > > > >------------------------------------------------------------------------------ >>Download Intel® Parallel Studio Eval >>Try the new software tools for yourself. Speed compiling, find bugs >>proactively, and fine-tune applications for parallel performance. >>See why Intel Parallel Studio got high marks during beta. >http://p.sf.net/sfu/intel-sw-dev >_______________________________________________ >>mpls-linux-general mailing list >mpl...@li... >https://lists.sourceforge.net/lists/listinfo/mpls-linux-general > > |