DHCP on Cisco IOS

Dynamic Host Configuration Protocol

4.5.c i Client, server, relay

DHCP server

// Graphic missing - Coming soon //

General information on “DHCP server”:

How “DHCP server” works:

“DHCP server” CLI configuration commands:

## Configuring a DHCP server address pool
Router(config)# ip dhcp pool <name>
Router(dhcp-config)# network <network>
Router(dhcp-config)# dns-server <ip-addr>
Router(dhcp-config)# default-router <ip-addr>

## Defining IP addresses to be excluded from being leased
Router(config)# ip dhcp excluded-address <ip-addr>

“DHCP server” CLI show commands:

## Showing configured DHCPv4 pools
Router# show ip dhcp pool

## Showing DHCPv4-leased IP addresses
Router# show ip dhcp binding

DHCP relay

General information on “DHCP relay”:

How “DHCP relay” works:

Duplicate DHCP relay traffic with HSRP:

“DHCP relay” CLI configuration commands:

## Configuring a DHCP relay (aka IP helper address) on an interface
Router(config)# interface <if>
Router(config-if)# ip helper-address <ip-addr>

## Avoiding duplicate DHCP relay traffic with HSRP
Router(config)# interface <if>
Router(config-if)# ip helper-address <ip-addr> redundancy <fhrp-group-name>

4.5.c ii Options

General information on “DHCP options”:

Useful DHCP options:

4.5.c DHCPv4 address reservation (not on blueprint)

General information on “DHCPv4 address reservation”:

“DHCPv4 address reservation” CLI configuration commands:

## Configuring a DHCPv4 address reservation
Router(config)# ip dhcp pool <name>
Router(dhcp-config)# host <ip> <mask>
Router(dhcp-config)# client-identifier <identifier>
Router(dhcp-config)# default-router <ip-addr>

## Configuring a router interface to use the MAC address as identifier
Router(config)# interface <if>
Router(config-if)# ip address dhcp client-id ethernet <if>

4.5.c iii SLAAC/DHCPv6 interaction

General information on “SLAAC/DHCPv6 interaction”:

4.5.c iv Stateful, stateless DHCPv6

Stateful DHCPv6

General information on “Stateful DHCPv6”:

Configuration steps:

  1. Configure a DHCPv6 pool and options
  2. Apply DHCPv6 pool to an interface

“Stateful DHCPv6” CLI configuration commands:

## Configuring a DHCPv6 address pool
Router(config)# ipv6 dhcp pool <pool-name>
Router(config-dhcpv6)# address prefix <prefix/length> lifetime <valid> <preferred>
Router(config-dhcpv6)# dns-server <ipv6-addr>
Router(config-dhcpv6)# domain-name <domain>

## Attaching DHCPv6 address pool to an interface and make it stateful
Router(config)# interface <if>
Router(config-if)# ipv6 nd managed-config-flag
Router(config-if)# ipv6 nd prefix <prefix/length> no-autoconfig
Router(config-if)# ipv6 dhcp server <pool-name> [rapid-commit]

“Stateful DHCPv6” CLI show commands:

## Showing configured DHCPv6 pools
Router# show ipv6 dhcp pool

## Showing DHCPv6-leased IP addresses and/or prefixes
Router# show ipv6 dhcp binding

Stateless DHCPv6

General information on “Stateless DHCPv6”:

Configuration steps:

  1. Configure a DHCPv6 pool and options
  2. Apply DHCPv6 pool to an interface

“Stateless DHCPv6” CLI configuration commands:

## Configuring a stateless DHCPv6 address pool
Router(config)# ipv6 dhcp pool <pool-name>
Router(config-dhcpv6)# dns-server <ipv6-addr>
Router(config-dhcpv6)# domain-name <domain>

## Attaching DHCPv6 address pool to an interface and make it stateless
Router(config)# interface <if>
Router(config-if)# ipv6 nd other-config-flag
Router(config-if)# ipv6 dhcp server <pool-name> [rapid-commit]

“Stateless DHCPv6” CLI show commands:

## Showing configured DHCPv6 pools
Router# show ipv6 dhcp pool

## Showing DHCPv6-leased IP addresses and/or prefixes
Router# show ipv6 dhcp binding

DHCPv6 relay (not on blueprint)

General information on “DHCPv6 relay”:

“DHCPv6 relay” CLI configuration commands:

## Configuring a DHCPv6 relay on an interface (where DHCP REQUESTS are incoming)
Router(config)# interface <if>
Router(config-if)# ipv6 dhcp relay destination <ipv6-addr> <if>

DHCPv6 protocol operations (not on blueprint)

// Graphic missing - Coming soon //

General information about “DHCPv6 protocol operations (not on blueprint)":

4.5.c v DHCPv6 Prefix Delegation

General information on “DHCPv6 Prefix Delegation”:

Configuration steps:

  1. ISP: Define a local IPv6 prefix pool
  2. ISP: Configure a DHCPv6 pool pointing to the local IPv6 prefix pool
  3. ISP: Assign DHCPv6 pool to customer facing interface
  4. Customer: Configure interface towards the ISP w/ PD option
  5. Customer: Configure interface towards the local hosts

“DHCPv6 Prefix Delegation” CLI configuration commands:

## ISP - Defining a local IPv6 prefix pool
Router(config)# ipv6 local pool [NAME] <prefix> <length-to-assign>

## ISP - Configuring a DHCPv6 pool pointing to the local IPv6 prefix pool
Router(config)# ipv6 dhcp pool <pool-name>
Router(config-dhcpv6)# prefix-delegation pool <pool-name>

## ISP - Attaching the DHCPv6 pool to an interface
Router(config)# interface <interface>
Router(config-if)# ipv6 dhcp server <pool-name> [rapid-commit]

## Customer - Configuring interface towards the ISP
Router(config)# interface <interface>
Router(config-if)# ipv6 address autoconfig default
Router(config-if)# ipv6 dhcp client pd [PREFIX_NAME]

## Customer - Configuring interface towards the local hosts
Router(config)# interface <interface>
Router(config-if)# ipv6 address [PREFIX_NAME] <identifier>

“DHCPv6 Prefix Delegation” CLI show commands:

## ISP: Showing local IPv6 pools to be used for Prefix Delegation
Router# show ipv6 local pool

## Showing DHCPv6-leased IP addresses and/or prefixes
Router# show ipv6 dhcp binding

## Customer: Showing IPv6 prefix acquired/assigned from the ISP via Prefix Delegation
Router# show ipv6 general-prefix

## Showing DHCPv6-enabled interfaces
Router# show ipv6 dhcp interface