概要

シンプルなネットワーク構成で、DHCPスヌーピングを設定して、その動作を確認します。

ネットワーク構成

図 Cisco DHCPスヌーピング 設定例
図 Cisco DHCPスヌーピング 設定例

設定条件

  • IOU-L2でDHCPスヌーピングを有効にします。
  • DHCPクライアントが接続されるインタフェースでは、受信するDHCPメッセージを1秒間あたり50個までに制限します。
  • R1(Cisco IOSルータ)でDHCPによってIPアドレスを割り当てるために必要な設定を追加してください。
  • DHCPスヌーピングバインディングテーブルをIOU-L2のローカルストレージに保持します。ファイル名は「dhcp-binding_00001」とします。

初期設定

R1 初期設定抜粋(Click)

hostname R1
!
ip dhcp pool 192.168.1
   network 192.168.1.0 255.255.255.0
   default-router 192.168.1.254
   domain-name n-study.com
   dns-server 8.8.8.8
!
interface FastEthernet0/0
 ip address 192.168.1.254 255.255.255.0

IOU-L2 初期設定抜粋(Click)

hostname IOU-L2
!
interface Ethernet0/0
 spanning-tree portfast
 duplex auto
!
interface Ethernet0/1
 spanning-tree portfast
 duplex auto
!
interface Ethernet0/2
 spanning-tree portfast
 duplex auto
!
interface Ethernet0/3
 spanning-tree portfast
 duplex auto

Host1 初期設定抜粋(Click)

set pcname Host1
ip dhcp

R2 初期設定抜粋(Click)

hostname R2
!
interface FastEthernet0/0
 ip address dhcp client-id FastEthernet0/0

設定と確認

Step1:DHCPスヌーピングの有効化

IOU-L2でDHCPスヌーピングを有効にします。DHCPサーバ、DHCPクライアントが接続されているのはVLAN1なので、VLAN1でDHCPスヌーピングを有効にします。また、DHCPサーバが接続されるE0/1をTrustとして設定します。

IOU-L2 DHCPスヌーピングの有効化

ip dhcp snooping vlan 1
ip dhcp snooping
!
interface Ethernet0/1
 ip dhcp snooping trust

Step2:DHCPメッセージの制限

DHCPクライアントが接続されているE0/2、E0/3で受信するDHCPメッセージを1秒間あたり50までに制限します。

IOU-L2 DHCPメッセージの制限

interface range Ethernet0/2 - 3
 ip dhcp snooping limit rate 50

Step3:DHCPスヌーピングの確認

DHCPスヌーピングの設定を確認します。IOU-L2でshow ip dhcp snoopingコマンドを利用します。

IOU-L2 show ip dhcp snooping

