Diff for /wikisrc/users/kefren/mpls.mdwn between versions 1.1 and 1.3

version 1.1, 2010/07/04 20:22:25 version 1.3, 2012/11/01 09:21:52
Line 1 Line 1
 #Some quick info about MPLS:  #Some quick info about MPLS:
   
 You need to compile your kernel with options MPLS and psuedo-device ifmpls  You need to compile your kernel with options MPLS and psuedo-device ifmpls
 For pure LSR - that only switch labels without encap/decap from other protocols (e.g. INET) you need only to work on routing table. For example:  For pure LSR - that only switch labels without encap/decap from other protocols (e.g. INET) - you need to work on routing table, ONLY. For example:
   
 <pre># route add -mpls 41 -tag 25 -inet 193.28.151.97  <pre># route add -mpls 41 -tag 25 -inet 193.28.151.97
 add host 41: gateway 193.28.151.97  add host 41: gateway 193.28.151.97
Line 10  add host 42: gateway 193.28.151.97 Line 10  add host 42: gateway 193.28.151.97
 # route add -mpls 51 -tag 25 -inet 193.28.151.97  # route add -mpls 51 -tag 25 -inet 193.28.151.97
 add host 51: gateway 193.28.151.97</pre>  add host 51: gateway 193.28.151.97</pre>
   
 Translation of first line: if it receives an MPLS frame with label 41 forward it to INET next-hop 193.28.151.97, tagged with label 25  Translation of first line: if it receives an MPLS frame with label 41 forward it to INET next-hop 193.28.151.97, but switch (change) label 41 with label 25
   
 You also need to tweak sysctl to accept and forward MPLS:  You also need to tweak sysctl to accept and forward MPLS:
   
Line 33  Destination        Gateway            Fl Line 33  Destination        Gateway            Fl
   
 #Interacting with other protocols  #Interacting with other protocols
   
 If you want to also decapsulate/encapsulate from MPLS to some other protocol (like INET or INET6), you have to create an mpls interface and put in up: ifconfig mpls0 create up. YOU NEED TO ADD AN ADDRESS OF THAT PROTOCOL ON THIS INTERFACE - whenever that address is private or not.  If you want to also decapsulate/encapsulate from MPLS to some other protocol (like INET or INET6), then you have to create an mpls interface and put in up state.
   
 E.g. for INET - setting a fictitious address:  
   
 <pre>  <pre>
 # ifconfig mpls0 create up  # ifconfig mpls0 create up
 # ifconfig mpls0 1.1.1.1/32  
 </pre>  </pre>
   
 After that create routes like this - use -ifa flag in order to avoid self-generated packets having source address 1.1.1.1, but route them thru mpls0 interface.  After that, create routes using ifa flag in order to specify the source interface (used for source IP Address of host generated packets), but route them through mpls0 interface.
   
 <pre>  <pre>
 # route add 204.152.190.0/24 -ifa 193.28.151.105 -ifp mpls0 -tag 25 -inet 193.28.151.97  # route add 204.152.190.0/24 -ifa 193.28.151.105 -ifp mpls0 -tag 25 -inet 193.28.151.97
Line 73  or with netstat -rT: Line 71  or with netstat -rT:
 ...  ...
 </pre>  </pre>
   
   Test if it's working using traceroute -M. Notice first hop is reporting label 25.
   
 I'm working on [[LDP]] daemon, it should be available in src tree in a couple of months. You may still want to test the beta.  <pre>
   # traceroute -M 204.152.190.12
   traceroute to 204.152.190.12 (204.152.190.12), 64 hops max, 40 byte packets
    1  shaitan.girsa.ro (193.28.151.97)  2.892 ms  1.957 ms  1.992 ms [MPLS: Label 25 Exp 0]
    2  b4-vlan811.girsa.ro (193.28.151.82)  1.988 ms  1.961 ms  1.989 ms [MPLS: Label 27 Exp 0]
    3  80.97.219.81 (80.97.219.81)  1.990 ms  1.974 ms  2.009 ms
    4  vlan103.cr3-sw.buch.artelecom.net (80.97.199.1)  2.651 ms  2.280 ms  3.663 ms
    5  10.0.241.189 (10.0.241.189)  33.944 ms  34.011 ms  33.869 ms [MPLS: Label 21669 Exp 0]
    6  10.0.240.22 (10.0.240.22)  33.946 ms  33.689 ms  33.929 ms
    7  20gigabitethernet4-3.core1.fra1.he.net (80.81.192.172)  35.930 ms  35.926 ms  35.917 ms
    8  10gigabitethernet1-2.core1.par1.he.net (72.52.92.89)  43.940 ms  45.900 ms  47.916 ms
    9  10gigabitethernet1-3.core1.lon1.he.net (72.52.92.33)  59.901 ms  51.888 ms  51.913 ms
   10  10gigabitethernet4-4.core1.nyc4.he.net (72.52.92.241)  119.808 ms  119.780 ms  119.800 ms
   11  10gigabitethernet1-2.core1.chi1.he.net (72.52.92.102)  141.755 ms  143.748 ms  149.756 ms
   12  he.ord1.isc.org (209.51.161.18)  143.756 ms  143.757 ms  141.755 ms
   13  iana.r1.ord1.isc.org (199.6.0.1)  145.831 ms  141.747 ms  143.762 ms
   14  int-0-0-1-8.r1.pao1.isc.org (149.20.65.157)  201.653 ms  205.650 ms  201.650 ms [MPLS: Label 16005 Exp 0]
   15  int-0-0-1-0.r2.sql1.isc.org (149.20.65.10)  201.663 ms  201.645 ms  201.664 ms
   16  www.netbsd.org (204.152.190.12)  199.676 ms  201.652 ms  201.673 ms
   </pre>
   
   See also [[LDP]] wiki page.

Removed from v.1.1  
changed lines
  Added in v.1.3


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb