Local user database

A local user database (LUDB) is a data source that is used to lookup subscriber management and DHCP client data for a specific device or a set of devices.

A LUDB can be accessed for the following applications (see LUDB subscriber management applications, LUDB DHCP server application, and LUDB DHCPv6 relay application):

  • (1) subscriber session authentication – to provide full or partial Enhanced Subscriber Management (ESM) data needed to instantiate the subscriber session

  • (2) fallback for an unavailable RADIUS authentication or Diameter Gx server – provided during subscriber session authentication

  • (3) DHCP server – for example, to assign a fixed IPv4 address to an end-user device, or to insert client-specific DHCP options

  • (4) DHCPv6 relay on IES or VPRN interfaces – insert DHCP options upstream to the DHCPv6 server or downstream to the DHCPv6 client

Figure 1. LUDB subscriber management applications
Figure 2. LUDB DHCP server application
Figure 3. LUDB DHCPv6 relay application

LUDB configuration and operation

A LUDB lookup function matches input parameters provided by the application to host identification fields of LUDB entries, and returns a set of configured, output parameters. This process is common to all LUDB applications.

LUDB entries are called “hosts” and are organized in two sections:

  • IPOE – contains the host entries for IPoE subscriber sessions and DHCP clients

  • PPP – contains the host entries for PPPoE subscriber sessions

Per section, match criteria and masks determine which input parameters provided by the application are used for the lookup.

A LUDB host entry contains the host identification fields that match the entry and output parameters that are returned to the application upon a match. One LUDB host entry can map to one or multiple devices, for example, all devices connected to a specific VLAN or interface.

Supported match criteria and output parameters are a function of the LUDB application and are described in Subscriber session authentication in LUDB and LUDB lookup for DHCP server leases.

The following figure shows the LUDB lookup function with a simplified example for a subscriber session authentication.

Figure 4. LUDB lookup function

Where:

  • (1) A LUDB lookup is requested for an IPoE subscriber session authentication with MAC address and SAP as input parameters.

  • (2) SAP is the only match criterion configured. The MAC address is ignored for the LUDB lookup.

  • (3) A mask is configured for the SAP match criterion that strips the VLAN-tag from the SAP.

  • (4) The LUDB lookup uses the masked SAP value as input and matches the corresponding identification field of entry 1. The LUDB returns an SLA-profile string, a SUB-profile string, and a Gi address as output parameters to the application.

The following figure shows the configuration structure of a LUDB.

Figure 5. LUDB configuration overview

MD-CLI

[ex:/configure subscriber-mgmt]
A:admin@node-2# info
    local-user-db "ludb-1" {
        admin-state enable
        ipoe {
            match-list [circuit-id]
            mask type circuit-id {
                suffix {
                    string "|*"
                }
            }
            host "olt-1" {
                admin-state enable
                host-identification {
                    circuit-id {
                        ascii-string "pe1|1000|group-int-1-1"
                    }
                }
                authentication {
                    radius-auth-policy "radius-auth-1"
                }
                identification {
                    sla-profile-string "sla-profile-1"
                    sub-profile-string "sub-profile-1"
                }
                ipv4 {
                    address {
                        pool {
                            primary "pool-pe1-ipv4-1"
                        }
                    }
                }
                ipv6 {
                    address-pool "pool-pe1-ipv6_ia_na-1"
                    delegated-prefix-pool " pool-pe1-ipv6_ia_pd-1"
                }
            }
            host "default" {
                admin-state enable
                authentication {
                    radius-auth-policy "radius-auth-1"
                }
            }
        }
        ppp {
            match-list [user-name]
            host "csp.com" {
                admin-state enable
                host-identification {
                    user-name {
                        name "csp.com"
                        format domain-only
                    }
                }
                authentication {
                    radius-auth-policy "radius-auth-1"
                }
                ppp-policy-parameters {
                    keepalive {
                        hold-up-multiplier 2
                        interval 15
                    }
                }
            }
            host "default" {
                admin-state enable
                authentication {
                    radius-auth-policy "radius-auth-1"
                }
            }
        }
    }

