23-DHCP Operation

Download

Table of Contents

Chapter 1 DHCP Overview.. 1-1

1.1 Introduction to DHCP. 1-1

1.2 DHCP IP Address Assignment 1-1

1.2.1 IP Address Assignment Policy. 1-1

1.2.2 Obtaining IP Addresses Dynamically. 1-2

1.2.3 Updating IP Address Lease. 1-2

1.3 DHCP Packet Format 1-3

1.4 DHCP Packet Processing Modes. 1-4

1.5 Protocol Specification. 1-5

Chapter 2 DHCP Server Configuration. 2-1

2.1 Introduction to DHCP Server 2-1

2.1.1 Usage of DHCP Server 2-1

2.1.2 DHCP Address Pool 2-1

2.1.3 DHCP IP Address Preferences. 2-2

2.2 Global Address Pool-Based DHCP Server Configuration. 2-3

2.2.1 Configuration Overview. 2-3

2.2.2 Enabling DHCP. 2-3

2.2.3 Configuring Global Address Pool Mode on Interface(s) 2-4

2.2.4 Configuring How to Assign IP Addresses in a Global Address Pool 2-4

2.2.5 Configuring DNS Services for the DHCP Server 2-7

2.2.6 Configuring NetBIOS Services for the DHCP Server 2-8

2.2.7 Customizing DHCP Service. 2-9

2.2.8 Configuring Gateway Addresses for DHCP Clients. 2-10

2.3 Interface Address Pool-based DHCP Server Configuration. 2-10

2.3.1 Configuration Overview. 2-11

2.3.2 Enabling DHCP. 2-12

2.3.3 Configuring to Assign the IP Addresses of Interface Address Pools to DHCP Clients. 2-12

2.3.4 Configuring to Assign IP Addresses of DHCP Address Pools to DHCP Clients. 2-13

2.3.5 Configuring DNS Services for the DHCP Server 2-15

2.3.6 Configuring NetBIOS Services for DHCP Clients. 2-16

2.3.7 Customizing DHCP Service. 2-17

2.4 DHCP Security Configuration. 2-18

2.4.1 Prerequisites. 2-18

2.4.2 Configuring Private DHCP Server Detecting. 2-18

2.4.3 Configuring IP Address Detecting. 2-19

2.5 Displaying and Debugging a DHCP Server 2-19

2.6 DHCP Server Configuration Example. 2-21

2.7 Troubleshooting a DHCP Server 2-23

Chapter 3 DHCP Relay Configuration. 3-1

3.1 Introduction to DHCP Relay. 3-1

3.1.1 Usage of DHCP Relay. 3-1

3.1.2 DHCP Relay Fundamentals. 3-1

3.1.3 Option 82 Supporting. 3-2

3.2 DHCP Relay Configuration. 3-4

3.2.1 DHCP Relay Configuration Tasks. 3-4

3.2.2 Enabling DHCP. 3-4

3.2.3 Configuring an Interface to Operate in DHCP Relay Mode. 3-4

3.2.4 Configuring DHCP Relay Security. 3-5

3.2.5 Configuring Option 82 Supporting. 3-7

3.3 Displaying and Debugging DHCP Relay. 3-8

3.4 DHCP Relay Configuration Example. 3-9

3.5 Troubleshooting DHCP Relay. 3-10

Chapter 4 DHCP Snooping Configuration. 4-1

4.1 DHCP-Snooping Configuration. 4-1

4.1.1 Introduction to DHCP Snooping. 4-1

4.1.2 DHCP Snooping Configuration. 4-2

4.2 DHCP-Snooping Option 82. 4-3

4.2.1 Overview of DHCP-Snooping Option 82. 4-3

4.2.2 Enabling DHCP-Snooping Option 82. 4-4

4.3 Displaying and Debugging DHCP-Snooping. 4-5

4.4 Configuration Example. 4-6

 


