Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation  Back up to About Overview 
  
[+] Expand All
[-] Collapse All

Using Managed IPv6 Address Pools

You can configure the UsePools and Pools-IPv6-Prefix-Offset parameters to use IPv4 address pools configured through the Web GUI for allocating IPv6 address to the client. The parameters are available in the [IPv6] section of the radius.ini file.

UsePools = [“No”|”IPv4”]
Pools-IPv6-Prefix-Offset = offset

The UsePools parameter enables the usage of IPv4 address pools to allocate IPv6 addresses to the client, and the Pools-IPv6-Prefix-Offset parameter specifies an offset. SBR Carrier embeds the address received from the IPv4 address pool into the Framed-IPv6-Prefix attribute at the specified offset. The offset is specified in bits and ranges from 0 through 96. The offset must be a multiple of 8.

In addition to configuring IPv4 address pools through the Web GUI, a Framed-IPv6-Prefix attribute must be added to the reply list (for example, the attribute can be added to the list through a profile). When a Framed-IPv6-Prefix attribute is encountered in the reply list, a Framed-IP-Address attribute is in the reply list with the value set to a pool name, and the UsePools parameter is set to IPv4, SBR Carrier performs the following actions:

  • Allocates an IPv4 address from the named pool, as is currently done for Framed-IP-Address attributes.
  • Embeds the returned 4-byte address in the Framed-IPv6-Prefix attribute at the offset specified by the Pools-IPv6-Prefix-Offset parameter.
  • Creates a Framed-IP-Address attribute for internal use in the SSR and for pool and session management purposes, but does not send the attribute on the wire.

The Framed-IPv6-Prefix attribute includes the portion where IPv4 addresses is embedded. For example, Framed-IPv6-Prefix = fd85:4938::/64, where /64 indicates a 64-bit prefix and :: indicates that the last 32 bits are zero.

By default, the dynamically assigned IPv4 address is embedded in the last 32 bits of the prefix (as if one had explicitly configured an optional offset value of 32 in this particular case). For example, Framed-IPv6-Prefix = fd85:4938.a.b.c.d/64, where a.b.c.d represents the IPv4 address.

If the assigned IPv4 address is 10.20.30.40, the actual hexadecimal string value of the generated RADIUS Framed-IPv6-Prefix attribute would be:

61 14 00 40 FD85 4938 0A14 1E28 0000 0000 0000 0000

where:

  • 61 is the attribute type that identifies Framed-IPv6-Prefix
  • 14 is the length of the attribute (20 octets)
  • 00 is a reserved octet (must be zero)
  • 40 is the bit length of the prefix (64 bits)
  • FD85 4938 is the leading 32 bits of the prefix (as configured)
  • 0A14 1E28 is the trailing 32 bits of the prefix (overwritten by the IPv4 address that is obtained from a pool)
  • 00s are automatically generated padding

The offset value indicates the number of most significant bits of the prefix that will be skipped in order to determine the location of the embedded IPv4 addresses. For example, if Pools-IPv6-Prefix-Offset =16 and the assigned IPv4 address is 10.20.30.40, then the actual hexadecimal string value of the generated RADIUS Framed-IPv6-Prefix attribute would be:

61 14 00 40 FD85 0A14 1E28 0000 0000 0000 0000 0000

Note: Some non-zero bits (hex value 4938) of the original prefix are overwritten. This is not necessarily an error depending on the actual interpretation of the original prefix.

The default value for the Pools-IPv6-Prefix-Offset parameter is unspecified. That is, the dynamically assigned IPv4 addresses are embedded in the last 32 bits of the prefix. For example, if the Framed-IPv6-Prefix attribute is ::FFFF:0:0/128, the offset would be set to 96 in this case resulting in IPv6 IPv4 mapped addresses:

::ffff:a.b.c.d/128

If the assigned IPv4 address is 10.20.30.40, the actual hexadecimal string value of the generated RADIUS Framed-IPv6-Prefix attribute would be:

61 14 00 80 0000 0000 0000 0000 0000 FFFF 0A14 1E28

The default offset is a function of the original prefix length. The default offset is always such that the dynamically assigned IPv4 addresses will be embedded in the last 32 bits of the prefix. That is, the software must calculate the default offset using the following formula:

default offset = original prefix length - 32

For example, if you have an all-IPv6 network, only IPv6 addresses can be used. By using the default value of Pools-IPv6-Prefix, this feature enables the NAD to return an IPv6 address to the router, which in turn converts to IPv4 for assignment to a device which only supports IPv4.

Another use case is the emulation of IPv6 global unicast addresses by using the Pools-IPv6-Prefix-Offset parameter. The format for this type of IPv6 address is a 3-bit header of 001, followed by 45 bits of global routing prefix and 16 bits of subnet ID. The bit length of this type of Framed-IPv6-Prefix is always 64.

As an example, if the assigned global routing prefix for a customer is 1D854948, one would set the leading 3-bit header to indicate an IPv6 global unicast address (the binary representation of the first hex digit 0001 becomes 0011) and the Framed-IPv6-Prefix attribute is configured as Framed-IPv6-Prefix = 3D85:4948::/64. If the IPv4 address 10.20.30.40 is obtained from a pool, then the following Framed-IPv6-Prefix attribute would be generated on the wire:

3D85:4948:0A14:1E28/64

or

61 14 00 40 3D85 4948 0A14 1E28 0000 0000 0000 0000

Modified: 2018-01-11