classic CLI

A:node-2>config>subscr-mgmt# info
----------------------------------------------     
        local-user-db "ludb-1" create
            ipoe
                match-list circuit-id
                mask type circuit-id suffix-string "|*"
                host "olt-1" create
                    host-identification
                        circuit-id string "pe1|1000|group-int-1-1"
                    exit
                    address pool "pool-pe1-ipv4-1"
                    auth-policy "radius-auth-1"
                    identification-strings 254 create
                        sla-profile-string "sla-profile-1"
                        sub-profile-string "sub-profile-1"
                    exit
                    ipv6-wan-address-pool "pool-pe1-ipv6_ia_na-1"
                    ipv6-delegated-prefix-pool " pool-pe1-ipv6_ia_pd-1"
                    no shutdown
                exit
                host "default" create
                    auth-policy "radius-auth-1"
                    no shutdown
                exit
            exit
            ppp
                match-list username
                host "csp.com" create
                    host-identification
                        username "csp.com" domain-only
                    exit
                    auth-policy "radius-auth-1"
                    ppp-policy-parameters
                        keepalive 15 hold-up-multiplier 2
                    exit
                    no shutdown
                exit
                host "default" create
                    auth-policy "radius-auth-1"
                    no shutdown
                exit
            exit
            no shutdown
        exit
----------------------------------------------

For detailed LUDB configuration steps, see DHCPv6 server leases.

Creating LUDBs

A LUDB is identified by a unique name, up to 32 characters. Multiple LUDBs can be created for different applications. The LUDB must be administratively enabled to be operational.

Configuring match criteria: match list and masks

The match criteria configured in a user-ordered match-list determine which of the input parameters provided by the application are considered for matching in the host identification fields of a LUDB host entry. Input parameters provided by the application that are not on the match list are ignored.

For some match criteria, an optional mask can be applied to the input parameter before searching for a matching LUDB host entry. Masking is prefix- or suffix-based, or a combination of both. A prefix or suffix string, or a prefix or suffix length, can be specified. The following tables summarizes masking examples. In the third example, a combination of both prefix and suffix string masks is used.

Table 1. Masking examples

Match criterion

Input parameter

Masks

Input parameter after masking

remote-id

87654321-BSAN-1

prefix length 9

BSAN-1

circuit-id

BSAN-2|1|100|1/2/1

suffix length 12

BSAN-2

user-name

all@domain-1.com

prefix string “*@”

suffix string “.com”

domain-1

Different match criteria and masks for IPoE and PPP subscriber sessions can be configured simultaneously in a LUDB. At minimum, one criterion must be configured in the match list when LUDB host entries are created. The configuration of masks is optional.

For IPoE, from the available match criteria, up to four can be defined in the match-list: circuit-id, derived-id, dual-stack-remote-id, duid-en, duid-ll-llt, encap-tag-range, encap-tag-separate-range, ip, mac, option60, remote-id, sap-id, service-id, string, and system-id.

For PPP, from the available match criteria, up to three can be defined in the match-list: circuit-id, derived-id, encap-tag-range, encap-tag-separate-range, mac, remote-id, sap-id, service-name, and user-name.

The match criteria and masks that apply for a specific LUDB application are described in Subscriber session authentication in LUDB and LUDB lookup for DHCP server leases.

LUDB host entries

A host entry belongs to either the IPoE or the PPP section of a LUDB and is identified by a name of up to 32 characters that must be unique within the section.

