Cisco IOS IPサービス – DHCPの基本設定

スポンサーリンク

Cisco IOSはDHCPサーバとしての機能も備えています。このページではDHCPサーバの基本的な設定方法についてまとめます。

DHCP sequence

各メッセージ概要

DHCPが使用するメッセージが以下の通りです概要をまとめると以下の通りです。

メッセージ
Discover DHCP clientからDHCP serverに対してIPアドレスを割り当ててもらうよう要求します。
Offer DHCP serverがDHCP clientに割り当てるIPアドレスを通知します。
Request DHCP clientが実際に使用するIPアドレスをDHCP Serverに通知します。
ACK DHCP serverがDHCP clientにDHCP Requestで要求されたIPアドレスが使用可能である事を通知します。
NACK DHCP serverがDHCP clientにDHCP Requestで要求されたIPアドレスが使用不可である事を通知します。
Release DHCP clientがDHCP serverに割り当られたIPアドレスを使用しなくなった事を通知します。

DHCP Discover

DHCP DiscoverはDHCP clientがDHCP serverに対してIPアドレスを割り当ててもらうよう要求するメッセージです。DHCP clientは、まだIPアドレスが割り当てられていない状態なので、broadcast宛てにメッセージを送信します。

Ethernet II, Src: cc:00:07:30:00:00 (cc:00:07:30:00:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
    Source port: bootpc (68)
    Destination port: bootps (67)
    Length: 299
    Checksum: 0x3536 [validation disabled]
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x00001866
    Seconds elapsed: 0
    Bootp flags: 0x8000 (Broadcast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: cc:00:07:30:00:00 (cc:00:07:30:00:00)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover
    Option: (t=57,l=2) Maximum DHCP Message Size = 1152
    Option: (t=61,l=27) Client identifier
    Option: (t=12,l=2) Host Name = "R1"
    Option: (t=55,l=8) Parameter Request List
    End Option

DHCP Offer

DHCP ServerはDiscoverに対する返答として、Offerを返します。OfferはClientに割り当てるIPアドレスやリース期間、DHCP ServerのIPアドレスなどが含まれています。

Ethernet II, Src: cc:01:07:30:00:00 (cc:01:07:30:00:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 192.168.12.2 (192.168.12.2), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
    Source port: bootps (67)
    Destination port: bootpc (68)
    Length: 308
    Checksum: 0xad60 [validation disabled]
Bootstrap Protocol
    Message type: Boot Reply (2)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x00001866
    Seconds elapsed: 0
    Bootp flags: 0x8000 (Broadcast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 192.168.12.1 (192.168.12.1)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: cc:00:07:30:00:00 (cc:00:07:30:00:00)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Offer
    Option: (t=54,l=4) DHCP Server Identifier = 192.168.12.2
    Option: (t=51,l=4) IP Address Lease Time = 1 day
    Option: (t=58,l=4) Renewal Time Value = 12 hours
    Option: (t=59,l=4) Rebinding Time Value = 21 hours
    Option: (t=1,l=4) Subnet Mask = 255.255.255.0
    End Option
    Padding

DHCP Request

DHCP ServerはOfferに対する返答として、Requestを返します。

DHCP Serverが冗長化されている構成では、Clientは複数のサーバからOfferを受け取ります。ClientはどのサーバからのOfferを採用するかを通知するために、DHCP ServerのIPアドレスなどが含まれたメッセージbroadcast宛てでDHCP Serverに返します。

Ethernet II, Src: cc:00:07:30:00:00 (cc:00:07:30:00:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
    Source port: bootpc (68)
    Destination port: bootps (67)
    Length: 317
    Checksum: 0xad2f [validation disabled]
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x00001866
    Seconds elapsed: 0
    Bootp flags: 0x8000 (Broadcast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: cc:00:07:30:00:00 (cc:00:07:30:00:00)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Request
    Option: (t=57,l=2) Maximum DHCP Message Size = 1152
    Option: (t=61,l=27) Client identifier
    Option: (t=54,l=4) DHCP Server Identifier = 192.168.12.2
    Option: (t=50,l=4) Requested IP Address = 192.168.12.1
    Option: (t=51,l=4) IP Address Lease Time = 1 day
    Option: (t=12,l=2) Host Name = "R1"
    Option: (t=55,l=8) Parameter Request List
    End Option

DHCP ACK, NACK

DHCP ServerはRequestに対する返答として、ACKまたはNACKを返します。Requestで要求されたIPアドレスが使用可能である場合はACKを、使用不能である場合はNACKを返します。

Ethernet II, Src: cc:01:07:30:00:00 (cc:01:07:30:00:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 192.168.12.2 (192.168.12.2), Dst: 255.255.255.255 (255.255.255.255)
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootpc (68)
    Source port: bootps (67)
    Destination port: bootpc (68)
    Length: 308
    Checksum: 0xaa60 [validation disabled]
Bootstrap Protocol
    Message type: Boot Reply (2)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0x00001866
    Seconds elapsed: 0
    Bootp flags: 0x8000 (Broadcast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 192.168.12.1 (192.168.12.1)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: cc:00:07:30:00:00 (cc:00:07:30:00:00)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP ACK
    Option: (t=54,l=4) DHCP Server Identifier = 192.168.12.2
    Option: (t=51,l=4) IP Address Lease Time = 1 day
    Option: (t=58,l=4) Renewal Time Value = 12 hours
    Option: (t=59,l=4) Rebinding Time Value = 21 hours
    Option: (t=1,l=4) Subnet Mask = 255.255.255.0
    End Option
    Padding

gratuitous ARP

DHCP serverによって取得したアドレスを実際に使用する前に、自身が使用する予定のIPアドレスが他のホストに使用されていないか
最終確認の意味を込めてARP requestを送信します。このARPは、gratuitous ARPと呼ばれ、自分自身のIPアドレスを宛先IPアドレスとし、ARPに対するresponseがない事によって”IPアドレスの重複がない”と判断します。

Ethernet II, Src: cc:00:07:30:00:00 (cc:00:07:30:00:00), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (reply/gratuitous ARP)
    Hardware type: Ethernet (0x0001)
    Protocol type: IP (0x0800)
    Hardware size: 6
    Protocol size: 4
    Opcode: reply (0x0002)
    [Is gratuitous: True]
    Sender MAC address: cc:00:07:30:00:00 (cc:00:07:30:00:00)
    Sender IP address: 192.168.12.1 (192.168.12.1)
    Target MAC address: Broadcast (ff:ff:ff:ff:ff:ff)
    Target IP address: 192.168.12.1 (192.168.12.1)

DHCP configuration

DHCP Server 必須設定

DHCPによって割り当てるアドレスを定義します。

Router(config)# ip dhcp pool <pool>
Router(dhcp-config)# network <addr> <mask>

DHCP割当アドレスの中から、除外すべきアドレスを定義します。例えばDHCPサーバやWebサーバなど固定アドレスを付与すべきサーバが除外対象として挙げられます。

Router(config)# ip dhcp exclude-address <low_addr> <high_addr>

DHCP Server 任意設定

DHCPによってIPアドレスだけではなく、デフォルトゲートウェイ・DNSサーバ・リース期間

Router(config)# ip dhcp pool <pool>
Router(dhcp-config)#dns-server <primary_addr> [ <secondary_addr> ]
Router(dhcp-config)#default-router  <primary_addr> [ <secondary_addr> ]
Router(dhcp-config)#domain-name  <domain_name>
Router(dhcp-config)#lease { infinity | <days> [ <hours> [ <minute> ] ] }

DHCP Client 必須設定

以下のコマンドでDHCPによるアドレス取得が可能です。client-idは別の機会に説明します。

Router(config-if)# ip address dhcp [ client-id <interface> ]

動作確認

以下の環境で動作確認を行います。R1をDHCP Clientとして、R2をDHCP Serverとして設定します。

        f0/0      f0/0
  +------+dhcp    .2+------+
  |  R1  +----------+  R2 | 
  +------+          +------+
       192.168.12.0/24
 [R1]
interface FastEthernet0/0
 ip address dhcp

 [R2]
ip dhcp excluded-address 192.168.12.2
!
ip dhcp pool POOL_VLAN_12
   network 192.168.12.0 255.255.255.0
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0

なお、設定全文は下記ファイルです。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface FastEthernet0/0
 ip address dhcp client-id FastEthernet0/0
 duplex auto
 speed auto
!
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
no ip dhcp use vrf connected
ip dhcp excluded-address 192.168.12.2
!
ip dhcp pool POOL_VLAN_12
   network 192.168.12.0 255.255.255.0
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
 duplex auto
 speed auto
!
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

DHCPによってIPアドレスが付与されると、以下のようなメッセージがコンソールに表示されます。

R1#
*Mar  1 00:00:18.175: %DHCP-6-ADDRESS_ASSIGN: Interface FastEthernet0/0 assigned DHCP address 192.168.12.1, mask 255.255.255.0, hostname R1
R1#

付与されたIPアドレスは、show ip interface briefなどで確認する事ができます。

R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.12.1    YES DHCP   up                    up  
R1#
タイトルとURLをコピーしました