Chapter 1  DHCP Overview

1.1  Introduction to DHCP

With networks getting larger in size and more complicated in structure, lack of available IP addresses becomes the common situation the network administrators have to face, and network configuration becomes a tough task for the network administrators. With the emerging of wireless networks and the using of laptops, the position change of hosts and frequent change of IP addresses also require new technology. Dynamic host configuration protocol (DHCP) is developed in this background.

DHCP adopts a client/server model, where DHCP clients send requests to DHCP servers for configuration parameters; and the DHCP servers return the corresponding configuration information such as IP addresses to configure IP addresses dynamically.

A typical DHCP application includes one DHCP server and multiple clients (such as PCs and laptops), as shown in Figure 1-1.

Figure 1-1 Typical DHCP application

1.2  DHCP IP Address Assignment

1.2.1  IP Address Assignment Policy

Currently, DHCP provides the following three IP address assignment policies to meet the requirements of different clients:

l           Manual assignment. The administrator statically binds IP addresses to few clients with special uses (such as WWW server). Then the DHCP server assigns these fixed IP addresses to the clients.

l           Automatic assignment. The DHCP server assigns IP addresses to DHCP clients. The IP addresses will be occupied by the DHCP clients permanently.

l           Dynamic assignment. The DHCP server assigns IP addresses to DHCP clients for predetermined period of time. In this case, a DHCP client must apply for an IP address at the expiration of the period. This policy applies to most clients.

1.2.2  Obtaining IP Addresses Dynamically

A DHCP client undergoes the following four phases to dynamically obtain an IP address from a DHCP server:

1)         Discover: In this phase, the DHCP client tries to find a DHCP server by broadcasting a DHCP-DISCOVER packet.

2)         Offer: In this phase, the DHCP server offers an IP address. Each DHCP server that receives the DHCP-DISCOVER packet chooses an unassigned IP address from the address pool based on the IP address assignment policy and then sends a DHCP-OFFER packet (which carries the IP address and other configuration information) to the DHCP client. The transmission mode depends on the flag field in the DHCP-DISCOVER packet. For details, see section 1.3  DHCP Packet Format”.

3)         Select: In this phase, the DHCP client selects an IP address. If more than one DHCP server sends DHCP-OFFER packets to the DHCP client, the DHCP client only accepts the DHCP-OFFER packet that first arrives, and then broadcasts a DHCP-REQUEST packet containing the assigned IP address carried in the DHCP-OFFER packet.

4)         Acknowledge: Upon receiving the DHCP-REQUEST packet, the DHCP server returns a DHCP-ACK packet to the DHCP client to confirm the assignment of the IP address to the client, or returns a DHCP-NAK packet to refuse the assignment of the IP address to the client. When the client receives the DHCP-ACK packet, it broadcasts an ARP packet with the assigned IP address as the destination address to detect the assigned IP address, and uses the IP address only if it does not receive any response within a specified period.

 

&        Note:

The IP addresses offered by other DHCP servers (if any) are not used by the DHCP client and are still available to other clients.

 

1.2.3  Updating IP Address Lease

After a DHCP server dynamically assigns an IP address to a DHCP client, the IP address keeps valid only within a specified lease time and will be reclaimed by the DHCP server when the lease expires. If the DHCP client wants to use the IP address for a longer time, it must update the IP lease.

By default, a DHCP client updates its IP address lease automatically by unicasting a DHCP-REQUEST packet to the DHCP server when half of the lease time elapses. The DHCP server responds with a DHCP-ACK packet to notify the DHCP client of a new IP lease if the server can assign the same IP address to the client. Otherwise, the DHCP server responds with a DHCP-NAK packet to notify the DHCP client that the IP address will be reclaimed when the lease time expires.

If the DHCP client fails to update its IP address lease when half of the lease time elapses, it will update its IP address lease by broadcasting a DHCP-REQUEST packet to the DHCP server again when seven-eighths of the lease time elapses. The DHCP server performs the same operations as those described in the previous section.