A host entry contains two sets of parameters:

  • host-identification fields used for matching input parameters during a LUDB lookup

    For IPoE, the host-identification fields are: circuit-id, derived-id, duid-en, duid-ll-llt, encap-tag-range, encap-tag-separate-range, ip-prefix, mac, option60, remote-id, sap-id, service-id, string, and system-id.

    For PPP, the host-identification fields are: circuit-id, derived-id, encap-tag-range, encap-tag-separate-range, mac, remote-id, sap-id, service-name, and user-name.

  • output parameters returned to the application upon a successful lookup

    The output parameters of the lookup process include identification strings for subscriber session instantiation, DHCP options, IP address information, MSAP parameters, and so on.

Optionally, a default host with the name default can be configured as a wildcard in case the lookup fails to find a matching entry. Host identification fields should not be configured for the default host, as it is a match-all entry. If host identification fields are configured, the default host entry becomes a regular non-default host entry.

Host identification fields and output parameters that apply for a specific LUDB application are described in Subscriber session authentication in LUDB and LUDB lookup for DHCP server leases.

LUDB host entry validation

When a LUDB host entry is administratively enabled, the system uses the following validation criteria, before adding the entry to the lookup database:

  • A non-default host entry must have at least one host-identification field defined.

  • A non-default host entry with none of its host identification fields in common with the match-list is added to the list of unmatched hosts with “no match” as the reason.

  • A non-default host entry is added to the lookup database when at least one of the defined host identification fields is in common with the match-list, even when some of the host identification fields are not on the match-list.

  • Two or more non-default host entries with the same host identification definitions are duplicates. Only one host entry is added to the lookup database. Duplicates are added to the list of unmatched hosts with “duplicate” as the reason.

Use the following commands can be used to display the list of unmatched hosts.

show subscriber-mgmt local-user-db ppp-unmatched-hosts
show subscriber-mgmt local-user-db ipoe-unmatched-hosts  
Note: Modifying a match-list results in a reevaluation of all host entries in that section of the LUDB, so that the lookup database and the unmatched host list are repopulated.

LUDB lookups

The following rules apply while scanning through a LUDB in search of a single matching entry:

  • Only criteria on the match-list are considered.

    For example, assume a client for which a MAC address, a circuit-id, and a remote-id are provided as input parameters. If the match-list only contains the MAC address as criterion, the circuit-id and the remote-id input parameters are ignored. Only the MAC address is used to find a matching host entry.

  • The order of criteria on the match-list is important.

    The match-list is a user-ordered list, and the criteria are processed left to right.

  • As many of the host-identification fields as possible must be matched, while still obeying the first item in this list.

    Only the optionally masked parameters from the match list are verified.

  • The default host is excluded from the scan. It is used as a fallback when scanning through a LUDB yields no result.

Figure 6. Host matching example 1

The rules, as shown in the preceding figure, are described as follows:

  • (A) Matching is based on the MAC-address only – When client-a with mac-1 connects, host entry ipoe-x is matched.

  • (B) Matching is based on the MAC-address, circuit-id, and remote-id, in this sequence – As client-b enters with mac-1, cid-1, and rid-1, the match-list is scanned and matched left to right, so host ipoe-z is matched.

  • (C) Matching is based on the MAC-address only – Even though client-c connects with mac-1, cid-1, and rid-1, the system ignores the circuit-id and the remote-id, so the matching host is ipoe-x. Host ipoe-y is never matched using the defined match-list; because it is on the unmatched host list.

  • (D) Matching is based on the MAC-address and the circuit-id, in this sequence – Client-d connects with mac-1 and cid-2, but because the system scans the match-list left through right, the MAC address takes priority over the circuit-id. The matching host is ipoe-x.

Figure 7. Host matching examples 2 (continued)

The host-matching rules, as shown in the preceding figure, are described as follows:

  • (E) For the top part, matching is based on MAC address and the circuit-id, in this sequence – When client-e connects (mac-1, cid-1, and rid-1), the system scans ludb-5-1 and matches host ipoe-x.

  • (E) For the bottom part, matching is based on the circuit-id first, then the MAC address – When client-e connects (mac-1, cid-1, and rid-1), the system scans ludb-5-2 and matches host ipoe-y.

  • (F) Matching is based on MAC address and the circuit-id, in this sequence – When client-f-1 (mac-1) connects, the matching host is ipoe-x because only the MAC address is provided and checked. When client-f-2 (cid-1) connects, the matching host is ipoe-y because only the client-id is provided and checked. When client-f-3 (mac-1, cid-1) connects, the matching host is ipoe-z.

  • (G) Matching is based on the MAC address only – When client-g with mac-2 connects, host default is matched because there is no explicit entry matching mac-2.

