6. Example of New Address Assignments and Routing
- Example of New Address Assignments and Routing
6.1. Address Delegation
Consider the block of 524288 (2^19) addresses, beginning with
10.24.0.0 and ending with 10.31.255.255, allocated to a single
network provider, "PA". This is equivalent in size to a block of
2048 legacy "Class C" network numbers (or /24s). A classless route
to this block would be described as 10.24.0.0 with a mask of
255.248.0.0 and the prefix 10.24.0.0/13.
Assume that this service provider connects six sites in the following
order (significant because it demonstrates how temporary "holes" may
form in the service provider's address space):
o "C1", requiring fewer than 2048 addresses (/21 or 8 x /24)
o "C2", requiring fewer than 4096 addresses (/20 or 16 x /24)
o "C3", requiring fewer than 1024 addresses (/22 or 4 x /24)
o "C4", requiring fewer than 1024 addresses (/22 or 4 x /24)
o "C5", requiring fewer than 512 addresses (/23 or 2 x /24)
o "C6", requiring fewer than 512 addresses (/23 or 2 x /24)
In all cases, the number of IPv4 addresses "required" by each site is
assumed to allow for significant growth. The service provider
delegates its address space as follows:
o C1. assign 10.24.0 through 10.24.7. This block of networks is
described by the route 10.24.0.0/21 (mask 255.255.248.0).
o C2. Assign 10.24.16 through 10.24.31. This block is described by
the route 10.24.16.0/20 (mask 255.255.240.0).
o C3. Assign 10.24.8 through 10.24.11. This block is described by
the route 10.24.8.0/22 (mask 255.255.252.0).
o C4. Assign 10.24.12 through 10.24.15. This block is described by
the route 10.24.12.0/22 (mask 255.255.252.0).
o C5. Assign 10.24.32 and 10.24.33. This block is described by the
route 10.24.32.0/23 (mask 255.255.254.0).
o C6. Assign 10.24.34 and 10.24.35. This block is described by the
route 10.24.34.0/23 (mask 255.255.254.0).
These six sites should be represented as six prefixes of varying size
within the provider's IGP. If, for some reason, the provider uses an
obsolete IGP that doesn't support classless routing or variable-
length subnets, then explicit routes for all /24s will have to be
carried.
To make this example more realistic, assume that C4 and C5 are multi-
homed through some other service provider, "PB". Further assume the
existence of a site, "C7", that was originally connected to "RB" but
that has moved to "PA". For this reason, it has a block of network
numbers that are assigned out PB's block of (the next) 2048 x /24.
o C7. Assign 10.32.0 through 10.32.15. This block is described by
the route 10.32.0.0/20 (mask 255.255.240.0).
For the multi-homed sites, assume that C4 is advertised as primary
via "RA" and secondary via "RB"; and that C5 is primary via "RB" and
secondary via "RA". In addition, assume that "RA" and "RB" are both
connected to the same transit service provider, "BB".
Graphically, this topology looks something like this:
10.24.0.0 -- 10.24.7.0__ __10.32.0.0 - 10.32.15.0
C1: 10.24.0.0/21 \ / C7: 10.32.0.0/20
\ /
+----+ +----+
10.24.16.0 - 10.24.31.0_ | | | |
C2: 10.24.16.0/20 \ | | 10.24.12.0 - 10.24.15.0_ | |
| | / C4: 10.24.12.0/20 \ | |
| |/ | |
10.24.8.0 - 10.24.11.0___/| PA |\ | PB |
C3: 10.24.8.0/22 | | _10.24.32.0 - 10.24.33.0__| |
| | C5: 10.24.32.0/23 | |
| | | |
10.24.34.0 - 10.24.35.0__/| | | |
C6: 10.24.34.0/23 | | | |
+----+ +----+
|| ||
routing advertisements: || ||
|| ||
10.24.12.0/22 (C4) || 10.24.12.0/22 (C4) ||
10.32.0.0/20 (C7) || 10.24.32.0/23 (C5) ||
10.24.0.0/13 (PA) || 10.32.0.0/13 (PB) ||
|| ||
VV VV
+---------- BACKBONE NETWORK BB ----------+
6.2. Routing Advertisements
To follow rule #1, PA will need to advertise the block of addresses
that it was given and C7. Since C4 is multi-homed and primary
through PA, it must also be advertised. C5 is multi-homed and
primary through PB. In principle (and in the example above), it need
not be advertised, since longest match by PB will automatically
select PB as primary and the advertisement of PA's aggregate will be
used as a secondary. In actual practice, C5 will normally be
advertised via both providers.
Advertisements from "PA" to "BB" will be
10.24.12.0/22 primary (advertises C4)
10.32.0.0/20 primary (advertises C7)
10.24.0.0/13 primary (advertises remainder of PA)
For PB, the advertisements must also include C4 and C5, as well as
its block of addresses.
Advertisements from "PB" to "BB" will be
10.24.12.0/22 secondary (advertises C4)
10.24.32.0/23 primary (advertises C5)
10.32.0.0/13 primary (advertises remainder of RB)
To illustrate the problem diagnosis issue mentioned in Section 5.1,
consider what happens if PA loses connectivity to C7 (the site that
is assigned out of PB's space). In a stateful protocol, PA will
announce to BB that 10.32.0.0/20 has become unreachable. Now, when
BB flushes this information out of its routing table, any future
traffic sent through it for this destination will be forwarded to PB
(where it will be dropped according to Rule #2) by virtue of PB's
less-specific match, 10.32.0.0/13. Although this does not cause an
operational problem (C7 is unreachable in any case), it does create
some extra traffic across "BB" (and may also prove confusing to
someone trying to debug the outage with "traceroute"). A mechanism
to cache such unreachable state might be nice, but it is beyond the
scope of this document.