RFC 3572
Internet Protocol Version 6 over MAPOS (Multiple Access Protocol Over SONET/SDH)
RFC 3572: Internet Protocol Version 6 over MAPOS (Multiple Access Protocol Over SONET/SDH) β¨
Okay bestie, let's get into RFC 3572 π Title block tea: it's from the Network Working Group and dated July 2003. The authors are T. Ogura and M. Maruyama from NTT Network Innovation Labs, plus T. Yoshida from Werk Mikro Systems. It's Informational πΈ, and the title block doesn't list any RFCs it obsoletes or updates, so it doesn't touch anything else. Its whole vibe is IPv6 riding on MAPOS π¦
Part 1 of 3. More coming, so stay tuned π
Status of This Memo π
Okay so this memo is information for the Internet community. It is not an Internet standard of any kind, and distribution is unlimited π
Copyright Notice π
Copyright (C) The Internet Society (2003). All Rights Reserved.
IESG Note π
Real talk, this one's important. This memo documents a way of carrying IPv6 packets over MAPOS networks. It is not the product of an IETF working group, and it's not a standards track document. It hasn't necessarily had the big, in-depth community review that standards track documents get, so read it with that in mind π«Ά
Abstract β¨
MAPOS (Multiple Access Protocol over SONET/SDH) is a high-speed link-layer protocol that gives you multiple access capability over a Synchronous Optical NETwork/Synchronous Digital Hierarchy (SONET/SDH). It's giving "many devices, one fast link" π₯
This doc specifies the frame format for wrapping an IPv6 datagram inside a MAPOS frame. It also covers how to form IPv6 interface identifiers, how to detect duplicate addresses, and the format of the Source/Target Link-layer Addresses option field used in IPv6 Neighbor Discovery messages π
Table of Contents π
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Frame Format for Encapsulating IPv6 Datagrams. . . . . . . . . 3
2.1. Frame Format . . . . . . . . . . . . . . . . . . . . . . 3
2.2. Maximum Transmission Unit (MTU). . . . . . . . . . . . . 3
2.3. Destination Address Mapping. . . . . . . . . . . . . . . 4
2.3.1. Unicast. . . . . . . . . . . . . . . . . . . . . 4
2.3.2. Multicast . . . . . . . . . . . . . . . . . . . . 4
3. Interface Identifier . . . . . . . . . . . . . . . . . . . . . 6
4. Duplicate Address Detection. . . . . . . . . . . . . . . . . . 8
5. Source/Target Link-layer Address Option. . . . . . . . . . . . 9
6. Security Considerations. . . . . . . . . . . . . . . . . . . . 10
6.1. Issues concerning Link-layer Addresses . . . . . . . . . 10
6.1.1. Protection against fraudulent reception
of traffic . . . . . . . . . . . . . . . . . . . 10
6.1.2. Protection against improper traffic. . . . . . . 11
6.2. Uniqueness of Interface Identifiers. . . . . . . . . . . 11
7. References. . . . . . . . . . . . . . . . . . . . . . . . . 12
8. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 13
9. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 14
1. Introduction π§
MAPOS [1][2] is a high-speed link-layer protocol that gives multiple access capability over SONET/SDH. Its frame format is based on the HDLC-like (High Level Data Link Control) framing [3] used for PPP. There's a component called a "Frame Switch" [1] that lets multiple nodes (hosts and routers) connect in a star topology to form a LAN. Using long-haul SONET/SDH links, the nodes on such a "SONET-LAN" can span a wide geographical area π
This document specifies the frame format for encapsulating an Internet Protocol version 6 (IPv6) [4] datagram in a MAPOS frame. It also covers the method of forming IPv6 interface identifiers, the method of detecting duplicate addresses, and the format of the Source/Target Link-layer Addresses option field used in Neighbor Discovery messages such as Router Solicitation, Router Advertisement, Neighbor Solicitation, Neighbor Advertisement, and Redirect messages π
In the rest of this document, the term "MAPOS" is used unless the distinction between MAPOS version 1 [1] and MAPOS 16 [2] is needed π¦
2. Frame Format for Encapsulating IPv6 Datagrams πΈ
2.1. Frame Format
MAPOS uses the same HDLC-like framing as PPP-over-SONET, described in [3]. A MAPOS frame begins and ends with the flag sequence 01111110 (0x7E), and its frame header has address, control, and protocol fields. The address field holds a destination HDLC address. In MAPOS 16, the address field stretches to 16 bits, and the control field of MAPOS version 1 gets left out. The frame check sequence (FCS) field is 16 bits long by default, but a 32-bit FCS MAY be used optionally. The full MAPOS frame format details live in [1][2] β¨
An IPv6 datagram gets encapsulated in the MAPOS frame. When you're encapsulating an IPv6 datagram, the protocol field MUST contain the value 0x0057 (hexadecimal) π The IPv6 datagram sits in the information field, right after the protocol field. So that field has the IPv6 header followed straight by the payload. Figure 1 shows the layout, and the fields go out from left to right π
+----------+----------+----------+----------+
| | | Control/ | Protocol |
| Flag | Address | Address | 16 bits |
| 01111110 | 8 bits | 8 bits | (0x0057) |
+----------+----------+----------+----------+
+-------------+------------+----------+-----------
| | | | Inter-frame
| IPv6 header | FCS | Flag | fill or next
| and payload | 16/32 bits | 01111110 | address
+-------------+------------+----------+------------
Figure 1. Frame format.
2.2. Maximum Transmission Unit (MTU)
The information field of the MAPOS frame MAY vary in length, but it SHALL NOT exceed 65,280 (64K - 256) octets [1][2]. The default maximum transmission unit (MTU) is 65,280 octets π
Here's the plot twist: the MTU can get smaller. That happens through a Router Advertisement [5] carrying an MTU option that sets a smaller MTU, or through manual configuration on each node. If a Router Advertisement arriving on a MAPOS interface has an MTU option bigger than 65,280, or bigger than a manually configured value, that MTU option MAY be logged for system management, but it MUST be otherwise ignored π
2.3. Destination Address Mapping π
This section specifies how an IPv6 destination address gets mapped to the address field in the MAPOS frame header β¨
2.3.1. Unicast
For unicasting, the address field of a MAPOS frame holds the HDLC address that was assigned via NSP (Node Switch Protocol) [6] to the MAPOS interface that owns the IPv6 unicast destination address. To figure out which destination HDLC address matches an IPv6 unicast destination address, the sender uses Link-layer Address Resolution as described in [5] π¦
2.3.2. Multicast
Address resolution is never performed on IPv6 multicast addresses π ββοΈ Instead, an IPv6 multicast destination address gets mapped to the address field in the MAPOS frame header as described below, for MAPOS version 1 and MAPOS 16.
MAPOS version 1:
The address field of the MAPOS version 1 frame header holds an 8-bit-wide destination HDLC address [1]. The least significant bit (LSB) of the field MUST always be 1, which marks the end of the field. The most significant bit (MSB) tells you whether the frame is unicast or multicast π₯
For an IPv6 multicast, the MSB of the address field is 1, which says the frame is multicast. As covered above, the LSB of the address field is 1. The other six bits of the address field MUST contain the lowest-order six bits of the IPv6 multicast address. Figure 2 shows this, where D(1) through D(6) stand for the lowest-order six bits of the IPv6 multicast address. There are exceptions when those six bits are all zeros or all ones. In those cases, they SHOULD be changed to the bit sequence 111110, so the address field SHOULD be 0xFD (hexadecimal) π
MSB LSB
+-+-+-+-+-+-+-+-+
| | | |
|1|D(6) - D(1)|1|
| | | |
+-+-+-+-+-+-+-+-+
^ ^
| |
| EA bit (always 1)
1 (multicast)
Figure 2. Address mapping in multicasting (MAPOS version 1).
MAPOS 16:
The address field of the MAPOS 16 frame header holds the 16-bit-wide destination HDLC address [2]. The LSB of the first octet MUST always be 0 to show the field continues, and the LSB of the second octet MUST always be 1 to show the field ends. The MSB of the first octet tells you whether the frame is unicast or multicast πΈ
For an IPv6 multicast, the MSB of the first octet is 1, which says the frame is multicast. As covered above, the LSB of the first octet is 0 and the LSB of the second octet is 1. The other 13 bits of the address field MUST contain the lowest-order 13 bits of the IPv6 multicast address. Figure 3 shows this, where D(1) through D(13) stand for the lowest-order 13 bits of the IPv6 multicast address. If those 13 bits are all zeros or all ones, that's an exception, and the address field SHOULD be 0xFEFD (hexadecimal) π§
MSB LSB
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | | | |
|1|D(13)-D(8) |0| D(7)-D(1) |1|
| | | | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
^ ^ ^
| | |
| | +-- EA bit (always 1)
| +-- EA bit (always 0)
1 (multicast)
Figure 3. Address mapping in multicasting (MAPOS 16).
3. Interface Identifier β¨
Okay so this section is all about how to make the interface identifier [7] π, which is basically the bit of an IPv6 address that says "this is me on this link." It's giving very important energy, bestie π
A node with one or more MAPOS interfaces MUST create one or more EUI-64 [8] based interface identifiers. Here's the tea: it should be noted that deriving interface identifiers from the HDLC addresses of MAPOS interfaces is a total no-go, for these reasons π ββοΈ
- When a node is connected to a frame switch, the frame switch gives the node's interface an HDLC address via NSP [6]. (From here on, this doc calls it the "MAPOS address" πΈ) The value depends on the combination of the frame switch's switch number and the port number the interface is plugged into. The switch number is REQUIRED to be unique only within a MAPOS multi-switch environment [6]. So, lowkey, you can have frame switches with the same switch number in different MAPOS multi-switch environments that are separated by IP routers π That means a MAPOS address is only guaranteed unique inside one multi-switch environment.
Also, if the link between the node's interface and the frame switch port is hot-swappable, the port number or the frame switch can change, and the MAPOS address assigned to the interface can change too, all without a system re-start π
So in short, a MAPOS address isn't globally unique, it's not a built-in address, and it can change without a re-start. If you derived an interface identifier from a MAPOS address, it could also change without a re-start, and that doesn't follow the recommendation in [7]. Not it π
- On a point-to-point connection between two nodes, the same MAPOS address gets assigned to each interface. For MAPOS version 1, the assigned address is 0x03 [6], and for MAPOS 16, it's 0x0003 [2]. Achieving link-locality of the interface identifier in a strict way while using the same Link-layer address is not easy π₯²
For the reasons above, nodes with MAPOS interfaces MUST NOT derive their interface identifiers from their MAPOS addresses. β¨
Here are the ways to form an interface identifier, in order of preference π These are almost the same as the methods described in [9], except that a MAPOS address MUST NOT be used as a source of uniqueness when an IEEE global identifier is unavailable.
1) If an IEEE global identifier (EUI-48 or EUI-64) is available anywhere on the node, it SHOULD be used to build the interface identifier, because it's unique π When you pull an IEEE global identifier from another device on the node, care SHOULD be taken to make sure the extracted identifier is in canonical ordering [10].
The only transformation from an EUI-64 identifier is to flip the "u" bit (the universal/local bit, as IEEE EUI-64 calls it) π For a globally unique EUI-64 identifier like the one in Figure 4:
MSB LSB
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|cccccccceeeeeeee|eeeeeeeeeeeeeeee|eeeeeeeeeeeeeeee|
+----------------+----------------+----------------+----------------+
Figure 4. Globally unique EUI-64 identifier.
In that diagram, "c" is the bits of the assigned company_id, "0" is the universal/local bit set to indicate global scope, "g" is the group/individual bit, and "e" is the bits of the extension identifier. The IPv6 interface identifier then looks like Figure 5. The only change is inverting the universal/local bit πͺ
MSB LSB
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccceeeeeeee|eeeeeeeeeeeeeeee|eeeeeeeeeeeeeeee|
+----------------+----------------+----------------+----------------+
Figure 5. IPv6 interface identifier derived from a globally unique
EUI-64 identifier.
For an EUI-48 identifier, you first convert it to EUI-64 format by inserting two octets, with hexadecimal values 0xFF and 0xFE, into the middle of the 48-bit MAC (between the company_id and extension-identifier parts of the EUI-48 value) π§
For a globally unique 48-bit EUI-48 identifier like the one in Figure 6:
MSB LSB
|0 1|1 3|3 4|
|0 5|6 1|2 7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|cccccccceeeeeeee|eeeeeeeeeeeeeeee|
+----------------+----------------+----------------+
Figure 6. Globally unique EUI-48 identifier.
Here "c", "0", "g", and "e" mean the same things as before. The IPv6 interface identifier then looks like Figure 7 π
MSB LSB
|0 1|1 3|3 4|4 6|
|0 5|6 1|2 7|8 3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110eeeeeeee|eeeeeeeeeeeeeeee|
+----------------+----------------+----------------+----------------+
Figure 7. IPv6 interface identifier derived from a globally unique
EUI-48 identifier.
2) If an IEEE global identifier isn't available, a different source of uniqueness SHOULD be used. Suggested sources include things like machine serial numbers, etc. MAPOS addresses MUST NOT be used. In this case, the "u" bit of the interface identifier MUST be set to 0. π ββοΈ
3) If you can't find a good source of uniqueness, it is RECOMMENDED that you generate a random number π² In this case, the "u" bit of the interface identifier MUST be set to 0.
4. Duplicate Address Detection
Right after system start-up, the MAPOS address hasn't been assigned to a MAPOS interface yet π₯Ί The assignment isn't finished until the adjacent frame switch (or the adjacent node, on a point-to-point connection between two nodes) has delivered the MAPOS address to the interface via NSP [6]. Until that happens, no data transmission can happen on the interface. So a node MUST conduct duplicate address detection [11] on all unicast addresses of its MAPOS interfaces once NSP has finished the MAPOS address assignment. Main character energy for real π
5. Source/Target Link-layer Address Option
As specified in [5], the Source/Target Link-layer Address option is one of the options that can ride along in Neighbor Discovery messages π In [5], the length of this option's field is measured in units of 8 octets. But for MAPOS, the address field is 2 octets (MAPOS 16) or 1 octet (MAPOS version 1) [1][2]. So if you embed the exact address field in the Link-layer Address field, the total option field length is 4 octets (MAPOS 16) or 3 octets (MAPOS version 1). Both of those are shorter than 8 octets, which is literally too short π
For that reason, with MAPOS, the Link-layer Address field of the Source/Target Link-layer Address option MUST be extended with zeros so the option field length reaches 8 octets, and the Length field MUST be set to 1, as shown below π§Έ
MAPOS version 1:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | All 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| All 0 | Address | All 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
Type: 1 for Source link-layer address.
2 for Target link-layer address.
Length: 1 (in units of 8 octets).
Address: MAPOS version 1 8-bit address.
Figure 8. Format of the Source/Target Link-layer Address option
field (MAPOS version 1).
MAPOS 16:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | All 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link-layer Address | All 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Fields:
Type: 1 for Source link-layer address.
2 for Target link-layer address.
Length: 1 (in units of 8 octets).
Link-layer Address: MAPOS 16 16-bit address.
Figure 9. Format of the Source/Target Link-layer Address option
field (MAPOS 16).
6. Security Considerations
Okay, security time, and this one's serious π¨ In MAPOS, a link-layer address (the MAPOS address) is assigned to a network interface by a frame switch via NSP. That's unlike other link-layer protocols, like Ethernet, which use a built-in address on the network interface π³ The security considerations that come from this are described in 6.1 and 6.2. And because MAPOS has no link-layer security, the same security considerations as other link-layer protocols would be applied to the other points. Be careful out there, bestie π«Ά
6.1. Issues concerning Link-layer Addresses
6.1.1. Protection against fraudulent reception of traffic β¨
okay bestie, so in MAPOS the address isn't just random π the frame switch hands it out, and it's made of the switch number plus the port number the interface is plugged into π (if two nodes are just connected point-to-point, their interfaces get fixed addresses instead). this is giving organized and it's lowkey so good for security π
- the MAPOS address literally tells you where the interface lives in the network π so the destination address of a frame IS the exact location the frame should end up at. so if you only deliver frames to addresses of nodes that went through proper admin setup, then nobody else can catch those frames unless they're plugged into the same switch ports as the legit nodes. that makes sneaky reception of traffic really hard π
- now if the MAPOS addresses aren't administered like that, a sketchy node could hijack traffic by faking its IPv6 address in a reply to an IPv6 Neighbor Discovery message π¬ but here's the catch: the node still has to advertise the real MAPOS address of its interface in that reply, otherwise it can't receive the next frames. so the true address gets exposed and it becomes easy to pinpoint where the host is π―
6.1.2. Protection against improper traffic π«
ngl this one is a little tricky π₯Ί a MAPOS frame doesn't have a field for the sender's address. so if a node sends one-way improper traffic, whether on purpose or by accident, there's no way to get the sender's MAPOS address from the traffic itself. and that makes it hard to figure out which node did it, because source IP addresses can be forged π
the way to make this easier is to keep the MAPOS multi-switch environment a reasonable size π§© [6]. a common move is to split it up with IP routers, which makes it way easier to spot the node sending improper traffic inside the multi-switch environment π΅οΈββοΈ and to protect that environment from improper traffic coming from outside, the boundary IP routers need to block it with packet filtering based on IP layer information π‘οΈ
6.2. Uniqueness of Interface Identifiers πͺͺ
global uniqueness of a MAPOS address is not guaranteed π and it's not a built-in address either. it can be changed without a system restart as long as the link between the node's interface and the frame switch port is hot-swappable π so an interface identifier must not be derived from a MAPOS address. that way it doesn't change without a system restart (very important, periodt π )
so in IP Version 6 over MAPOS, having other interfaces that use IEEE global identifier based addresses is super important for making interface identifiers π but a lot of nodes won't have any of those, so they need a different source of uniqueness. that means you really need to be careful to avoid duplicate interface identifiers π and right now there's no protection against duplication, whether it happens by accident or by forgery π
7. References π
- [1] Murakami, K. and M. Maruyama, "MAPOS - Multiple Access protocol over SONET/SDH Version 1", RFC 2171, June 1997.
- [2] Murakami, K. and M. Maruyama, "MAPOS 16 - Multiple Access Protocol over SONET/SDH with 16 Bit Addressing", RFC 2175, June 1997.
- [3] Simpson, W., Ed., "PPP in HDLC-like Framing", STD 51, RFC 1662, July 1994.
- [4] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.
- [5] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)", RFC 2461, December 1998.
- [6] Murakami, K. and M. Maruyama, "A MAPOS version 1 Extension - Node Switch Protocol", RFC 2173, June 1997.
- [7] Hinden, R. and S. Deering, "Internet Protocol Version 6 (IPv6) Addressing Architecture", RFC 3513, April 2003.
- [8] IEEE, "Guidelines of 64-bit Global Identifier (EUI-64) Registration Authority",
http://standards.ieee.org/db/oui/tutorials/EUI64.html, March 1997. - [9] Haskin, D. and E. Allen, "IP Version 6 over PPP", RFC 2472, December 1998.
- [10] Narten, T. and C. Burton, "A Caution On The Canonical Ordering Of Link-Layer Addresses", RFC 2469, December 1998.
- [11] Thompson, S. and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC 2462, December 1998.
8. Authors' Addresses ποΈ
Tsuyoshi Ogura
NTT Network Innovation Laboratories
3-9-11, Midori-cho
Musashino-shi
Tokyo 180-8585, Japan
EMail: ogura@core.ecl.net
Mitsuru Maruyama
NTT Network Innovation Laboratories
3-9-11, Midori-cho
Musashino-shi
Tokyo 180-8585, Japan
EMail: mitsuru@core.ecl.net
Toshiaki Yoshida
Werk Mikro Systems
250-1, Mikajiri
Kumagaya
Saitama 360-0843, Japan
EMail: yoshida@peta.arch.ecl.net
9. Full Copyright Statement βοΈ
the legal bit, kept word for word so nothing gets lost π«Ά
Copyright (C) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assignees.
This document and the information contained herein is provided on an
"AS IS" basis 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 π
π¦ where this page comes from
- ietf: rfc3572 2003-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms