I'm comfortable with IPv4 address space allocations. By which I mean: Given services to plan for, or an organization to network, I have a good grasp of how to plan IP address space usage. (or at least, I think I do. :)

Are there any best practices guidance, or case studies, for IPv6 address space layout?

11 Answers 11

up vote 72 down vote accepted

The layout that we are using for our rollout is:

  • /48 per customer
  • /56 per customer site (as a subnet of the other /48)
  • /126 for all point-to-point links in the core, these are all subnets of a /48 used for all core links

These sizes are mostly taken from the RIPE advisory here.

  • 4
    Though that only goes down to a site. How about the internal LANs, floors, buildings, services, voice LAN , convention of coding the VLAN into the network address, and so on ? – nos May 8 '13 at 13:07
  • 1
    I'd then use a /64 for each VLAN/floor/building (or however your allocation works). – David Rothera May 8 '13 at 13:45
  • does ARIN (the RIR apropos for me) have any recommendations/advisories? – Craig Constantine May 8 '13 at 14:23
  • I assume you've got some means of monitoring abuse from the likes of spammers who like burning through their assigned IPs? – frogstarr78 May 8 '13 at 16:38
  • 3
    ripe.net/lir-services/training/material/… has a pretty good read (thanks to Marco Hogewoning for pointing me to it). – Andrew Y May 23 '13 at 14:58

The old recommendation was to use /64 everywhere even on P2P links and assign a /48 per site.

Using large, empty subnets on point-to-point links can lead to a number of potential security issues, (see RFC6164,) so it's now best practice to use a /127 for P2P links and /128 for loopbacks.

It's not necessary to give a small customer a /48 although you would have plenty addresses to go around if you choose to do so.

Interfaces that are facing customers should be /64 if you want to use SLAAC. If you don't intend to use it you can use another mask.

Here are some good links to go through:

BRKRST-2301 from ciscolive365.com (create free account) http://www.cisco.com/web/strategy/docs/gov/IPv6_WP.pdf
http://tools.ietf.org/html/rfc5375.html
http://tools.ietf.org/html/rfc6177

Some people take their current v4 assignments and convert second and third octet into hex and use that for v6. There are lots of different ways of doing it so you have to choose what feels best.

  • 5
    I submit that any IPv6 addressing scheme that is based on an existing IPv4 addressing scheme should be subject to extra scrutiny. This is an opportunity to break free of past shackles, not a rote chore to faithfully reproduce them. – neirbowj May 23 '13 at 14:08
  • 2
    My understanding is that the smallest subnet that is advisable to create (P2P links aside) is a /64. If I'm a home customer and want to have multiple subnets on my LAN, without using NAT6, I want more than a /64. As someone interested in having IPv6 at my home, and as someone who knows how many quadrillions of /64s there are, I want at least a /60. – Luke has no name May 23 '13 at 23:44

With IPv6 you no longer have to worry about allocating space for a given number of hosts. All subnets (other than P2P links) should be assigned as a /64 which gives you a ridiculous number of host addresses. This frees you to focus on other topics such as good network layout & design. (A /48 would give you 65,536 /64 networks)

There are (of course) several schools of thought on this. If you are already pretty happy with your IPv4 design, then doing a IPv6 overlay that mirrors things is probably a good option and eases the transition for everyone.

  • 2001:0DB8:1:1:: /64 --> 10.1.1.0 /24
  • 2001:0DB8:1:2:: /64 --> 10.1.2.0 /24
  • ...
  • 2001:0DB8:1:254:: /64 --> 10.1.254.0 /24

Play around with some of the IPv6 calculators to help you get your head around all of this. Here is an example one: GestioIP Online IPv4/v6 Calculator

This was the hardest thing for me to get over - don't worry about allocating space for hosts! Plan your network -- focus on locations of layer-3 boundaries, services offered, physical location of devices, etc. It is probably going to be years before you have a pure IPv6 network, but you will begin laying the groundwork of good network design now.

A little precision to earlier responses, based on the RIPE IPv6 training session I had a year ago. Basically their recommendation is to focus on aggregation rather than address space preservation.

That is : don't worry to reserve a large amount of IPs for a Point of Presence even if you only have small amount of subnets here (for now). But you should aggregate every subnet "living" in a POP under the same bigger prefix.

Their main concern, now that we have a very large amount of IP at our disposal, is that if everyone announces small prefixes with a fine granularity, the size of the DFZ routing table might explode.

Here is the training material used in the presentation. Especially the first "Training exercise" PDF gives some example of an addressing plan.

In use the following layout myself (datacenter pov)

Colocation customers: one /48.

Dedicated servers: one /64 per server by default.

P2P links (bgp linknets, and so on): /126

As for the IPv4 -> IPv6 transition to a dual stack environment for hosted vlans I match the ipv4 subnet to an ipv6 subnet which is large enough, to contain a /64 for every single ipv4 address.

For example:

