こんにちは!ネットワークの世界へようこそ。インフラエンジニアの主筆ライターとして、日々のネットワークの裏側でうごめく熱いドラマや、パケットたちが繰り広げる冒険をいつもワクワクしながら見守っている者です。
ネットワークの勉強をしていると、最初はルーターやスイッチが魔法のようにパケットを運んでくれて感動しますが、だんだん慣れてくると「あれ? もし社内に変な奴が変な機械をつないだら、ネットワーク全体がパニックになるのでは…?」という、ちょっとダークな疑問が湧いてきませんか?
そう、セキュリティの穴をつく悪意ある(あるいはうっかり者の)存在は、いつの時代もネットワークエンジニアの頭を悩ませます。今回は、そんなL2(データリンク層)のキャンパスネットワークを静かに、しかし確実に守ってくれる頼もしい用心棒「DHCPスヌーピング(DHCP Snooping)」について、現実世界にたとえながら優しく紐解いていきましょう!
一歩ずつ理解していきましょう!
—
1. なぜDHCPスヌーピングが必要なのか? 〜偽物の郵便配達員にご用心〜
私たちが普段使っているパソコンやスマートフォンは、会社や自宅のネットワークに接続すると、自動的に「IPアドレス」というインターネット上の住所をもらっていますよね。これを自動で割り当ててくれるのが DHCPサーバー というありがたい仕組みです。
ここで、身の回りの世界にたとえてみましょう。
会社という大きなお屋敷(ネットワーク)には、総務部(正当なDHCPサーバー)がいて、新しくやってきた社員たち(PC)に「あなたの席はここですよ、住所は 192.168.1.50 です」と、正しいお部屋の鍵を配って回っています。
しかし、もしここで、悪意を持った誰か(あるいは設定を間違えた個人の無線ルーターを持ち込んだうっかり者)が、勝手にロビーに机を出して、こう叫びだしたらどうなるでしょうか?
*「はーい!今日から皆さんの住所は全部オレが管理します! 通信したければオレの言う通りにしなさい!」*
これが、不正DHCPサーバー(ローグDHCPサーバー)の脅威です。
これをやってしまうと、社内のPCたちは偽のサーバーから「間違った住所」や「偽の案内係(デフォルトゲートウェイ)」を教え込まれてしまい、インターネットに繋がらなくなったり、すべての通信がその不正な端末をこっそり経由させられたり(中間者攻撃)して、ネットワークが完全に大混乱に陥ってしまいます。
この「偽の郵便配達員」が勝手に手紙を配るのを、オフィスの入り口(スイッチ)でガッチリ見張って阻止してくれる機能、それが DHCPスヌーピング なのです。
—
2. スイッチの「お目付け役」:信頼ポートと信頼不能ポート
DHCPスヌーピングがどうやって不正を防ぐのか、その仕組みはとてもシンプルです。スイッチのポートを、次の2種類に分類して管理します。
1. 信頼ポート(Trusted Port)
- 「ここは絶対に安全な本物のDHCPサーバーがつながっているポートだよ」と、管理者があらかじめ太鼓判を押したポートです。このポートからやってくる「IPアドレスをあげるよ!」というメッセージ(DHCPオファーなど)は、そのまま素通しします。
2. 信頼不能ポート(Untrusted Port)
- 一般の社員のパソコンや、素性が分からない機器がつながるポートは、すべてここに分類されます。基本は「疑ってかかる」のが鉄則です。このポートから「私がDHCPサーバーです!」なんてメッセージが流れてきたら、スイッチは即座にそれを「偽物だ!」と見抜いて遮断(ドロップ)します。
—
3. DHCPスヌーピングが生み出す「信頼の証」:バインディングデータベース
DHCPスヌーピングのすごいところは、ただ不正なサーバーを弾くだけではありません。信頼不能ポートにつながっている端末が、正当なDHCP手続きを経てIPアドレスを取得したかどうかを、スイッチ自身がこっそりメモ帳に記録していくのです。
これを DHCPスヌーピング・バインディングデータベース(Snooping Binding Table) と呼びます。
例えば、「ポート FastEthernet 0/1 につながっているPC(MACアドレス: aa:bb:cc:dd:ee:ff)には、正当なサーバーから 192.168.1.100 というIPアドレスが貸し出されたな」という情報をスイッチが記憶します。
もし、このPCが後から「オレのIPアドレスは 192.168.1.999 に変えるぜ!」と勝手に嘘をついて通信しようとしても、スイッチが「いやいや、君に貸したのそんな住所じゃないよね?」と、そのパケットを容赦なくポイ捨て(破棄)してくれます。これが発展したのが DAI(Dynamic ARP Inspection) などの、さらに高度なL2セキュリティ連携技です。L2セキュリティの土台として、DHCPスヌーピングはなくてはならない存在なんですね。
—
4. 実務で役立つ!Ciscoスイッチでの設定サンプル
それでは、実際の現場(Cisco Catalystスイッチなど)で、このDHCPスヌーピングをどのように設定するのか、具体的なCLIコマンドを見ていきましょう。
難しそうに見えますが、意味を噛み砕けば一本道です。一緒に設定の流れを確認していきましょう!
[ネットワーク構成のイメージ]
[本物のDHCPサーバー] --- (Gi0/1: 信頼ポート) --- [Cisco Switch] --- (Gi0/2〜: 信頼不能ポート) --- [一般PC]
! ==========================================
! 1. スイッチ全体でDHCPスヌーピングを有効化する
! ==========================================
Switch(config)# ip dhcp snooping
! ==========================================
! 2. どのVLANに対してこの機能を適用するか指定する
! (ここではVLAN 10を保護の対象とします)
! ==========================================
Switch(config)# ip dhcp snooping vlan 10
! ==========================================
! 3. 本物のDHCPサーバーがつながっているポートを「信頼ポート」に指定する
! (例: GigabitEthernet 0/1 ポート)
! ==========================================
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# ip dhcp snooping trust
Switch(config-if)# exit
! ==========================================
! 4. 一般の端末がつながるポートは「信頼不能(デフォルトのまま)」ですが、
! 念のため、端末が嘘の情報を流すのを防ぐレートリミット(流量制限)をかけます
! (例: 1秒間に15パケットを超えるDHCPパケットが来たら一時遮断する)
! ==========================================
Switch(config)# interface range GigabitEthernet 0/2 - 24
Switch(config-if)# ip dhcp snooping limit rate 15
Switch-if(config-if)# exit
! ==========================================
! 【おまけ】現在の設定やバインディングテーブルを確認するコマンド
! ==========================================
! スイッチの稼働状況や信頼ポートが正しく設定されているか確認
Switch# show ip dhcp snooping
! どのMACアドレスにどのIPアドレスが紐づいているか(学習結果)を確認
Switch# show ip dhcp snooping binding
実務の現場では、上記のように「全体を有効化」→「VLANを指定」→「サーバー側ポートを信頼」という基本の3ステップを踏むだけで、オフィスのネットワークを不正なDHCPの脅威からガッチリと守ることができます。設定自体は非常にシンプルですよね。
—
おわりに
今回は、L2ネットワークの隠れた名脇役である「DHCPスヌーピング」について、郵便配達のたとえを交えながら解説しました。
ネットワークのセキュリティと聞くと、ファイアウォールやVPNといった「L3以上のちょっと遠い世界」をイメージしがちですが、私たちが普段何気なく挿している足元のスイッチ(L2)のレイヤーでも、こうした泥臭く、しかし確実な仕組みが日夜ネットワークの平和を守っています。
「なぜこのポートは信頼(Trust)されているんだろう?」
「もしここに変なハブを挿したらどうなるんだろう?」
そんなエンジニアとしての好奇心を大切にしながら、ぜひ皆さんの手元の環境やシミュレーターでも試してみてくださいね。それでは、また次回のネットワーク深淵の旅でお会いしましょう!
コメント