This is a high level summary of an IPv6 addressing & dimensioning plan for mid-sized service providers. Obviously it doesn't apply to all cases, but i hope other people will find it useful too.
First you define 3 levels of PoPs (Points of Presence), depending on number of customers and address consumption:
- Level-1 PoP (Large)
- Level-2 PoP (Medium)
- Level-3 PoP (Small)
- Residential
- Business
General rules
- Keep the boundary on /32,/40,/48,/56,/64,/128 for easier management.
- Avoid hex letters (A,B,C,D,E,F) on infrastructure addresses, at least until you run out of numbers.
- Keep infrastructure addresses in a single block for easier ACL management.
- Loopbacks, Management, Internal can be contained in a single /41, leaving Public on the other /41.
- Keep customer addresses in a single block per PoP for easier route aggregation.
- Too much aggregation won't help you much in case of multiple internet exits.
Each ISP gets at least a /32 from its RIR. A sample dimensioning could be the following:
1 x /32
- 1 x /40 : Infrastructure Addresses
- 1 x /48 for all PoPs : Loopbacks & Management
- 1 x /56 for all PoPs : Loopbacks
- 1 x /64 per Loopback Category
- 1 x /128 per Loopback Interface
- 1 x /56 per PoP : Management
- 1 x /64 per Management LAN
- 1 x /48 for all PoPs : Reserved
- 1 x /48 per PoP : Internal Networks
- X1 x /56 : Routers P2P Links
- 1 x /64 per Routers P2P Link
- X2 x /56 : Routers LANs
- 1 x /64 per Routers LAN
- X3 x /56 : Hosts LANs
- 1 x /64 per Hosts LAN
- X4 x /56 : Servers LANs
- 1 x /64 per Servers LAN
- X5 x /56 : Other
- 1 x /64 per Other
- 1 x /48 per PoP : Public Networks
- X1 x /56 : Routers P2P Links
- 1 x /64 per Routers P2P Link
- X2 x /56 : Routers LANs
- 1 x /64 per Routers LAN
- X3 x /56 : Hosts LANs
- 1 x /64 per Hosts LAN
- X4 x /56 : Servers LANs
- 1 x /64 per Servers LAN
- X5 x /56 : Other
- 1 x /64 per Other
- A x /40 : Level-1 PoP Customers
- N1 x /40 per PoP : Business Customers
- 1 x /48 per Large Customer
- 1 x /56 per Small Customer
- N2 x /40 per PoP : Residential Customers
- 1 x /56 per Customer LAN
- 1 x /64 per Customer WAN
- B x /40 : Level-2 PoP Customers
- M1 x /40 per PoP : Business Customers
- 1 x /48 per Large Customer
- 1 x /56 per Small Customer
- M2 x /40 per PoP : Residential Customers
- 1 x /56 per Customer LAN
- 1 x /64 per Customer WAN
- C x /40 : Level-3 PoP Customers
- L1 x /40 per PoP : Business Customers
- 1 x /48 per Large Customer
- 1 x /56 per Small Customer
- L2 x /40 per PoP : Residential Customers
- 1 x /56 per Customer LAN
- 1 x /64 per Customer WAN
- D x /40 : Reserved
Calculations
A,B,C depend on the total number of /40 per type of PoP (A>B>C).
N1,N2,M1,M2,L1,L2 depend on the number of customers per type of PoP (N1>M1>L1 & N2>M2>L2)
The summary of (N1 x /40) + (N2 x /40) for all Level-1 PoPs equals to A x /40.
The summary of (M1 x /40) + (M2 x /40) for all Level-2 PoPs equals to B x /40.
The summary of (L1 x /40) + (L2 x /40) for all Level-3 PoPs equals to C x /40.
Notes
The above plan is based on what i believe to be current best practices and recommendations for a specific type of service provider. Some things will change, as they changed in the past:
- Initially a /48 was recommended for all sites in the general case (RFC 3177), now it's per case (RFC 6177).
- Some years ago a /127 was not recommended for p2p links (RFC 3627), now /127 came back into surface (RFC 6164).
- Currently only /64 is used by SLAAC (RFC 4862), but someone though something longer would be better (draft-yhb-6man-slaac-improvement).
I am sure we'll see a lot of changes in the following months/years regarding the length of prefixes in IPv6. I just hope we don't have to move to something new with more than 128 bits.