Vlan containing one /24 ipv4 (256 ip's), I match that with a /56 Ipv6 (256 unique /64 subnets)

Vlan containing one /23 ipv4 (512 ip's), I match that with a /55 ipv6 (512 unique /64 subnets)

SURFnet wrote a nice IPv6 network plan manual that might be useful

  • This link is now dead; it's a fairly shallow answer, too. Perhaps you could include some highlights from the original source? – Ryan Foley Feb 14 '14 at 21:51
  • I replaced the link with one hosted at RIPE (who sponsored the translation). It's quite hard to give a decent summary of the document since it addresses many different scenario's, but it mostly corresponds to what others mentioned here. It's a nice document for helping you make some decisions on how to choose addresses. – Teun Vink Feb 14 '14 at 22:01
  • The question asks about the existence of best practices in general, without any specific inquiry. This answer succinctly satisfies this question. Upvoted. – StockB Apr 25 '16 at 18:01
  • How to view this answer on Android? What app does work with the file? – Ferrybig Jun 1 at 15:29

It's a bit intimidating when you see the huge address space available, but in practice, it's not hard to deal with.

Let's say you are allocated a /48. That gives you 65K /64s to play with, each capable of holding rather a lot of addresses. Also the rounding error in 65K gives you a slack handful of other /<64 for other uses.

Personally speaking I call off /64 subnets from the /48 per VLAN. I set the router address as ::1 for each VLAN. I use ::xxxx for DNS (where xxxx is a repeated digit) and similar for a few other services. It's easier to remember.

Each box gets a SLAAC allocated address and all hosts are encouraged to also set a temporary address. This way we can find a system using the SLAAC address but the system retains a little privacy on the internet - or it would but we generally use a web proxy - ahh but that has a temporary address as well! Still, the ubiquity of IPv4 makes all this moot.

If you have multiple sites then break up the /48 into smaller bits but larger than /64 - enough to cover all eventualities. This will allow you to aggregate routing tables somewhat.

Frankly, assuming you DO have a /48 (I have one for my home, so I don't doubt it) then you should have enough space to cover most eventualities and schemes.

Now, if your setup is bigger - say multi-national and multi site then I suggest you investigate PI and then break that up by country/site/VLAN or country/locality/site/building/VLAN or whatever. You still get plenty of addresses in a /48 for all but the largest set up.

Some network device architectures assume that most of your prefixes will be /64's. Check this column in Ivan Pepelnjak's blog for more info.

The biggest concern is likely to identify where your bottlenecks are going to be, in terms of route aggregation. The basic parameters are likely going to be: each subnet must be a /64 (dictated by IPv6), and you have a /60, /56, or /48 to play with.

As others have said, a /48 gives you 64k subnets, but it's still easy to paint yourself into a corner if you just assign them randomly. Let's say you have 1000 store locations, and give each one a /64 sequentially from the start. Then you find out that the 43rd store needs a second subnet - that means, either renumbering that network, or giving the store two separate subnets that can't be aggregated.

Incidentally, in the IPv4 world, you also get 64k subnets if you use the 10.x.x.x network and subnet it to /24s. Some of the practices you use in that scenario may translate nicely.

One company I work for uses 10.x.x.x internally for about 150 branch offices (with some 100-500 computers at each location). The second byte is the branch number, and they use /22 instead of /24 for their subnets. So each branch office can have up to 64 subnets, which works nicely for them.

  • Yes, the best practice is that each site gets a /56 or shorter mask length. Also, it is recommended that nibbles not be split when assigning things (each mask length assigned should be divisible by 4). Carriers will not advertise a prefix longer than /48, so if the individual sites are to be advertised separately, they each need a /48. – Ron Maupin Nov 8 '15 at 5:34
  • That best practice (like most best practices) is generally a good idea, but may not always fit. For instance, if you are a Starbucks or McDonalds, you may not have enough /56s for all your stores. That's actually why organizations such as various country's militaries, and even a chain book store, wanted a /29 or even shorter prefixes. – Kevin Keane Nov 8 '15 at 6:21
  • 1
    My company got a much shorter mask length. You can easily get a much shorter mask length so that you can assign a /56 (or shorter) to each site. All I'm saying is that if you want to advertise a prefix on the Internet, you need a /48 or shorter mask length. Get a /32 or /24, it's not hard if you have the need. – Ron Maupin Nov 8 '15 at 6:29

The best way of dividing ipv6 is into /64 subnets. because /64 address can be easily mapped to IPV4 manually

  • 1
    How does dividing it into /64 make that easier than dividing it in /48's for example. Can you elaborate on how you would do this mapping? – Teun Vink Jan 19 '17 at 12:56
  • 1
    And why should we care about "easily mapped to IPV4"? – Michael Hampton Jan 19 '17 at 18:25

The main differences between v4 and v6

  1. there should be no need to micromanage. Address space is relatively plentiful.
  2. The expectation is that all subnets will be /64s
  3. NAT is strongly discouraged. For large buisnesses that is no problem, they just get PI space or even register as an LIR and advertise their space over BGP. However for small businesses it leaves a difficult choice, do they apply for PI space and buy more expensive internet connections that will let them use it? Do they run private addresses and ISP allocated public addresses in parallel and hope that no ISP allocated addresses end up in long term configuration files? do they ignore the IETF and run NAT anyway?
  4. The hexadecimal notation makes nibble boundries conviniant for addressing levels.

Beyond that it shouldn't be much different from v4, figure out what subnets you need, figure out what logical groupings they fall into and how much room for future expansion you want at each level and start putting together a plan.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.