Thread: [mpls-linux-general] Label stacking example
Status: Beta
Brought to you by:
jleu
|
From: Birger <bto...@ex...> - 2004-10-20 10:32:27
|
Hello,
I have the following lab network:
--[R1]--[R2]--[R3]--[R4]--
I successfully set up manually an LSP from R1 to R4. However, I now
want to set up additional label stacking between R2 and R3 manually(!)
for demonstrative purposes ("look, this is how label stacking works"). =20
Unfortunately I was not able to do this neither with the "mplsadm2" nor
with the "mpls" command (I prefer to use the latter). Note that I do
*not* want to use tunnel interfaces. Is there a neat way to get it done
without using IP/tunnel ifs?
My guesss was to set up appropriate NHLFE entries, like
mpls nhlfe add key 0x10 instructions nexthop eth0 push gen 1234
but all I get is "MPLS: invalid last op PUSH, len =3D 1(1)", so I'm not
sure what went wrong here....
Regards,
--=20
Birger T=F6dtmann
Technik der Rechnernetze, Institut f=FCr Experimentelle Mathematik und I=
nstitut=20
f=FCr Informatik und Wirtschaftsinformatik, Universit=E4t Duisburg-Essen=
, Campus Essen
email:bto...@ex... skype:birger.toedtmann pgp:0x6FB1=
66C9
|
|
From: James R. L. <jl...@mi...> - 2004-10-20 13:21:50
|
I haven't implemented all of the command line args in the new "mpls" program
yet. So for now you will have to use mplsadm2 to do label stacking:
I'm gonna add some more info to your drawing just so I can give you
a complete example:
<------------------17--------------------
<----1170------
10.0.1.0/24 10.0.2.0/30 10.0.2.4/30 10.0.2.8/30 10.0.3.0/24
---------0[R1]1--------0[R2]1--------0[R3]1--------0[R4]1---------
.1 .1 .2 .5 .6 .9 .10 .1
-----1160----->
-------------------16------------------->
R1
--
mplsadm2 -A -O 0 -o push:gen:16:set:eth1:10.0.2.2
(key 0x2)
ip route 10.0.3.0/24 via 10.0.2.2 spec_nh 0x8847 0x2 advmss 1452
mplsadm2 -A -I gen:17:0
mplsadm2 -L eth1:0
R2
--
mplsadm2 -A -O 0 -o push:gen:1160:set:eth1:10.0.2.6
(key 0x2)
mplsadm2 -A -O 0 -o push:gen:16:fwd:0x2
(key 0x3)
mplsadm2 -A -I gen:16:0 -B -O 0x3
mplsadm2 -L eth0:0
mplsadm2 -A -O 0 -o push:gen:17:set:eth0:10.0.2.1
(key 0x4)
mplsadm2 -A -I gen:1170:0 -i pop:peek
mplsadm2 -A -I gen:17:0 -B -O 0x4
mplsadm2 -L eth1:0
R3
--
mplsadm2 -A -O 0 -o push:gen:16:set:eth1:10.0.2.10
(key 0x2)
mplsadm2 -A -I gen:1160:0 -i pop:peek
mplsadm2 -A -I gen:16:0 -B -O 0x2
mplsadm2 -L eth0:0
mplsadm2 -A -O 0 -o push:gen:1170:set:eth0:10.0.2.5
(key 0x3)
mplsadm2 -A -O 0 -o push:gen:17:fwd:0x3
(key 0x4)
mplsadm2 -A -I gen:17:0 -B -O 0x4
mplsadm2 -L eth1:0
R4
--
mplsadm2 -A -I gen:16:0
mplsadm2 -L eth0:0
mplsadm2 -A -O 0 -o push:gen:17:set:eth0:10.0.2.9
(key 0x2)
ip route 10.0.1.0/24 via 10.0.2.9 spec_nh 0x8847 0x2 advmss 1452
Any questions? ;-)
On Wed, Oct 20, 2004 at 12:32:04PM +0200, Birger T?dtmann wrote:
>
>
> Hello,
>
> I have the following lab network:
>
> --[R1]--[R2]--[R3]--[R4]--
>
> I successfully set up manually an LSP from R1 to R4. However, I now
> want to set up additional label stacking between R2 and R3 manually(!)
> for demonstrative purposes ("look, this is how label stacking works").
>
> Unfortunately I was not able to do this neither with the "mplsadm2" nor
> with the "mpls" command (I prefer to use the latter). Note that I do
> *not* want to use tunnel interfaces. Is there a neat way to get it done
> without using IP/tunnel ifs?
>
> My guesss was to set up appropriate NHLFE entries, like
>
> mpls nhlfe add key 0x10 instructions nexthop eth0 push gen 1234
>
> but all I get is "MPLS: invalid last op PUSH, len = 1(1)", so I'm not
> sure what went wrong here....
>
>
> Regards,
> --
> Birger T?dtmann
> Technik der Rechnernetze, Institut f?r Experimentelle Mathematik und Institut
> f?r Informatik und Wirtschaftsinformatik, Universit?t Duisburg-Essen, Campus Essen
> email:bto...@ex... skype:birger.toedtmann pgp:0x6FB166C9
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
> Use IT products in your business? Tell us what you think of them. Give us
> Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
> http://productguide.itmanagersjournal.com/guidepromo.tmpl
> _______________________________________________
> mpls-linux-general mailing list
> mpl...@li...
> https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
--
James R. Leu
jl...@mi...
|
|
From: Birger <bto...@ex...> - 2004-10-20 13:35:13
|
Hello James,
Am Mittwoch, den 20.10.2004, 08:26 -0500 schrieb James R. Leu:
> I haven't implemented all of the command line args in the new "mpls" pr=
ogram
> yet. So for now you will have to use mplsadm2 to do label stacking:
[...]
Many thanks for the elaborate example.
>=20
> Any questions? ;-)
Sure ;-)
-> Why do I need IP *at all* on the intermediate nodes? =20
("maplsadm2 .... :eth1:A.B.C.D")
This bothered my as well for the simple example (without label
stacking). When thinking of smart LERs and dumb LSRs, IP-based FECs
should be needed at the borders only (e.g. R1 will have an entry towards
the IP adress of R4, the right border node, not towards R2). I know
many MPLS networks use IP in the core to find best paths, i.e. using
OSPF-TE and the like, but can we as well build MPLS-only, non-IP cores
with mpls-linux?=20
Regards,
--=20
Birger T=F6dtmann
Technik der Rechnernetze, Institut f=FCr Experimentelle Mathematik und I=
nstitut=20
f=FCr Informatik und Wirtschaftsinformatik, Universit=E4t Duisburg-Essen=
, Campus Essen
email:bto...@ex... skype:birger.toedtmann pgp:0x6FB1=
66C9
|
|
From: James R. L. <jl...@mi...> - 2004-10-20 13:55:15
|
On Wed, Oct 20, 2004 at 03:34:57PM +0200, Birger T?dtmann wrote:
>
> Hello James,
>
> Am Mittwoch, den 20.10.2004, 08:26 -0500 schrieb James R. Leu:
> > I haven't implemented all of the command line args in the new "mpls" program
> > yet. So for now you will have to use mplsadm2 to do label stacking:
> [...]
>
> Many thanks for the elaborate example.
>
> >
> > Any questions? ;-)
>
> Sure ;-)
>
> -> Why do I need IP *at all* on the intermediate nodes?
> ("maplsadm2 .... :eth1:A.B.C.D")
Your using ethernet interfaces right? Whenever you send a packet
over ethernet you need to know the MAC address of the peer on that ethernet
segment. So that means the nexthop definition in the NHLFE needs to
somehow tell MPLS what the MAC address of the nexthop LSR/LER is.
Would you rather type an IP address or a MAC address? :-) The IP address
is used to ARP for the MAC of the nexthop LSR/LER.
(BTW the nexthop definition in mplsadm2 is the 'set:eth0:ipv4:1.1.1.1'
instruction)
If you were using interfaces which do not need ARP (ie PPP interfaces) then
your nexthop defintion would be 'set:ppp0'.
> This bothered my as well for the simple example (without label
> stacking). When thinking of smart LERs and dumb LSRs, IP-based FECs
> should be needed at the borders only (e.g. R1 will have an entry towards
> the IP adress of R4, the right border node, not towards R2). I know
> many MPLS networks use IP in the core to find best paths, i.e. using
> OSPF-TE and the like, but can we as well build MPLS-only, non-IP cores
> with mpls-linux?
The nexthop definition is not a FEC. A FEC refers to the ultimate destination,
not an intermediate hop along the way.
If you wanted to type MAC addresses everywhere, then yes you could have
a MPLS core without using IP addresses. mpls-linux would need some minor
modifications for that to work.
>
>
> Regards,
> --
> Birger T?dtmann
> Technik der Rechnernetze, Institut f?r Experimentelle Mathematik und Institut
> f?r Informatik und Wirtschaftsinformatik, Universit?t Duisburg-Essen, Campus Essen
> email:bto...@ex... skype:birger.toedtmann pgp:0x6FB166C9
--
James R. Leu
jl...@mi...
|
|
From: Birger <bto...@ex...> - 2004-10-22 06:39:06
|
Am Mittwoch, den 20.10.2004, 08:26 -0500 schrieb James R. Leu: [...] > R2 > -- > mplsadm2 -A -O 0 -o push:gen:1160:set:eth1:10.0.2.6 > (key 0x2) > mplsadm2 -A -O 0 -o push:gen:16:fwd:0x2 > (key 0x3) This command above leads always to the error message "can't parse label" on our systems. Any idea what went wrong here? We tried varying keys and labels, to no avail. As a hack, we are using push:push to demonstrate label stacking, but that's of course not the elegant way to do it as the LSR "swaps" the incoming label which is not the common behaviour for tunnels.... Regards, --=20 Birger T=F6dtmann Technik der Rechnernetze, Institut f=FCr Experimentelle Mathematik und I= nstitut=20 f=FCr Informatik und Wirtschaftsinformatik, Universit=E4t Duisburg-Essen= , Campus Essen email:bto...@ex... skype:birger.toedtmann pgp:0x6FB1= 66C9 |
|
From: James R. L. <jl...@mi...> - 2004-10-22 12:56:28
|
On Fri, Oct 22, 2004 at 08:38:38AM +0200, Birger T?dtmann wrote:
> Am Mittwoch, den 20.10.2004, 08:26 -0500 schrieb James R. Leu:
> [...]
> > R2
> > --
> > mplsadm2 -A -O 0 -o push:gen:1160:set:eth1:10.0.2.6
> > (key 0x2)
> > mplsadm2 -A -O 0 -o push:gen:16:fwd:0x2
> > (key 0x3)
>
> This command above leads always to the error message "can't parse label"
> on our systems. Any idea what went wrong here? We tried varying keys
> and labels, to no avail.
Argh. Sorry I forgot a label type:
mplsadm2 -A -O 0 -o push:gen:16:fwd:key:0x2
^^^
> As a hack, we are using push:push to demonstrate label stacking, but
> that's of course not the elegant way to do it as the LSR "swaps" the
> incoming label which is not the common behaviour for tunnels....
I was going to mention that as an option, but you are correct that doing
it via a fwd is a more elegant technique.
> --
> Birger T?dtmann
> Technik der Rechnernetze, Institut f?r Experimentelle Mathematik und Institut
> f?r Informatik und Wirtschaftsinformatik, Universit?t Duisburg-Essen, Campus Essen
> email:bto...@ex... skype:birger.toedtmann pgp:0x6FB166C9
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
> Use IT products in your business? Tell us what you think of them. Give us
> Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
> http://productguide.itmanagersjournal.com/guidepromo.tmpl
> _______________________________________________
> mpls-linux-general mailing list
> mpl...@li...
> https://lists.sourceforge.net/lists/listinfo/mpls-linux-general
--
James R. Leu
jl...@mi...
|