1.3  DHCP Packet Format

DHCP has eight types of packets. They have the same format, but the values of some fields in the packets are different. The DHCP packet format is based on that of the BOOTP packets. The following table describes the packet format (the number in the brackets indicates the field length, in bytes):

op(1)

htype (1)

hlen(1)

hops(1)

xid(4)

secs(2)

flags(2)

ciaddr(4)

yiaddr(4)

siaddr(4)

giaddr(4)

chaddr(16)

sname(64)

file(128)

option(variable)

Figure 1-2 Format of DHCP packets

The field meanings are illustrated as follows:

l           op: Operation types of DHCP packets: 1 for request packets and 2 for response packets.

l           htype, hlen: Hardware address type and length of the DHCP client.

l           hops: Number of DHCP relays which a DHCP packet passes. For each DHCP relay that the DHCP request packet passes, the field value increases by 1.

l           xid: Random number that the client selects when it initiates a request. The number is used to identify an address-requesting process.

l           secs: Elapsed time after the DHCP client initiates a DHCP request.

l           flags: The first bit is the broadcast response flag bit. It is used to identify that the DHCP response packet is sent in the unicast or broadcast mode. Other bits are reserved.

l           ciaddr: IP address of a DHCP client.

l           yiaddr: IP address that the DHCP server assigns to a client.

l           siaddr: IP address of the DHCP server.

l           giaddr: IP address of the first DHCP relay that the DHCP client passes after it sent the request packet.

l           chaddr: Hardware address of the DHCP client.

l           sname: Name of the DHCP server.

l           file: Name of the start configuration file that the DHCP server specifies for the DHCP client.

l           option: Optional variable-length fields, including packet type, valid lease time, IP address of a DNS server, and IP address of the WINS server.

1.4  DHCP Packet Processing Modes

After the DHCP server is enabled on a device, the device processes the DHCP packet received from a DHCP client in one of the following three modes depending on your configuration:

l           Global address pool: In response to the DHCP packets received from DHCP clients, the DHCP server picks IP addresses from its global address pools and assigns them to the DHCP clients.

l           Interface address pool: In response to the DHCP packets received from DHCP clients, the DHCP server picks IP addresses from the interface address pools and assigns them to the DHCP clients. If there is no available IP address in the interface address pools, the DHCP server picks IP addresses from its global address pool that contains the interface address pool segment and assigns them to the DHCP clients.

l           Trunk: DHCP packets received from DHCP clients are forwarded to an external DHCP server, which assigns IP addresses to the DHCP clients.

You can specify the mode to process DHCP packets. For the configuration of the first two modes, see Chapter 2  DHCP Server Configuration. For the configuration of the trunk mode, see Chapter 3  DHCP Relay Configuration.

One interface only corresponds to one mode. In this case, the new configuration overwrites the previous one.

1.5  Protocol Specification

Protocol specifications related to DHCP include:

l           RFC2131: Dynamic Host Configuration Protocol

l           RFC2132: DHCP Options and BOOTP Vendor Extensions

l           RFC1542: Clarifications and Extensions for the Bootstrap Protocol

 


Chapter 2  DHCP Server Configuration

2.1  Introduction to DHCP Server

2.1.1  Usage of DHCP Server

Generally, DHCP servers are used in the following networks to assign IP addresses:

l           Large-sized networks, where manual configuration method bears heavy load and is difficult to manage the whole network in centralized way.

l           Networks where the number of available IP addresses is less than that of the hosts. In this type of networks, IP addresses are not enough for all the hosts to obtain a fixed IP address, and the number of on-line users is limited (such is the case in an ISP network). In these networks, a great number of hosts must dynamically obtain IP addresses through DHCP.

l           Networks where only a few hosts need fixed IP addresses and most hosts do not need fixed IP addresses.

