RFC 3147
Generic Routing Encapsulation over CLNS Networks
Generic Routing Encapsulation over CLNS Networks π¦
okay bestie, this RFC is an Informational doc from July 2001 by Philip Christian (P. Christian) at Nortel Networks π . It's labelled RFC 3147 and it's a Network Working Group doc, so it's sharing ideas rather than laying down an official Internet standard πΈ. The header doesn't list anything it obsoletes or updates, so it's a standalone little gem β¨
Status of this Memo π
this memo is here to give info to the Internet community. it does NOT specify an Internet standard of any kind π distribution of this memo is unlimited, so share the tea π
Copyright Notice π
Copyright (C) The Internet Society (2001). All Rights Reserved.
Abstract π
okay so this doc proposes a way to carry an arbitrary protocol across a CLNS (Connectionless Network Service) network by using GRE (Generic Routing Encapsulation) π§ and the vibe is that you can then tunnel IPv4 or IPv6 over CLNS, which is lowkey iconic π₯
1. Introduction β¨
okay so first, the background. RFC 2784 Generic Routing Encapsulation (GRE) [1] gives us a standard way to carry one arbitrary network layer protocol over another arbitrary network layer protocol π
RFC 1702 Generic Routing Encapsulation over IPv4 networks [2] gives us a standard way to carry an arbitrary network layer protocol over IPv4 using GRE π¦
BUT here's the drama: there's no standard way to carry other network layer protocols over CLNS π which causes interoperability problems between different vendors' products, since they all have their own fixes for moving from CLNS networks to IP networks π this is a problem specifically in, but not limited to, the context of management networks for SONET and SDH network elements π
Big management networks exist to provide management communications for SONET and SDH network elements πΈ and the standards Bellcore GR-253-CORE [3] and ITU-T G.784 [4] say these networks are based on CLNS π§
Lots of vendors already sell SONET and SDH products that are managed by IP instead of CLNS, and the whole industry is expecting a general migration from CLNS towards IP π₯
Any migration strategy from CLNS to IP should make room for CLNS managed and IP managed network elements to co-exist in the same network π«Ά
A good migration strategy should also plan for managing existing CLNS managed network elements that get cut off by a brand new IP network π± one way to handle that is tunnelling CLNP PDUs over IP using the existing GRE standard RFC 2784 [1] and the informational RFC 1702 [2]. networks have already been deployed that use this method, so it's not just theory π
The migration strategy should ALSO plan for managing new IP managed network elements that get installed on the far side of an existing CLNS managed network π that situation needs a way to tunnel IP over CLNS, and that's the gap this doc is filling π¦
2. GRE over CLNS advantages π
okay so using GRE to tunnel IP over CLNS comes with some perks β¨
In the absence of a standard for tunnelling IP over CLNS, GRE as specified in RFC 2784 [1] is the most applicable standard that exists. like, it's the best option we've got right now π
IP is also moving from IPv4 to IPv6 at the same time CLNS is moving to IP πΈ GRE defines a way to tunnel ANY protocol that has an Ethernet Protocol Type π so if we define a way for CLNS to carry GRE, then CLNS can carry any other protocol that has an Ethernet Protocol Type defined in RFC 1700 [5] π§ which means GRE over CLNS can tunnel BOTH IPv4 and IPv6 π₯ main character energy, honestly π
GRE is already commonly used to tunnel CLNP PDUs over IP π so using GRE to tunnel IP over CLNS gives you one common approach to tunnelling, which may simplify software in the network elements that start and end the tunnels π«Ά
the only downside of using GRE is the extra minimum of four bytes that go between the CLNP header and the IP payload packet π but ngl, CLNP headers are already pretty chunky, so this won't make a significant difference to the performance of any network that has IP over CLNP PDUs on it π
3. Transporting GRE packets over CLNS. π¦
the suggestion is that GRE should be transported over CLNS at the lowest layer possible π which is as a transport layer protocol over the network layer πΈ this can be done by putting the entire GRE packet inside a CLNP Data Type PDU (DT PDU) as the data payload π
the GRE packet is a GRE packet as defined in RFC 2784 [1], which means GRE header plus payload packet π§
Data payload is the part of a Data PDU that is described as "Data" in the structure of a Data PDU in ISO/IEC 8473-1 [6] π₯
for convenience, here's the structure of a Data PDU reproduced from ISO/IEC 8473-1 [6] π
Octet
----------------------------------------
| Network Layer Protocol Identifier | 1
----------------------------------------
| Length Indicator | 2
----------------------------------------
| Version/Protocol Id Extension | 3
----------------------------------------
| Lifetime | 4
----------------------------------------
| SP | MS | E/R | Type | 5
----------------------------------------
| Segment Length | 6,7
----------------------------------------
| Checksum | 8,9
----------------------------------------
| Destination Address Length Indicator | 10
----------------------------------------
| | 11
| Destination Address |
| | m-1
----------------------------------------
| Source Address Length Indicator | m
----------------------------------------
| | m+1
| Source Address |
| | n-1
----------------------------------------
| Data Unit Identifier | n,n+1
----------------------------------------
| Segment Offset | n+2,n+3
----------------------------------------
| Total Length | n+4,n+5
----------------------------------------
| | n+6
| Options |
| | p
----------------------------------------
| | p+1
| Data ( GRE packet ) |
| | z
----------------------------------------
4. NSAP selector (N-SEL) value. π
okay so transporting GRE packets is a brand new type of Network Service (NS) user π¦ different NS users get told apart by using different NSAP selector bytes, also known as N-SEL bytes π
this is kinda like how the IP Protocol Type works in IP packets πΈ
it's not strictly necessary for every vendor to use the same N-SEL values π§ BUT they must use the same N-SEL value if they want one vendor's CLNS device or network element to start a GRE tunnel that ends up on a different vendor's CLNS device π₯ so that's the rule π
N-SEL values (other than zero) aren't defined in the CLNS/CLNP standards π some are defined when CLNS is used in SONET networks by Bellcore GR-253-CORE [3], and others are just in common use π«Ά
as the IP protocol number for GRE is 47, as defined in RFC 1702 [2], and as 47 isn't commonly used as an N-SEL value, it's suggested that 47 (decimal) should be used as an N-SEL value π this tells the CLNS stack that the Data portion of the Data Type PDU contains a GRE packet β¨
the N-SEL byte should be set to 47 (decimal) in BOTH the source address and the destination address of the CLNP PDU π
the N-SEL value of 47 should only indicate that the payload is GRE π the device or network element that sends the PDU should use the GRE header to indicate what protocol (for example IPv4 or IPv6) is encapsulated within the GRE packet, in line with RFC 2784 [1] π§ and the device or network element that receives the PDU should then look at the GRE header to figure out what protocol is inside the GRE packet, also in line with RFC 2784 [1] πΈ
π part 1 ends here bestie, part 2 is coming with sections 5 through 10 (SP flag, PMTU, security, references, acknowledgements, and the author's address) π
11. Full Copyright Statement β¨
Copyright (C) The Internet Society (2001). All Rights Reserved. π
Okay so bestie, this is the legal part, but it's actually pretty chill π . Anyone can copy this document and share it with others. You can also make derivative works that comment on or explain it, or that help people implement it, and you can publish and distribute those too, in whole or in part, with no restrictions at all π¦. The one catch is that the copyright notice and this paragraph have to stay on every copy and every derivative work π«Ά.
The document itself, though, can't be modified in any way. You can't remove the copyright notice or the references to the Internet Society or other Internet organizations π. The exceptions are when you need it for developing Internet standards, where the copyright procedures in the Internet Standards process must be followed, or when you need to translate it into a language other than English π.
The permissions above are perpetual, which means they will never be revoked by the Internet Society or its successors or assigns π. They're forever, no cap β¨.
This document and the information in it are provided "AS IS", and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. π
Acknowledgement πΈ
Funding for the RFC Editor function is currently provided by the Internet Society π. Thank you to them for keeping the lights on for all of these RFCs π«Άβ¨.
π¦ where this page comes from
- ietf: rfc3147 2001-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms