RFC 3069

VLAN Aggregation for Efficient IP Address Allocation

πŸ“… published February 2001, from ietf

VLAN Aggregation for Efficient IP Address Allocation πŸ¦‹

Okay bestie, let's talk about RFC 3069 πŸ’– It was published in February 2001 as part of the Network Working Group, and it's an Informational doc, so it's sharing ideas, not setting a standard 🧚 It's by D. McPherson (Amber Networks, Inc.) and B. Dykes (Onesecure, Inc.) ✨ The title block doesn't list any obsoletes or updates, so it isn't replacing or patching anything else 🌸

Status of This Memo ✨

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited πŸ“£

Copyright (C) The Internet Society (2001). All Rights Reserved.

Abstract πŸ’œ

Okay so this doc introduces VLAN aggregation for IPv4 address allocation 🫢 The idea is that hosts living on the same physical switched infrastructure, but in separate virtual broadcast domains, can get addresses from the same IPv4 subnet and share one default gateway IP address. That means you don't need a dedicated subnet for every Virtual Local Area Network (LAN) or Metropolitan Area Network (MAN) πŸ’…

Doing this seriously cuts down how many IPv4 addresses get eaten up in VLANs and MANs. It may also make managing IPv4 addresses on the network easier 🌈

1. Introduction ✨

Bestie, the VLAN [802.1Q] aggregation technique here lets hosts that sit on the same physical switched infrastructure, but in separate virtual broadcast domains, get addresses from the same IPv4 subnet and share a common default gateway IPv4 address πŸ’–

This gives you a bunch of perks over the traditional IPv4 addressing setups people use in big switched LANs today 😭 The biggest one is saving IPv4 address space, and you can see it in Figure 1 πŸ”₯

Figure 1:

 +------+    +------+    +------+    +------+    +------+
 |      |    |      |    |      |    |      |    |      |
 | A.1  |    | A.2  |    | B.1  |    | C.1  |    | B.2  |
 |      |    |      |    |      |    |      |    |      |
 +------+    +------+    +------+    +------+    +------+
     \          |           |           |            /
       \        |           |           |          /
         \ +-----------------------------------+ /
           |                                   |
           |          Ethernet Switch(es)      |
           |                                   |
           +-----------------------------------+
                            |
                            |
                       +--------+
                       |        |
                       | Router |
                       |        |
                       +--------+

So in Figure 1, hosts A.1 and A.2 belong to customer A, in VLAN A πŸ’œ Hosts B.1 and B.2 belong to customer B, in VLAN B 🌸 And Host C.1 is customer C's, living in its own virtual LAN, VLAN C πŸ¦‹

Traditionally, every customer got their own IP subnet, sized based on their initial address needs and their projected future use πŸ“ A setup like the one in Table 1 is pretty typical πŸ‘‘

Table 1:

                             Gateway     Usable   Customer
   Customer   IP Subnet       Address     Hosts    Hosts
   ========   ============    =======     ======   ========
   A          1.1.1.0/28      1.1.1.1     14       13
   B          1.1.1.16/29     1.1.1.17    6        5
   C          1.1.1.24/30     1.1.1.25    2        1

Customer A starts with 2 hosts but projects growing to 10 hosts πŸ’… So they get the IP subnet 1.1.1.0/28, which gives 16 IP addresses total 🫢 The first address, 1.1.1.0, is the subnetwork number. The last one, 1.1.1.15, is the directed broadcast address. The first usable address, 1.1.1.1, goes to the router as the default gateway IP address for the subnet πŸŽ€ That leaves customer A with 13 addresses, even though they only needed 10 😭

Customer B also starts with 2 hosts and projects growing to 5 hosts 🧚 They get 1.1.1.16/29, which gives 8 IP addresses. The subnetwork number is 1.1.1.16, and the directed broadcast address is 1.1.1.23. The first usable address, 1.1.1.17, is the router's default gateway IP address for the subnet. That leaves customer B with 5 addresses 🌈

Customer C starts with 1 host and has no plans for more πŸ’€ They get 1.1.1.24/30, which gives 4 IP addresses. The subnetwork number is 1.1.1.24, and the directed broadcast address is 1.1.1.27. The first usable address, 1.1.1.25, goes to the router as the default gateway IP address. That leaves customer C with 1 address ✨

Add up what all three customers actually need and you get 16 πŸ’– But the most optimal allocation under this scheme still takes 28 IP addresses 😭

And if customer A only grows to use 3 of their available addresses, the leftover ones can't be used for other customers πŸ™ˆ

Now say customer C decides they need one more host, which means one more IP address πŸ“ All the addresses in 1.1.1.24/30 are used up, and the space right after it has already been given to other customers. So a new subnet is required πŸ’… Ideally, customer C would get a /29 and renumber host C.1 into the new subnet. But the customer isn't into renumbering, so they get another IP subnet instead, this time maybe a /29, which gives them two extra addresses for later 🫢

Basically, the addresses eaten up by the subnetwork number, the directed broadcast address, and a unique gateway address for each subnet add up to a LOT 😭 And the constraints of this addressing setup really cut down on flexibility πŸ₯€

2. Discussion 🌸

Here's the glow-up πŸ’… If we bring in the idea of sub-VLANs and super-VLANs on the routed side of the switched environment, there's a way better way to do IP addressing πŸ”₯

What basically happens is each sub-VLAN (a customer) stays in its own broadcast domain πŸ’œ One or more sub-VLANs belong to a super-VLAN and use the super-VLAN's default gateway IP address πŸ¦‹ Hosts in the sub-VLANs get numbered out of the IP subnets tied to the super-VLAN, and their IP subnet masking info matches the super-VLAN subnet 🧚

