DHCPで運用している組織では、DHCPで運用といえどIPの重複がなければ固定IPでも接続できてしまいます。DHCPでなければ接続させないという設定がDHCP Snoopingです。これはルータにEtherもジュールを足してもサポートされる機能ではなくCatalystのみでサポートされる機能です。
DHCPスヌーピングではこれらのやりとりをスヌーピング( 盗み見 )し、DHCP経由で取得したクライアントのみ接続させるという仕組みです。
DHCP Clientが接続されているポートが「Untrust」、DHCPサーバが接続されているポートが「Trust」になります。デフォルトでは全てがUntrustになっていますので、サーバが接続されているポートを手動でTrustにする必要があります。それを含めた全体設定が下記となります。
# DHCPスヌーピングをVLAN100でグローバルで有効 (config)# ip dhcp snooping (config)# ip dhcp snooping vlan 100 # バインディングデータベースファイルを指定する (config)# ip dhcp snooping database flash:bindtable.txt # クライアント接続ポートはバインディングテーブルにないものはフィルタを実施 (config)# interface range Fa0/1-3 (config-if)# ip verify source # DHCPサーバ接続ポートはTrustに設定 (config)# interface Fa0/4 (config-if)# ip dhcp snooping trust |
DHCPパケットをスヌーピングしたものはバインディングテーブルと呼ばれるファイルに記録します。それを指定しているのが上記のflash:bindtable.txtになります。このファイルには以下のものが記録されます。
○ ポート番号
○ Macアドレス
○ IPアドレス
○ Expire
○ VLANタグ
このファイルの中身は以下のコマンドで確認できます。
# show ip dhcp snooping binding MacAddress IpAddress Lease(sec) Type VLAN Interface ------------------ --------------- ---------- ------------- ---- -------------------- FC:61:98:41:45:89 192.168.12.4 172524 dhcp-snooping 100 FastEthernet0/3 Total number of bindings: 1 |
DHCPで登録MACアドレスのみ接続可としておいてもスイッチ側でDHCPスヌーピングを設定しているところはあまり見ません。これは運用面を考慮してそこまで制限すると運用負荷が高まってしまうという理由で設定していないようです。セキュリティにシビアなところでない限り、これはあまり設定されないのかもしれませんね。
以下、dhcp snoopingのshowコマンドの出力例です。
# show ip dhcp snooping Switch DHCP snooping is enabled DHCP snooping is configured on following VLANs: 100 DHCP snooping is operational on following VLANs: 100 DHCP snooping is configured on the following L3 Interfaces: Insertion of option 82 is enabled circuit-id default format: vlan-mod-port remote-id: 001e.1410.9f00 (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) ----------------------- ------- ------------ ---------------- FastEthernet0/4 yes yes unlimited Custom circuit-ids: |