2.1.2  DHCP Address Pool

A DHCP address pool holds the IP addresses to be assigned to DHCP clients. When a DHCP server receives a DHCP request from a DHCP client, it selects an address pool depending on the configuration, picks an IP address from the pool and sends the IP address and other related parameters (such as the IP address of the DNS server, and the lease time of the IP address) to the DHCP client.

I. Types of address pool

The address pools of a DHCP server fall into two types: global address pool and interface address pool.

l           A global address pool is created by executing the dhcp server ip-pool command in system view. It is valid on the current device.

l           If an interface is configured with a valid unicast IP address, you can create an interface-based address pool for the interface by executing the dhcp select interface command in interface view. The IP addresses an interface address pool holds belong to the network segment the interface resides in and are available to the interface only.

II. The structure of an address pool

The address pools of a DHCP server are hierarchically organized in a tree-like structure. The root holds the IP address of the network segment, the branches hold the subnet IP addresses, and the leaves holds the IP addresses that are manually bound to specific clients. The address pools that are of the same level are sorted by their configuration precedence order. Such a structure enables configurations to be inherited. That is, the configurations of the network segment can be inherited by its subnets, whose configurations in turn can be inherited by their client address. So, for the parameters that are common to the whole network segment or some subnets (such as domain name), you just need to configure them on the network segment or the corresponding subnets. The following is the details of configuration inheritance.

l           A newly created child address pool inherits the configurations of its parent address pool.

l           For an existing parent-child address pool pair, when you performs a new configuration on the parent address pool:

l           The child address pool inherits the new configuration if there is no corresponding configuration on the child address pool.

l           The child address pool does not inherit the new configuration if there is already a corresponding configuration on the child address pool.

2.1.3  DHCP IP Address Preferences

Interfaces of the DHCP server can work in the global address pool mode or in the interface address pool mode. If the DHCP server works in the interface address pool mode, it picks IP addresses from the interface address pools and assigns them to the DHCP clients. If there is no available IP address in the interface address pools, the DHCP server picks IP addresses from its global address pool that contains the interface address pool segment and assigns them to the DHCP clients.

A DHCP server assigns IP addresses in interface address pools or global address pools to DHCP clients in the following sequence:

l           IP addresses that are statically bound to the MAC addresses of DHCP clients

l           IP addresses that are ever used by DHCP clients. That is, those in the assigned leases recorded by the DHCP server. If there is no record in the leases and the DHCP-DISCOVER packets sent by DHCP clients contain option 50 fields, the DHCP server assigns the IP address requested by option 50.

l           The first IP address found among the available IP addresses in the DHCP address pool.

1)         If no IP address is available, the DHCP server queries lease-expired and conflicted IP addresses. If the DHCP server finds such IP addresses, it assigns them; otherwise the DHCP server does not assign IP addresses.

2.2  Global Address Pool-Based DHCP Server Configuration

2.2.1  Configuration Overview

Table 2-1 Configure global address pool-based DHCP server

Configuration task

Remarks

Section

Enable DHCP

Required

2.2.2  Enabling DHCP

Configure global address pool mode on interface(s)

Optional

2.2.3  Configuring Global Address Pool Mode on Interface(s)

Configure the interface(s) to operate in global address pool mode

Configure to bind IP address statically to a DHCP client

One among these two options is required. Only one mode can be selected for the same global address pool.

2.2.4  Configuring How to Assign IP Addresses in a Global Address Pool

Configure to assign IP addresses dynamically

Configure DNS services for the DHCP server

Optional

2.2.5  Configuring DNS Services for the DHCP

Configure NetBIOS services for the DHCP server

Optional

2.2.6  Configuring NetBIOS Services for the DHCP Server

Customize DHCP service

Optional

2.2.7  Customizing DHCP Service

Configure the gateway IP address for DHCP clients

Optional

2.2.8  Configuring Gateway Addresses for DHCP Clients

 

