The DHCP and IPoE Subscriber Management feature supports the following functionalities:
DHCP Server
The cnBNG CP implementation supports the DHCPv4 server mode. The DHCP server FSM handles the DHCP packets from client, IP
allocation, and IP lease management.
The FSM handles the following Rx control packets:
The DHCP server FSM sends the following control packets to the client based on the FSM states and events:
The DHCP server implementation associates a DHCP profile to a group of subscribers. This server implementation supports the
following functionalities:
-
IP address allocation for the client from the configured pool in the DHCP profile.
-
IP address lease allocation based on DHCP profile configuration.
-
Passing Host configurations to the client using the following configurable DHCP options in the DHCP profile:
-
IP subnet mask (Option 1)
-
Boot filename (Option 67)
-
Domain name (Option 15)
-
NetBIOS node type (Option 46)
-
NetBIOS name server (Option 44)
-
Domain name server (Option 6)
-
Default router (Option 3)
-
Time server (Option 4)
Processing Option 82
cnBNG supports Option 82, which is the relay agent information option to figure out the sub-options. The various sub-options
that the DHCP processes are:
The circuit ID and remote ID field is passed to the Session Manager during session start trigger and the same is used for
north-bound interactions.
DHCPv4 RADIUS Proxy
The cnBNG CP supports DHCP IPv4 RADIUS proxy for RADIUS-based authorization of DHCP leases. This is a RADIUS-based address
assignment mechanism in which a DHCP server authorizes remote clients and allocates IP addresses, based on replies from a
RADIUS server.
These are the steps involved in the address assignment mechanism:
-
The DHCP server sends the DHCP client information to the RADIUS server.
-
The RADIUS server returns all required information, primarily IPV4 address, to the DHCP server in the form of RADIUS attributes.
The subnet mask is derived from the CP based on the static pool configuration. The IPv4 address sent from the RADIUS must
be part of the static pool associated to the UP.
-
The DHCP server translates the RADIUS attributes into DHCP options and sends this information back in a DHCP Offer message
to the DHCP client.
If the IETF attribute, such as Framed-IP-Address is received from the RADIUS server, and if it is present in the user profile,
then this attribute is used instead of allocating the IP address from the configured pool. The basic attributes that can come
from the RADIUS server that are relevant for DHCP server options are:
Apart from these attributes, the dhcp-class name and address pool name attribute also can come from RADIUS. If the RADIUS
sets the address pool name, then it uses this for IP allocation instead of the pool that is specified as part of the DHCP
profile.
If the RADIUS server sends the dhcp-class attribute to the DHCP server, then that attribute value is used to decide other
configuration parameters in the reply that is to be sent to the DHCP client. For example, if the DHCPv4 server profile has
both Class A and Class B in it, and if RADIUS server sends a reply to the DHCP server with the class name as 'B', then Class
B is used to send the options back to the DHCP client. Classes can be defined under DHCP profile. The parameters and options
that can be configured under DHCP profile can be configured under class also.
Additional RADIUS server attributes are allowed, but not mandatory. If a RADIUS server user profile contains a required attribute
that is empty and is not available via configuration as well, the DHCP server does not generate the DHCP options.
DHCPv6 Local Server for IPv6 Subscribers
The DHCPv6 server assigns IPv6 address and prefix and other configuration attributes (such as domain name, the domain name
server address and SIP servers and so on) to requesting clients. On receiving a valid request, the server assigns the client
IPv6 address or prefix, a lease for the assigned IPv6 address or prefix and other requested configuration parameters. The
DHCP server FSM is implemented to handle the address allocation and lease management. The FSM would handle the following control
packets from the client:
-
Solicit
-
Request
-
Renew
-
Rebind
-
Decline
-
Information-Request
-
Release
The DHCPv6 server FSM sends the following control packets to the client based on the FSM states and events:
The DHCPv6 server implementation associates a DHCPv6 profile to a group of subscribers. The server implementation caters to
the following functionalities:
-
IANA address and IAPD address allocation for the client from configured pool in DHCPv6 profile.
-
IANA and IAPD address lease allocation based on DHCPv6 profile configuration.
-
Passing Host configurations to client using below configurable DHCP options in DHCP profile
The DHCPv6 server sends the following options to the Policy plane:
-
interface-id (DHCP Option 18)
-
remote-id (DHCP Option 37)
-
vendor-class (DHCP Option 16)
-
user-class (DHCP Option 15)
-
client-id(DHCP Options 1)
DHCPv6 Server - Prefix Delegation
The DHCPv6 Prefix Delegation feature enables the DHCPv6 server to hand out network address prefixes to the requesting clients.
The clients use these network prefixes to assign /128 addresses to the hosts on their network. The RFC-3633 and RFC-3769 is supported for prefix delegation. The DHCPv6 Prefix Delegation feature is enabled by default for cnBNG DHCPv6 server. No
other configuration is required to enable the prefix delegation. The DHCPv6 option OPTION_IA_PD (25) and OPTION_IAPREFIX (26)
support to meet the prefix delegation requirement.
Note
|
|
The cnBNG allocates addresses from the prefix pool configured under the DHCP profile.
DHCPv6 Server - Address Assignment
The DHCPv6 Address Assignment feature enables the DHCPv6 server to hand out /128 addresses to the clients. The cnBNG DHCPv6
server implementation supports the DHCPv6 OPTION_IA_NA(3) and OPTION IAADDR(5) to enable address assignment to the client.
Note
|
|
The cnBNG allocates addresses from the prefix pool configured under the DHCP profile.
Prefix and Address Pool Support for IPv6
The cnBNG supports the configuring of the DHCPv6 address and prefix pool and associating it to the DHCPv4 and DHCPv6 server
profiles. The address and prefix ranges is under the pool. cnBNG also supports downloading of the address and prefix pool
name via the user profile on a per subscriber basis. The pool name downloaded via user profile is given priority over the
pool name association via the DHCPv6 profile.
DHCPv6 Server with RADIUS-based Address Assignment
The cnBNG supports RADIUS-based address assignment, that is, the IANA address is downloaded as part of the user profile and
is allocated to the client. Address from the user profile is given priority over the local configuration.
DHCPv6 Server with RADIUS-based Prefix Delegation
The cnBNG supports RADIUS-based prefix assignment, that is, the IAPD address is downloaded as part of the user profile and
is allocated to the client. The delegated prefix from the user profile is given priority over the local configuration.
DHCPv6-provided IPv6 address of DNS server for IPv6 Subscribers
The cnBNG CP DHCPv6 server implementation supports the provision of DNS server information to clients via the DNS option (23).
It supports a configuration of up to 8 DNS server ipv6 addressees via the DHCPv6 profile. The DHCPv6 server information is
downloaded via the user profile on a per subscriber basis. The per subscriber DNS information in the user profile is given
priority over the profile configuration.
DHCPv4 DHCPv6 Lease Timeout
The cnBNG CP provides the configuration to set the lease value under the DHCPv4 and DHCPv6 profile. This configuration determines
the lease for the IP addresses allocated to the clients.
For DHCPv4 clients, the lease is set in the address time (T) option (option 51). By default, the renewal time is set as (½)
* T [option 58] and rebinding time is set as (7/8) * T [option 59]. For DHCPv6 client, the lease is populated in the IA address
and IA prefix option for the respective address types. By default, preferred time is set as 0.5 * T and valid time T2 is set
as 0.8 * T. By default, renewal time (T1) is set as 0.5 * T and rebinding time T2 is set as 0.8 * T in OPTION_IA_PD.
The cnBNG CP tracks the lease time allocated to the clients. Ideally the client should renew (Renew request) the lease at
T1 to extend the lease. If renew is failing, the client uses the rebind (broadcast request message for DHCPv4 and rebind message
for DHCPv6). If the cnBNG CP does not receive the lease renewal request from the client, the lease times out after T and the
corresponding address is released to the pool and removed from the client session. This can lead to an update or disconnect
to the Session Manager based on the other address states. The lease timeout is applicable to both IPv4 and IPv6 addresses.
IPv6 IPoE Sessions
The IPv6 subscribers run the IPv6 from the CPE device to the BNG router and are created using the DHCPv6 protocol. The IPv6
subscribers natively run IPv6 on the CPE device and are connected to the router via a Layer-2 network or through Layer-2 aggregation.
The IPv6 subscribers are supported when they are directly connect to the cnBNG UP or via a Layer-2 aggregator. The cnBNG CP
DHCPv6 server treats only DHCPv6 SOLICIT message from the subscriber / client as FSOL (First Sign Of Life) packet in case
of IPoE and initiates the subscriber session creation.
Note
|
Routed subscribers are not supported.
|
Dual Stack IPv6/IPv4 over IPoE
The cnBNG CP supports dual-stack IPoE subscribers, that is, both IPv4 and IPv6 address allocation for the same subscriber.
In this release, cnBNG supports up to one IPv4 address, one IANA address, and one IAPD address.
Subscriber Termination over Non-default VRF
The cnBNG CP DHCPv4 and DHCPv6 servers are VRF aware. The DHCPv4 and DHCPv6 servers support the access interface in either
default VRF or non-default VRF. The following table shows the VRF combination supported by DHCPv6 server.
Table 3. DHCP Supported VRF Combinations
Client Access Interface
|
Subscriber Interface
|
DHCPv6 Supported
|
Default VRF
|
Default VRF
|
Supported
|
Default VRF
|
Non-default VRF
|
Supported
|
Non-default VRF
|
Non-default VRF
|
Supported
|
DHCPv4 Raw Option Support
The cnBNG DHCP Profile configuration enables the operator to configure specific DHCPv4 options, under the DHCPv4 profile.
The option value can range from 1 to 255. The option value can be either an ascii string or a hexadecimal string.
DHCPv4 and DHCPv6 Class Support
The cnBNG DHCP Profile configuration enables the operator to configure classes of DHCP options and to selectively associate
them during the session setup. The DHCP Options class are selected based on certain matching DHCP options received from access
network against the configured class key parameters. The DHCP Options class can also be selected based on the class name received
from Policy plane. The priority is always given to the DHCP class name that the Policy plane provides. However, if the Policy
plane does not provide a class name, then class selection depends on the operator-configured key parameters. The operator
can configure multiple DHCP option classes for DHCPv4 and DHCPv6 separately.
The DHCP Profile consist of profile elements. Each of the DHCPv4 and DHCPv6 profiles contain the ‘default’ DHCP options list
and zero or more classes of DHCP options of corresponding DHCP version.
The DHCPv4 and DHCPv6 Options Class contains a list of DHCP options and the “Match-Info” holds the information about the keys
to be matched to select that class. The operator can also specify under Match-Info” the class selection that should match
‘any’ or ‘all’ the key parameters of that class.
If the DHCP Option class does not match an ongoing session or any requested DHCP Options is not found in the selected class,
then the requested option is selected from the ‘default’ DHCP Options of that profile.