As shown in the preceding examples, the system only checks parameters provided by the client in the sequence defined by the match-list. Other parameters are not checked.

Using the LUDB for specific applications

A LUDB, on its own, is not functional. The LUDB must be associated with the intended application. The following tables provide an overview of the LUDB applications and the configuration to associate an LUDB with the application..

Table 2. LUDB applications overview (MD-CLI)

Application

LUDB association (MD-CLI)

Subscriber management authentication

IPoE session

configure service vpls capture-sap ipoe-session user-db

configure service ies subscriber-interface group-interface ipoe-session user-db

configure service vprn subscriber-interface group-interface ipoe-session user-db

Subscriber management authentication

PPPoE session

configure service vpls capture-sap pppoe user-db

configure service ies subscriber-interface group-interface pppoe user-db

configure service vprn subscriber-interface group-interface pppoe user-db

Subscriber management authentication

L2TP LNS PPPoE session

configure router l2tp group lns ppp user-db

configure router l2tp group tunnel lns ppp user-db

configure service vprn l2tp group lns ppp user-db

configure service vprn l2tp group tunnel lns ppp user-db

Subscriber management authentication

GTP session

configure subscriber-mgmt gtp apn-policy apn user-db

Subscriber management authentication

DHCPv4 host

configure service vpls capture-sap dhcp user-db

configure service ies subscriber-interface group-interface ipv4 dhcp user-db

configure service vprn subscriber-interface group-interface ipv4 dhcp user-db

Subscriber management authentication

DHCPv6 host

configure service vpls capture-sap dhcp6 user-db

configure service ies subscriber-interface group-interface ipv6 dhcp6 user-db

configure service vprn subscriber-interface group-interface ipv6 dhcp6 user-db

Subscriber management authentication

Router-Solicit host

configure service vpls capture-sap router-solicit user-db

configure service ies subscriber-interface group-interface ipv6 router-solicit user-db

configure service vprn subscriber-interface group-interface ipv6 router-solicit user-db

DHCP server

configure router dhcp-server dhcpv4 user-db

configure service vprn dhcp-server dhcpv4 user-db

configure router dhcp-server dhcpv6 user-db

configure service vprn dhcp-server dhcpv6 user-db

RADIUS server fallback

configure subscriber-mgmt radius-authentication-policy fallback action user-db

Web authentication protocol (WPP)

configure service ies subscriber-interface group-interface wpp user-db

configure service vprn subscriber-interface group-interface wpp user-db

DHCPv6 relay on regular interfaces: DHCP option insertion

configure service ies interface ipv6 dhcp6 relay user-db

configure service vprn interface ipv6 dhcp6 relay user-db

Table 3. LUDB applications overview (classic CLI)

Application

LUDB association (classic CLI)

Subscriber management authentication

IPoE session

configure service vpls sap ipoe-session user-db

configure service ies subscriber-interface group-interface ipoe-session user-db

configure service vprn subscriber-interface group-interface ipoe-session user-db

Subscriber management authentication

PPPoE session

configure service vpls sap pppoe-user-db

configure service ies subscriber-interface group-interface pppoe user-db

configure service vprn subscriber-interface group-interface pppoe user-db

Subscriber management authentication

L2TP LNS PPPoE session

configure router l2tp group ppp user-db

configure router l2tp group tunnel ppp user-db

configure service vprn l2tp group ppp user-db

configure service vprn l2tp group tunnel ppp user-db

Subscriber management authentication

GTP session