2.2.2  Enabling DHCP

You need to enable DHCP before performing other DHCP-related configurations, which takes effect only after DHCP is enabled.

Table 2-2 Enable DHCP

Operation

Command

Description

Enter system view

system-view

Enable DHCP

dhcp enable

Required

By default, DHCP is enabled

 

2.2.3  Configuring Global Address Pool Mode on Interface(s)

You can configure the global address pool mode on the specified or all interfaces of a DHCP server. After that, when the DHCP server receives DHCP packets from DHCP clients through these interfaces, it assigns IP addresses in the global address pool to the DHCP clients.

Table 2-3 Configure the global address pool mode on interface(s)

Operation

Command

Description

Enter system view

system-view

Configure the specified interface(s) or all interfaces to operate in global address pool mode

Configure the current interface

interface interface-type interface-number

Optional

By default, a DHCP server assigns the IP addresses of the global address pool to DHCP clients in response to DHCP packets received from DHCP clients

dhcp select global

quit

Configure multiple interfaces in system view

dhcp select global { interface interface-type interface-number [ to interface-type interface-number ] | all }

 

2.2.4  Configuring How to Assign IP Addresses in a Global Address Pool

You can specify to bind an IP address in a global address pool statically to a DHCP client or assign IP addresses in the pool dynamically to DHCP clients as needed. In the global address pool, you can bind an IP address statically to a DHCP client and assign other IP addresses in the pool dynamically to DHCP clients.

For dynamic IP address assigning, you need to specify the range of the IP addresses to be dynamically assigned. But for static IP address binding, you can consider an IP address statically bound to a DHCP client coming from a special DHCP address pool that contains only one IP address.

I. Configuring to assign IP addresses by static binding

Some DHCP clients, such as WWW servers, need fixed IP addresses. This can be achieved by binding IP addresses to the MAC addresses of these DHCP clients. When such a DHCP client applies for an IP address, the DHCP server searches for the IP address corresponding to the MAC address of the DHCP client and assigns the IP address to the DHCP client.

Currently, only one IP address in a global DHCP address pool can be statically bound to a MAC address.

Table 2-4 Configure to assign IP addresses by static binding

Operation

Command

Description

Enter system view

System-view

Create a DHCP address pool and enter DHCP address pool view

dhcp server ip-pool pool-name

Required

By default, no global DHCP address pool is created

Configure an IP address to be statically bound

static-bind ip-address ip-address [ mask mask ]

Required

By default, no IP address is statically bound

Configure a client MAC address to which an IP address is to be statically bound

static-bind mac-address mac-address

Required

By default, no MAC address to which an IP address is to be statically bound is configured

 

 

&  Note:

l      The static-bind ip-address command and the static-bind mac-address command must be coupled.

l      In the same global DHCP address pool, if the static-bind ip-address command or the static-bind mac-address command is executed repeatedly, the new configuration overwrites the previous one.

l      The IP address to be statically bound cannot be an interface IP address of the DHCP server; otherwise static binding does not take effect.

l      A client can permanently use the statically-bound IP address that it has obtained. The IP address is not limited by the lease time of the IP addresses in the address pool.

 

II. Configuring to assign IP addresses dynamically

IP addresses dynamically assigned to DHCP clients (including those that are permanently leased and those that are temporarily leased) belong to addresses segments that are previously specified. Currently, an address pool can contain only one address segment, whose ranges are determined by the subnet mask.

To avoid IP address conflicts, the IP addresses to be dynamically assigned to DHCP clients are those that are not occupied by specific network devices (such as gateways and FTP servers).

The lease time can differ with address pools. But that of the IP addresses of the same address pool are the same. Lease time is not inherited, that is to say, the lease time of a child address pool is not affected by the configuration of the parent address pool.

Table 2-5 Configure to assign IP addresses dynamically

Operation

Command

Description

Enter system view

system-view

