Lab Topology
You have previously designed the IPv4 Space for the network below. You would like this to be entirely dual-stack, which means you now need to design for IPv6 as well.
You don’t have global unicast addresses assigned from an RIR yet, so you will use Unique Local addresses for now.
Challenge
Scenario
You need to:
- Allocate some Unique Local address space to your site
- Assign IPv6 prefixes to various parts of the network as appropriate
Challenge – Solution
Part 1
The first part is to allocate some Unique Local addresses for the entire network. Normally we would use global unicast ranges, but unique local is suitable for a lab.
The Unique Local range is fd:: /8. We can allocate whatever we want out of here. It’s typical to get a /56 or a /48 from an RIR. So, let’s allocate ourselves a /48.
Let’s go with… fd:0:a0:: /48. That’s easy right?
Most or all of our networks will be /64s. That gives us 16 bits of address space that we can use (tons more than we need!).
That is, we can use fd:0:a0:0:0:: – fd:0:a0:ffff:ffff::
Part 2 – Site Allocation
From the previous design that we did, we know there are three sites. That is one main site and two branch sites. Each site needs to support networks for workstations, voice, and WiFi. The main site also needs to support a server network. There will also be smaller point-to-point networks for WAN links.
Based on that, I am going to allocate /60 networks to each site. This will be divided up in a moment:
Site | Network |
---|---|
Main Office | fd:0:a0:0:00:: /60 |
Retail Office #1 | fd:0:a0:0:10:: /60 |
Retail Office #2 | fd:0:a0:0:20:: /60 |
What I’m doing here is assuming that the largest prefix we will assign to a network is /64. Each site has a /60, which leaves us 4 bits (one hexadecimal character) to play with.
4 bits per site means we can have 16 /64 networks per site.
Part 3 – Subnets
We can start by allocating networks in the main office. In IPv6, this is very simple. Just allocate /64s everywhere.
Network | IPv4 | IPv6 |
---|---|---|
Workstations | 172.16.5.0 /24 | fd:0:a0:: /64 |
Voice | 172.16.10.0 /24 | fd:0:a0:0:1:: /64 |
Servers | 172.16.15.0 /24 | fd:0:a0:0:2:: /64 |
WiFi | 172.16.20.0 /24 | fd:0:a0:0:3:: /64 |
Core/Edge Link | 192.168.10.0 /30 | fd:0:a0:0:4:: /64 |
Core/Firewall Link | 192.168.10.4 /30 | fd:0:a0:0:5:: /64 |
Then, site #1:
Network | IPv4 | IPv6 |
---|---|---|
Workstations | 172.17.5.0 /24 | fd:0:a0:0:10:: /64 |
Voice | 172.17.10.0 /24 | fd:0:a0:0:11:: /64 |
WiFi | 172.17.20.0 /24 | fd:0:a0:0:12:: /64 |
And of course, Site #2:
Network | IPv4 | IPv6 |
---|---|---|
Workstations | 172.18.5.0 /24 | fd:0:a0:0:20:: /64 |
Voice | 172.18.10.0 /24 | fd:0:a0:0:21:: /64 |
WiFi | 172.18.20.0 /24 | fd:0:a0:0:22:: /64 |
IPv6 really is simple to allocate subnets, because of its simple /64 networks. It’s really just practice, and getting used to hexadecimal numbers, as well as compressing the IP addresses.
If you get confused at any point, I recommend expanding addresses out. Sometimes it’s easier to understand that way.
For example, fd0:0:a0:: /64 is really 0fd0:0000:00a0:0000:: /64.