configure subscriber-mgmt gtp apn-policy apn user-db

Subscriber management authentication

DHCPv4 host

configure service vpls sap dhcp-user-db

configure service ies subscriber-interface group-interface dhcp user-db

configure service vprn subscriber-interface group-interface dhcp user-db

Subscriber management authentication

DHCPv6 host

configure service vpls sap dhcp6-user-db

configure service ies subscriber-interface group-interface ipv6 dhcp6 user-db

configure service vprn subscriber-interface group-interface ipv6 dhcp6 user-db

Subscriber management authentication

Router-Solicit host

configure service vpls sap rtr-solicit-user-db

configure service ies subscriber-interface group-interface ipv6 router-solicit user-db

configure service vprn subscriber-interface group-interface ipv6 router-solicit user-db

DHCP server

configure router dhcp local-dhcp-server user-db

configure service vprn dhcp local-dhcp-server user-db

configure router dhcp6 local-dhcp-server user-db

configure service vprn dhcp6 local-dhcp-server user-db

RADIUS server fallback

configure subscriber-mgmt authentication-policy fallback-action user-db

Web authentication protocol (WPP)

configure service ies subscriber-interface group-interface wpp user-db

configure service vprn subscriber-interface group-interface wpp user-db

DHCPv6 relay on regular interfaces: DHCP option insertion

configure service ies interface ipv6 dhcp6-relay user-db

configure service vprn interface ipv6 dhcp6-relay user-db

Configuration notes and LUDB troubleshooting

The following sections describe VLAN range matching and LUDB troubleshooting commands.

VLAN range matching

The following rules are used for VLAN range matching:

  • configure the encap-tag-range match criteria in the match-list. Configure the start and end tags for the VLAN range in the host-identification fields.

  • the start-tag must be lower than the end-tag

  • a match-all (asterisk) must be present in both the start-tag and the end-tag; for example:

    • *.10 - *.100 — the outer tag is ignored

    • 201.* - 299.* — the inner tag is ignored

  • the encapsulation type for start-tag and end-tag must be the same

  • overlapping ranges (while on the same port) are not allowed

Operational and troubleshooting commands

The following tools command manually triggers a host lookup in a LUDB, which is useful to commission, troubleshoot, and verify the configured database without using an external client.

tools perform subscriber-mgmt local-user-db ipoe host-lookup
tools perform subscriber-mgmt local-user-db ppp host-lookup

The following command shows the available LUDBs in the system, including the administrative state and host count. The host count equals the total number of configured IPoE and PPP host entries, regardless of their administrative state. When specifying a LUDB name, the detailed output also includes the IPoE and PPP match and mask types.

show subscriber-mgmt local-user-db

To display all host entries in a specific LUDB, use the following command.

show subscriber-mgmt local-user-db ipoe-all-hosts
show subscriber-mgmt local-user-db ppp-all-hosts

To include the details of a specific LUDB host entry, use the following command.

show subscriber-mgmt local-user-db ipoe-host
show subscriber-mgmt local-user-db ppp-host

To list duplicates and host entries that are not matched in a LUDB, use the following commands.

show subscriber-mgmt local-user-db ipoe-unmatched-hosts
show subscriber-mgmt local-user-db ppp-unmatched-hosts

To find the places where a specific LUDB is applied, use the following command.

show subscriber-mgmt local-user-db association

To enable debugging for all LUDB lookups or for failed LUDB lookups, use the following command.

debug subscriber-mgmt local-user-db detail {all | failed}

Subscriber session authentication in LUDB

See "Local User Database for the Enhanced Subscriber Management" in 7450 ESS, 7750 SR, and 7950 XRS Advanced Configuration Guides Part III for more information about subscriber session authentication in LUDB..

PPPoE authentication configuration examples

In PPPoE access scenarios without access node or with access nodes that do not insert PPPoE vendor specific tags Circuit ID or Remote ID, the user may be required to configure this information in the LUDB so that the Circuit ID and Remote ID access loop information tags can be picked up in the pre-authentication phase and used for RADIUS authentication and reporting in RADIUS accounting messages.