Create a DHCP address pool and enter DHCP address pool view

dhcp server ip-pool pool-name

Required

By default, no DHCP address pool is created

Set the IP address segment whose IP address are to be assigned dynamically

network ip-address [ mask mask ]

Required

By default, no IP address segment is set. That is, no IP address is available for being assigned

Configure the lease time

expired { day day [ hour hour [ minute minute ] ] | unlimited }

Optional

The default lease time is one day

Return to system view

Quit

Specify the IP addresses that are not dynamically assigned

dhcp server forbidden-ip low-ip-address [ high-ip-address ]

Optional

By default, all IP addresses in a DHCP address pool are available for being dynamically assigned

 

&  Note:

l      In the same DHCP global address pool, the network command can be executed repeatedly. In this case, the new configuration overwrites the previous one.

l      The dhcp server forbidden-ip command can be executed repeatedly. That is, you can repeatedly configure IP addresses that are not dynamically assigned to DHCP clients.

 

2.2.5  Configuring DNS Services for the DHCP Server

If a host accesses the Internet through domain names, DNS is needed to translate the domain names into the corresponding IP addresses. To enable DHCP clients to access the Internet through domain names, a DHCP server is required to provide DNS server addresses while assigning IP addresses to DHCP clients. Currently, you can configure up to eight DNS server addresses for a DHCP address pool.

You can configure domain names to be used by DHCP clients for address pools. After you do this, the DHCP server provides the domain names to the DHCP clients as well while the former assigns IP addresses to the DHCP clients.

Table 2-6 Configure DNS services for the DHCP server

Operation

Command

Description

Enter system view

system-view

Create a DHCP address pool and enter DHCP address pool view

dhcp server ip-pool pool-name

Required

By default, no global DHCP address pool is created

Configure a domain name for DHCP clients

domain-name domain-name

Required

By default, no domain name is configured for DHCP clients

Configure DNS server addresses for DHCP clients

dns-list ip-address&<1-8>

Required

By default, no DNS server address is configured

 

2.2.6  Configuring NetBIOS Services for the DHCP Server

For Microsoft Windows-based DHCP clients that communicate through NetBIOS protocol, the host name-to-IP address translation is carried out by Windows internet naming service (WINS) servers. So you need to perform WINS-related configuration for most Windows-based hosts. Currently, you can configure up to eight WINS addresses for a DHCP address pool.

Host name-to-IP address mappings are needed for DHCP clients communicating through NetBIOS protocol. According to the way to establish the mapping, NetBIOS nodes fall into the following four categories:

l           B-node. Nodes of this type establish their mappings through broadcasting (The character b stands for the word broadcast). The source node obtains the IP address of the destination node by sending the broadcast packet containing the host name of the destination node. After receiving the broadcast packet, the destination node returns its IP address to the source node.

l           P-node. Nodes of this type establish their mappings by sending unicast packets to WINS servers. (The character p stands for peer-to-peer). The source node sends the unicast packet to the WINS server. After receiving the unicast packet, the WINS server returns the IP address corresponding to the destination node name to the source node.

l           M-node. Nodes of this type are p-nodes mixed with broadcasting features (The character m stands for the word mixed), that is to say, this type of nodes obtain mappings by sending broadcast packets first. If they fail to obtain mappings, they send unicast packets to the WINS server to obtain mappings.

l           H-node. Nodes of this type are b-nodes mixed with peer-to-peer features. (The character h stands for the word hybrid), that is to say, this type of nodes obtain mappings by sending unicast packets to WINS servers. If they fail to obtain mappings, they send broadcast packets to obtain mappings.

Table 2-7 Configure NetBIOS services for the DHCP server

Operation

Command

Description

Enter system view

system-view

Create a DHCP address pool and enter DHCP address pool view

dhcp server ip-pool pool-name

Required

By default, no global DHCP address pool is created

Configure WINS server addresses for DHCP clients