IOU-L2#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is enabled
   circuit-id default format: vlan-mod-port
   remote-id: aabb.cc00.0100 (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:

Interface                  Trusted    Allow option    Rate limit (pps)
-----------------------    -------    ------------    ----------------
Ethernet0/1                yes        yes             unlimited
  Custom circuit-ids:
Ethernet0/2                no         no              50
  Custom circuit-ids:
Ethernet0/3                no         no              50
  Custom circuit-ids:
図 IOU-L2 DHCPスヌーピングの状態
図 IOU-L2 DHCPスヌーピングの状態

Step4:DHCPでのIPアドレス割り当ての確認

Host1およびR2で、DHCPによってIPアドレスが割り当てられていることを確認します。

Host1/R2 IPアドレスの確認

Host1> show ip

NAME        : Host1[1]
IP/MASK     : 0.0.0.0/0
GATEWAY     : 0.0.0.0
DNS         :
MAC         : 00:50:79:66:68:00
LPORT       : 20007
RHOST:PORT  : 127.0.0.1:20008
MTU:        : 1500
R2#show ip int brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES DHCP   up                    up
FastEthernet0/1            unassigned      YES unset  administratively down down

Host1/R2は、DHCPでIPアドレスを取得できていません。この原因は、IOU-L2のDHCPスヌーピングです。IOU-L2は、DHCPスヌーピングによってDHCP DISCOVERにOption82を付加します。ですが、本来、Option82はDHCPリレーエージェントに関する情報です。Option82が付加されているのに、リレーエージェントのIPアドレス(giaddr)がセットされていません。そのため、R1は一貫性のないDHCP DISOVERメッセージとみなして、破棄します。

R1でdebug ip dhcp server packetを有効にして、DHCPメッセージのデバッグを見ると、以下のような表示です。

R1 debug ip dhcp server packet

R1#debug ip dhcp server packet
R1#
*Mar  1 00:02:54.283: DHCPD: inconsistent relay information.
*Mar  1 00:02:54.287: DHCPD: relay information option exists, but giaddr is zero.
図 giaddrとOption82
図 giaddrとOption82

IOU-L2からR1へ転送されるDHCP DISCOVERメッセージをキャプチャすると、以下のような内容になっています。

Step5:R1 リレー情報を受け入れる設定

DHCPサーバであるR1で、DHCPメッセージに付加されているリレー情報をすべて信頼して受け入れる設定を行います。

R1

ip dhcp relay information trust-all

Step6:DHCPでのIPアドレス割り当ての確認

再度、DHCPクライアントのHost1/R2で、DHCPによってIPアドレスが割り当てられていることを確認します。

Host1/R2 IPアドレスの確認

Host1> show ip

NAME        : Host1[1]
IP/MASK     : 192.168.1.2/24
GATEWAY     : 192.168.1.254
DNS         : 8.8.8.8
DHCP SERVER : 192.168.1.254
DHCP LEASE  : 86398, 86400/43200/75600
DOMAIN NAME : n-study.com
MAC         : 00:50:79:66:68:00
LPORT       : 20007
RHOST:PORT  : 127.0.0.1:20008
MTU:        : 1500
R2#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            192.168.1.1     YES DHCP   up                    up
FastEthernet0/1            unassigned      YES unset  administratively down down
R2#show dhcp lease
Temp IP addr: 192.168.1.1  for peer on Interface: FastEthernet0/0
Temp  sub net mask: 255.255.255.0
   DHCP Lease server: 192.168.1.254, state: 5 Bound
   DHCP transaction id: 169C
   Lease: 86400 secs,  Renewal: 43200 secs,  Rebind: 75600 secs
Temp default-gateway addr: 192.168.1.254
   Next timer fires after: 11:56:27
   Retry count: 0   Client-ID: c202.87ec.0000
   Client-ID hex dump: C20287EC0000
   Hostname: R2

また、DHCPスヌーピングによってIOU-L2にDHCPスヌーピングバインディングテーブルが作成されています。IOU-L2でshow ip dhcp snooping bindingコマンドを利用します。

IOU-L2 show ip dhcp snooping binding

IOU-L2#show ip dhcp snooping binding
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
------------------  ---------------  ----------  -------------  ----  --------------------
C2:02:87:EC:00:00   192.168.1.1      86096       dhcp-snooping   1     Ethernet0/3
00:50:79:66:68:00   192.168.1.2      86268       dhcp-snooping   1     Ethernet0/2
Total number of bindings: 2

Step7:DHCPスヌーピングデータベースエージェントの設定

IOU-L2のDHCPスヌーピングバインディングテーブルをローカルストレージに転送(保存)します。

IOU-L2 DHCPスヌーピングデータベースエージェント

ip dhcp snooping database unix:dhcp-binding_00001

Step8:DHCPスヌーピングデータベースエージェントの確認

show ip dhcp snooping databaseコマンドでDHCPスヌーピングデータベースエージェントの設定を確認します。

IOU-L2 show ip dhcp snooping database

IOU-L2#show ip dhcp snooping database
Agent URL : unix:dhcp-binding_00001
Write delay Timer : 300 seconds
Abort Timer : 300 seconds

Agent Running : No
Delay Timer Expiry : 195 (00:03:15)
Abort Timer Expiry : Not Running

Last Succeded Time : 02:27:42 UTC Mon Aug 15 2022
Last Failed Time : None
Last Failed Reason : No failure recorded.

Total Attempts       :        1   Startup Failures :        0
Successful Transfers :        1   Failed Transfers :        0
Successful Reads     :        0   Failed Reads     :        0
Successful Writes    :        1   Failed Writes    :        0
Media Failures       :        0

IOU-L2のローカルストレージ内にDHCPスヌーピングバインディングテーブルが保存されています。

IOU-L2 ローカルストレージの確認

IOU-L2#more unix:dhcp-binding_00001
62f9af1e
TYPE DHCP-SNOOPING
VERSION 1
BEGIN
192.168.1.1 1 c202.87ec.0000 62FAFEF1 Et0/3                              1f6405fa
192.168.1.2 1 0050.7966.6800 62FAFF9E Et0/2                              bdc43289
END

設定コマンドのまとめ

初期設定の状態から設定したコマンドのまとめです。

R1

ip dhcp relay information trust-all

IOU-L2

ip dhcp snooping vlan 1
ip dhcp snooping database unix:dhcp-binding_00001
ip dhcp snooping
!
interface Ethernet0/1
 ip dhcp snooping trust
!
interface range Ethernet0/2 - 3
 ip dhcp snooping limit rate 50

セキュリティの基礎