The following is an example of a PPPoE access scenario.

MD-CLI

[ex:/configure subscriber-mgmt]
A:admin@node-2# info
    local-user-db "ludb-1" {
        ppp {
            match-list [user-name]
            host "host-1" {
                admin-state enable
                host-identification {
                    user-name {
                        name "cpe-1@domain1.com"
                    }
                }
                authentication {
                    radius-auth-policy "auth-policy-1"
                }
                access-loop-information {
                    circuit-id {
                        ascii-string "LUDB inserted circuit-id"
                    }
                    remote-id {
                        ascii-string "LUDB inserted remote-id"
                    }
                }
                password {
                    ignore
                }
            }
        }
    }

classic CLI

A:node-2>config>subscr-mgmt# info
----------------------------------------------
        local-user-db "ludb-1" create
             ppp
                match-list username
                host "host-1" create
                    access-loop-information
                        circuit-id string "LUDB inserted circuit-id"
                        remote-id string "LUDB inserted remote-id"
                    exit
                    host-identification
                        username "cpe-1@domain1.com"
                    exit
                    auth-policy "auth-policy-1"
                    password ignore
                    no shutdown
                exit
            exit
        exit
----------------------------------------------

With PPPoE, when the system accesses a LUDB during a discovery phase, a matched host could return a second LUDB via a user database configuration under the LUDB host context. This second database is accessed again during the PAP or CHAP phase.

The following is an example of a PPPoE access scenario with second LUDB.

PPPoE access scenario with second LUDB (MD-CLI)

[ex:/configure subscriber-mgmt]
A:admin@node-2# info
    local-user-db "chap-db" {
        admin-state enable
        ppp {
            match-list [derived-id user-name]
            host "testuser" {
                admin-state enable
                host-identification {
                    derived-id "testuser"
                    user-name {
                        name "testuser"
                    }
                }
                identification {
                    sla-profile-string "sla-2"
                }
                password {
                    chap "cYhRmQYW0kLW3s0LrtEnBjWlAwFa/1Kx" hash2
                }
            }
        }
    }
    
    local-user-db "padi-db" {
        admin-state enable
        ppp {
            match-list [derived-id]
            host "testuser" {
                admin-state enable
                host-identification {
                    derived-id "testuser"
                }
                authentication {
                    user-db "chap-db"
                }
                msap-defaults {
                    service 500
                    group-interface {
                        name "g1"
                    }
                }
            }
        }
    }

PPPoE access scenario with second LUDB (classic CLI)

A:node-2>config>subscr-mgmt# info
----------------------------------------------
        local-user-db "chap-db" create
            ppp
                match-list derived-id username
                host "testuser" create
                    host-identification
                        derived-id "testuser"
                        username "testuser"
                    exit
                    password chap "cYhRmQYW0kLW3s0LrtEnBjWlAwFa/1Kx" hash2
                    identification-strings 254 create
                        sla-profile-string "sla-2"
                    exit
                    no shutdown
                exit
            exit
            no shutdown
        exit
       
        local-user-db "padi-db" create
            ppp
                match-list derived-id
                host "testuser" create
                    host-identification
                        derived-id "testuser"
                    exit
                    msap-defaults
                        group-interface "g1"
                        service 500
                    exit
                    user-db "chap-db"
                    no shutdown
                exit
            exit
            no shutdown
        exit
----------------------------------------------

LUDB lookup for DHCP server leases

The following sections describe DHCPv4 and DHCPv6 server leases.

DHCPv4 server leases

See "Local User Database for DHCPv4 Server" in 7450 ESS, 7750 SR, and 7950 XRS Advanced Configuration Guides Part III for more information about LUDB lookup for DHCPv4 server leases.

DHCPv6 server leases