If you want, the super-VLAN router can do things kind of like Proxy ARP, so hosts in different sub-VLANs can still talk to each other 🫢

This model is way more efficient for address allocation πŸ‘‘ It also gives network operators a way to set up standard default gateway address assignments πŸŽ€

Let's look at Figure 1 again, this time with the super-VLAN and sub-VLAN model. Table 2 shows the new addressing πŸ“

Table 2:

                             Gateway     Usable   Customer
   Customer   IP Subnet       Address     Hosts    Hosts
   ========   ============    =======     ======   ========
   A          1.1.1.0/24      1.1.1.1     10       .2-.11
   B          1.1.1.0/24      1.1.1.1     5        .12-.16
   C          1.1.1.0/24      1.1.1.1     1        .17

Customer A starts with 2 hosts and projects up to 10 🌈 So they get the IP address range 1.1.1.2 - 1.1.1.11. Their gateway address is 1.1.1.1, and the subnet is 1.1.1.0/24 πŸ’–

Customer B starts with 2 hosts and projects up to 5 πŸ¦‹ They get the IP address range 1.1.1.12 - 1.1.1.16. Their gateway address is 1.1.1.1, and the subnet is 1.1.1.0/24 ✨

Customer C starts with 1 host and has no plans for more 🧚 They get the IP address 1.1.1.17. Their gateway address is 1.1.1.1, and the subnet is 1.1.1.0/24 🫢

Add up the requirements for all three customers and you get 16 πŸ’… So only 16 addresses get allocated inside the subnet. Those 16, plus the global default gateway address 1.1.1.1, the subnetwork number 1.1.1.0, and the directed broadcast 1.1.1.255, come to 19 addresses used πŸ”₯ That leaves 236 additional usable host addresses in the IP subnet πŸ‘‘

And if customer A only grows to use 3 of their available addresses, the extra ones can go to other customers πŸ’œ

Say customer C needs one more host and so one more IP address. They just get the next available IP address in the subnet, and their default gateway stays the same 🌸

The benefits of this model are super obvious, especially in big LANs or MANs 🌈

3. Use of Directed Broadcasts πŸ™ˆ

This specification doesn't support directed broadcasts at all 🚫 Specifically, the <net, subnet, -1> directed broadcast address can only apply to one of the Layer 2 broadcast domains πŸ’€

Okay so directed broadcast is kind of frowned upon on the Internet these days, but there are still a bunch of applications, mostly in enterprise land, that keep using them 😭 So you need to be careful and think about what happens when you run those applications alongside the addressing model in this spec 🫢

4. Multicast Considerations 🧚

The assumption here is that the Layer 2 multicast domain is the same as the Layer 2 broadcast domain (in other words, a VLAN) πŸ¦‹ That means that for an IP multicast packet to reach every potential receiver in the IP subnet, the multicast router(s) attached to the IP subnet need something like IP host routes for the sender so the Reverse Path Forwarding check works πŸ”₯

5. Deployment Considerations 🌈

Extreme Networks has a working implementation of this model πŸŽ‰ It's been deployed in service provider data center environments for over a year now πŸ’– Other vendors are rumored to be building similar features πŸ‘€

6. Security Considerations πŸ”₯

Bestie, this is the serious part 😭 One big issue with this model is the vulnerabilities that show up when addresses can be allocated arbitrarily across different broadcast domains 🚨 The advice is to make address space ranges sticky 🫢 That means that once an address or range of addresses is allocated to a sub-VLAN, any IP or ARP packets received on that sub-VLAN with a source IP address that isn't allocated to it should be discarded. It might also trigger a logging message or some other administrative event πŸ’…

The implementation details are intentionally left out, because all the functions in this document should stay local to the super-VLAN router 🏰 So no interoperability issues with existing protocols should happen πŸ¦‹

7. Acknowledgements πŸ’œ

Thanks to Mike Hollyman and Erik Nordmark for their feedback 🫢

8. References πŸ“š

[802.1Q] IEEE 802.1Q, "Virtual LANs".

9. Authors' Addresses ✨

Okay bestie, time for the people behind the RFC! πŸ¦‹ Danny McPherson was at Amber Networks, Inc. in Fremont, CA, 48664 Milmont Drive, 94538 🌸. You can reach them at danny@ambernetworks.com πŸ’Œ.

Then there's Barry Dykes from OneSecure, Inc., over at 2000 S. Colorado Blvd Suite 2-1100 in Denver, CO. 80222 πŸ”οΈ. Their email is bdykes@onesecure.com πŸ’œ.

Copyright (C) The Internet Society (2001). All Rights Reserved. πŸŽ€

Okay so the vibe here is: you can copy this document and share it with your friends 🫢, and you can make derivative works that comment on it, explain it, or help people implement it, and publish those too πŸ”₯. Just keep the copyright notice and this paragraph on everything you make, periodt. ✨

But the document itself? Not modified in any way πŸ™…β€β™€οΈ. You can't remove the copyright notice or the references to the Internet Society or other Internet organizations, unless it's for developing Internet standards, and then the Internet Standards process copyright procedures must be followed πŸ“œ. Translating it into other languages is also allowed 🌈.

The permissions granted here are perpetual πŸ’–, which means the Internet Society and its successors or assigns won't revoke them. Forever and ever πŸ¦‹.

Now the disclaimer, and it's a lot 😭. This document and the information in it is provided on an "AS IS" basis, and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED. That includes, but isn't limited to, any warranty that using the information won't infringe any rights, and 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