DHCP host poolとは、client毎に一意なIPアドレスを割り当てる設定です。clientの識別にはDHCP client-idを用い、デフォルト設定のidはホスト名やMACアドレスから自動生成されます。
Client identifier
設定方法
DHCP discoverなどのメッセージには、clientを識別するために、client identifierというフィールドが設けられています。client identifierは以下のコマンドで明示的な指定が可能です。
Router(config-if)# ip address dhcp [ client-id <interface> ]
デフォルト設定
client identifierを明示的に指定しない場合は、IOSはMACアドレスとinterface名によってclient identifierを自動生成します。client ideltifierは以下のように”show dhcp lease”コマンドで確認する事ができます。この場合は、cisco-1234.5678.9abc-Et0/0がclient identifierです。
R1(config)#interface Ethernet 0/0 R1(config-if)#mac-address 1234.5678.9abc R1(config-if)#ip address dhcp R1(config-if)#^Z R1# *Mar 1 00:02:02.303: %SYS-5-CONFIG_I: Configured from console by console R1# R1#show dhcp lease Temp IP addr: 0.0.0.0 for peer on Interface: Ethernet0/0 Temp sub net mask: 0.0.0.0 DHCP Lease server: 0.0.0.0, state: 9 Purging DHCP transaction id: 2181 Lease: 0 secs, Renewal: 0 secs, Rebind: 0 secs Next timer fires after: 00:00:31 Retry count: 0 Client-ID: cisco-1234.5678.9abc-Et0/0 Client-ID hex dump: 636973636F2D313233342E353637382E 396162632D4574302F30 Hostname: R1 R1#
MACアドレスに基づく設定
以下のようにclient-idを用いた明示的な設定をすると、MACアドレスに基づいたclient identifierを設定する事が可能です。
R1(config)#interface Ethernet 0/1 R1(config-if)#mac-address 0000.1234.5678 R1(config-if)#ip address dhcp client-id Ethernet0/1 R1(config-if)#^Z R1# *Mar 1 00:03:06.217: %SYS-5-CONFIG_I: Configured from console by console R1# R1#show dhcp lease Temp IP addr: 0.0.0.0 for peer on Interface: Ethernet0/1 Temp sub net mask: 0.0.0.0 DHCP Lease server: 0.0.0.0, state: 9 Purging DHCP transaction id: 2182 Lease: 0 secs, Renewal: 0 secs, Rebind: 0 secs Next timer fires after: 00:00:31 Retry count: 0 Client-ID: 1234.5678.9abc Client-ID hex dump: 000012345678 Hostname: R1 R1#
DHCP Host Pool
設定方法
以下のようにhostとclient-idを指定すると、client identifierに基づいたアドレス割当が可能です。
Router(config)# ip dhcp pool <pool> Router(dhcp-config)#host <addr> <mask> Router(dhcp-config)#client-identifier <client-identifier>
動作確認
構成概要
以下の環境で動作確認を行います。e0/0はデフォルトのclient-idを割り当て、e0/1はMACアドレスベースのclient-idを割り当てます。
192.168.12.0/24 e0/0 e0/0 +------+dhcp .2+------+ | +----------+ | | R1 | | R2 | | +----------+ | +------+dhcp .2+------+ e0/1 e0/1 192.168.21.0/24
[R1] interface Ethernet0/0 mac-address 1234.5678.9abc ip address dhcp ! interface Ethernet0/1 mac-address 0000.1234.5678 ip address dhcp client-id Ethernet0/1 [R2] ip dhcp pool VLAN_12 host 192.168.12.1 255.255.255.0 client-identifier 0063.6973.636f.2d31.3233.342e.3536.3738.2e39.6162.632d.4574.302f.30 ! ip dhcp pool VLAN_21 host 192.168.21.1 255.255.255.0 client-identifier 0112.3456.789a.bc ! interface Ethernet0/0 ip address 192.168.12.2 255.255.255.0 half-duplex ! interface Ethernet0/1 ip address 192.168.21.2 255.255.255.0 half-duplex
設定説明
e0/0からデフォルトのclient identifierでHDCP discoverを送信するよう設定します。なお、mac-addressは必須設定ではございませんが、ハードウェア毎に設定が変わる事を嫌い、staticにmac-addressを設定しました。
[R1] interface Ethernet0/0 mac-address 1234.5678.9abc ip address dhcp
client identifierの16進数表記を確認します。
[R1] R1#show dhcp lease Temp IP addr: 0.0.0.0 for peer on Interface: Ethernet0/0 Temp sub net mask: 0.0.0.0 DHCP Lease server: 0.0.0.0, state: 9 Purging DHCP transaction id: 2181 Lease: 0 secs, Renewal: 0 secs, Rebind: 0 secs Next timer fires after: 00:00:31 Retry count: 0 Client-ID: cisco-1234.5678.9abc-Et0/0 Client-ID hex dump: 636973636F2D313233342E353637382E 396162632D4574302F30 Hostname: R1 R1#
上記で確認したclient identifierの先頭に”00″を付けたし、4桁毎に”.”で区切った値をDHCP server側に設定します。
[R2] ip dhcp pool VLAN_12 host 192.168.12.1 255.255.255.0 client-identifier 0063.6973.636f.2d31.3233.342e.3536.3738.2e39.6162.632d.4574.302f.30
e0/1からMACアドレスに基づくclient identifierでHDCP discoverを送信するよう設定します。
[R1] interface Ethernet0/1 mac-address 0000.1234.5678 ip address dhcp client-id Ethernet0/1
MACアドレスに基づくclinet identifierの場合は、MACアドレスの先頭にethernetを意味する”01″を付けたし、4桁毎に”.”で区切った値をDHCP server側に設定します。
[R2] ip dhcp pool VLAN_21 host 192.168.21.1 255.255.255.0 client-identifier 0100.0012.3456.78
動作確認
想定通りのIPアドレスが割り当てられている事を確認します。
R1#show ip int bri Interface IP-Address OK? Method Status Protocol Ethernet0/0 192.168.12.1 YES DHCP up up Ethernet0/1 192.168.21.1 YES DHCP up up Ethernet0/2 unassigned YES NVRAM administratively down down Ethernet0/3 unassigned YES NVRAM administratively down down R1#
DHCP Server側からも確認が可能です。以下のコマンドでDHCP Clientに割り当てたIPアドレスとclient identifierを確認できます。
R2#show ip dhcp binding Bindings from all pools not associated with VRF: IP address Client-ID/ Lease expiration Type Hardware address/ User name 192.168.12.1 0063.6973.636f.2d31. Infinite Manual 3233.342e.3536.3738. 2e39.6162.632d.4574. 302f.30 192.168.21.1 0100.0012.3456.78 Infinite Manual R2#