Assigning a LUDB to a DHCPv6 server allows the server to insert DHCPv6 options for a specific DHCPv6 client or a group of DHCPv6 clients identified by the match criteria in the LUDB.

Note: The LUDB cannot be used to control IP address assignment when associated with a DHCPv6 server.

A local DHCPv6 server can be used for IPoE users and for PPP users. The LUDB lookup for the DHCPv6 server application is always performed in the IPoE section. The DHCPv6 client messages are encapsulated as follows:

  • For IPoE clients, the DHCPv6 client messages received by the DHCPv6 server are encapsulated in Relay-Forward messages by an optional Lightweight DHCPv6 Relay Agent (LDRA) and a DHCPv6 relay agent.

  • For PPPoE clients, the DHCPv6 client messages received by the DHCPv6 server are encapsulated in Relay-Forward messages by a DHCPv6 relay agent after PPPoE de-encapsulation.

The DHCPv6 server can be in the same router as the DHCPv6 relay agent, but that is not a requirement.

LUDB input parameters and match criteria

The following IPoE input command options (host identification fields) and match criteria are supported when accessing an LUDB from a DHCPv6 server.

Table 4. IPoE input parameters and match criteria

Match Criteria

Input Parameter

Host Identification

circuit-id

Support for prefix and suffix string and length mask

interface ID field of DHCPv6 option INTERFACE_ID (18) in the inner Relay-Forward message

circuit-id as ASCII string or hexadecimal string

remote-id

Support for prefix and suffix string and length mask

Concatenation of enterprise number and remote ID fields of DHCPv6 option REMOTE_ID (37) in the inner Relay-Forward message

remote-id as ASCII string or hexadecimal string

dual-stack-remote-id

Support for prefix and suffix string and length mask

remote ID field of DHCPv6 option REMOTE_ID (37) in the inner Relay-Forward message. The enterprise number field is ignored.

remote-id as ASCII string or hexadecimal string

duid-en

Support for prefix and suffix length mask

Concatenation of enterprise number and identifier fields of DHCPv6 option CLIENTID (1) with DUID type = 2 (assigned by vendor based on enterprise number) in the DHCPv6 client message

duid-en as hexadecimal string

duid-ll-llt

Support for prefix and suffix length mask (number of MAC address bits to exclude from the match)

link layer address field of DHCPv6 option CLIENTID (1) with DUID type = 3 (based on link-layer address) or DUID type = 1 (based on link-layer address plus time) and hardware type = 1 (Ethernet) in the DHCPv6 client message. For DUID type = 1, the time field is ignored

duid-ll-llt as non-zero unicast MAC address

The LUDB lookup process can match up to four IPoE match-criteria, as defined by the IPoE match-list. Match criteria not listed in the previous table are ignored for a LUDB host lookup for a DHCPv6 server application.

The default host is matched when no host is found based on configured host-identification parameters.

LUDB output parameters

The LUDB associated with the DHCPv6 server can provide the options listed in the following table and these options are then inserted in the DHCPv6 server message sent to the client.

Table 5. Supported output parameters for LUDB associated with a DHCPv6 server

DHCPv6 option

Format

boot-file-url

boot-file-url field of DHCPv6 option BOOTFILE_URL (59)

ASCII string (maximum length 127 characters)

boot-file-param

concatenation of param-len n and parameter n fields of DHCPv6 option BOOTFILE_PARAM (60)

Hexadecimal string (maximum length 127 bytes)

dns-server

DNS recursive name server fields of DHCPv6 option DNS_SERVERS (23)

Up to four IPv6 addresses or hex-string of exact 16, 32, 48, or 64 bytes in length

When the same DHCPv6 option is configured in both the LUDB associated with a DHCPv6 server and in the DHCPv6 server, the option obtained from an LUDB host lookup has precedence over the same option configured in the DHCPv6 server.

Parameters and options configured in the host entry definition and not listed in the previous table are silently ignored for a LUDB host lookup for a DHCPv6 server application.

Configuration example

This section provides LUDB configuration examples.

Associate a LUDB with a DHCPv6 server (MD-CLI)
[ex:/configure router "Base" dhcp-server]
A:admin@node-2# info
    dhcpv6 "dhcpv6-s1" {
        user-db "ludb-1"
    }
Associate a LUDB with a DHCPv6 server (classic CLI)
A:node-2>config>router>dhcp6# info
----------------------------------------------
            local-dhcp-server "dhcpv6-s1" create
                shutdown
                user-db "ludb-1"
            exit
----------------------------------------------
LUDB configuration (MD-CLI)
[ex:/configure subscriber-mgmt]
A:admin@node-2# info
    local-user-db "ludb-1" {
        admin-state enable
        ipoe {
            match-list [duid-ll-llt duid-en]
            mask type duid-ll-llt {
                suffix {
                    length 8
                }
            }
            host "default" {
                admin-state enable
                ipv6 {
                    option boot-file-url {
                        ascii-string "http://10.1.1.1:80/ztp/default.py"
                    }
                }
            }
            host "group-1" {
                admin-state enable
                host-identification {
                    duid-ll-llt 00:00:5e:00:53:00
                }
                ipv6 {
                    option boot-file-url {
                        ascii-string "http://10.1.1.1:80/ztp/group-1.py"
                    }
                }
            }
        }   
LUDB configuration (classic CLI)
A:node-2>config>subscr-mgmt# info
----------------------------------------------     
        local-user-db "ludb-1" create
            ipoe
                match-list duid-ll-llt duid-en
                mask type duid-ll-llt suffix-length 8
                host "default" create
                    options6
                        boot-file-url "http://10.1.1.1:80/ztp/default.py"
                    exit
                    no shutdown
                exit
                host "group-1" create
                    host-identification
                        duid-ll-llt 00:00:5e:00:53:00
                    exit
                    options6
                        boot-file-url "http://10.1.1.1:80/ztp/group-1.py"
                    exit
                    no shutdown
                exit
            exit
            no shutdown
        exit      
----------------------------------------------

The following actions occur when DHCPv6 server “dhcpv6-s1” performs a lookup in the LUDB “ludb-1”:

  • DHCPv6 clients with Client ID option (1) DUID type equal to 1 or 3, hardware-type equal to 1 (Ethernet), and hardware address in the range 00:00:5e:00:53:00 through 00:00:5e:00:53:FF match host “group-1”. DHCPv6 option 59 BOOTFILE_URL with URL “http://10.1.1.1:80/ztp/group-1.py” are added to the DHCPv6 server message.

    The hardware address range match is achieved with a duid-ll-llt suffix length mask of 8 bits. The last 8 bits of the hardware address are masked (set to zero) when performing the lookup. The corresponding host-identification duid-ll-llt value must be configured with the last 8 bits equal to zero.

  • All other DHCPv6 clients that match the “default” host and DHCPv6 option 59 BOOTFILE_URL with URL “http://10.1.1.1:80/ztp/default.py” are added to the DHCPv6 server message.

LUDB lookup for DHCPv6 relay on IES or VPRN interfaces

A DHCPv6 relay can be configured with a LUDB on IES and VPRN IP interfaces (that is no subscriber interfaces). The LUDB can insert options in the DHCPv6 message to the server (to-server-options) or to the client (to-client-options). The IES or VPRN interface must have lease-populate enabled and there should be no other Relay Agent between the DHCPv6 client and the DHCPv6 Relay when using the IPv6 to-server-options in the associated LUDB. To enable lease-populate, use the following commands:

  • MD-CLI

    configure service ies interface ipv6 dhcp6 relay lease-populate
    configure service vprn interface ipv6 dhcp6 relay lease-populate
    
  • classic CLI

    configure service ies interface ipv6 dhcp6-relay lease-populate
    configure service vprn interface ipv6 dhcp6-relay lease-populate

See DHCPv6 to server option for more information.