こんにちは!ネットワークの世界へようこそ。インフラアーキテクトの私です。
日々のインフラ構築や運用で、私たちは数多くのプロトコルに囲まれていますよね。その中でも、社内ネットワークに繋いだ瞬間に「IPアドレスやネットマスクを自動で配ってくれる」便利な仕組み、それがDHCP(Dynamic Host Configuration Protocol)です。意識したことはなくても、あなたのパソコンやスマホは毎日このDHCPのお世話になっています。
しかし、この便利で平和なDHCPの世界に、もし「悪意を持った偽物のサーバ」がこっそり紛れ込んだらどうなるでしょうか?想像するだけで冷や汗モノのトラブルですよね。
今回は、そんな脅威からネットワークを守るための心強い味方「DHCPスヌーピング(DHCP Snooping)」について、難しい英語の仕様書をパタンと閉じて、身近な例えを交えながら一歩ずつ優しく紐解いていきましょう!
—
1. 会社で起きた大事件!「偽物の郵便屋さん」にご用心
まずは、DHCPがネットワーク上でどう動いているのか、オフィスの郵便配達に例えてイメージしてみましょう。
会社に新しい社員(PC)が入社してきました。彼は自分の机に座ると、「誰か僕のデスクの住所(IPアドレス)を教えてくださーい!」とフロア全体に向けて大声で叫びます。これがDHCPの世界における「DHCPディスカバー(要求)」というブロードキャスト通信です。
通常であれば、総務部(本物のDHCPサーバ)が「はい、あなたの住所は 192.168.1.100 ですよ」と正式な封筒を渡して一件落着です。
ところが、ここで悪巧みをしたイタズラ者(不正なDHCPサーバ)が、総務部のフリをしてこう叫んだらどうでしょう?
「おーい!君の新しい住所は 192.168.100.99 だよ!ちなみに、外の世界に行くときの窓口(デフォルトゲートウェイ)は、この僕のパソコンにしてね!」
新入社員はそれを信じ込み、すべての通信をそのイタズラ者のPC経由で送受信してしまうようになります。これが、ネットワークセキュリティの現場で恐れられている「不正DHCPサーバ攻撃(DHCPサーバなりすまし)」の正体です。通信がすべて盗み見られたり(中間者攻撃)、インターネットに全く繋がらなくなったり(サービス停止)してしまいますよね。
—
2. スイッチの番人:DHCPスヌーピングの仕組み
「じゃあ、そんな偽物からの郵便物なんて受け取らなきゃいいじゃないか!」その通りです。その番人としてスイッチの内部で働いてくれるのが、DHCPスヌーピングという機能になります。
DHCPスヌーピングは、スイッチのポートを次の2つの世界にきっちり色分けします。
信頼ポート(Trusted Port)
- 「ここから来る情報は絶対安全!」と管理者が太鼓判を押したポートです。
- 社内に正式設置された「本物のDHCPサーバ」が繋がっているアップリンクポートや、上位のコアスイッチに繋がるポートをここに指定します。
不信頼ポート(Untrusted Port)
- 「一般社員や来客者が使うかもしれないから、とりあえず疑ってかかるぞ!」というポートです。
- 私たちが普段使っているPCやIP電話が直接繋がる、スイッチのエッジポートはデフォルトで全てここに含まれます。
もし「不信頼ポート」の側から、本物のDHCPサーバだけが発信できるはずの「IPアドレスを配りますよ(DHCPオファー)」という返事が聞こえてきたらどうなるでしょうか?
DHCPスヌーピングを有効にしたスイッチは、「おや、不信頼な場所からサーバの返事が来たぞ!これは怪しい!」と即座に見抜き、その不正なパケットをガチャンとゴミ箱に捨てて(破棄して)くれます。これで社内の安全が守られるわけですね。
—
3. 監視だけじゃない!賢い「バインディングデータベース」の記憶力
DHCPスヌーピングの仕事は、怪しいパケットを捨てるだけではありません。もう一つ、とても重要な役割を持っています。それが「DHCPスヌーピング・バインディングデータベース(対応表)」の作成です。
スイッチは、PCと本物のDHCPサーバの間で行われるやり取りをこっそり覗き見(スヌープ)しています。そして、次のようなメモを自分の頭の中にこっそり書き留めます。
- 「このポート (
FastEthernet 0/1) に繋がっているPCのMACアドレスはaa:bb:cc:dd:ee:ffだ」 - 「そのPCに、本物のサーバが
192.168.1.50というIPアドレスを貸し出したぞ」
このメモ帳があるおかげで、スイッチは「あれ? 192.168.1.50 のIPを使っているはずなのに、全然違うMACアドレスのやつが通信してきたぞ? これは偽装だ!」という別の不正(IPスプーフィング攻撃など)も見破ることができるようになります。セキュリティの精度がぐっと上がりますよね。
—
4. 【実務設定編】Ciscoスイッチでの設定例
それでは、実際に現場のCiscoスイッチでこのDHCPスヌーピングをどのように設定するのか、具体的なコマンドを見てみましょう。実務でそのままコピー&ペーストしてベースに使える設定サンプルを用意しました。
! ==========================================
! 1. まず、スイッチ全体でDHCPスヌーピングを有効化します
! ==========================================
Switch(config)# ip dhcp snooping
! ==========================================
! 2. 対象となるVLAN(例: 社内ネットワークのVLAN 10)を指定します
! ==========================================
Switch(config)# ip dhcp snooping vlan 10
! ==========================================
! 3. 本物のDHCPサーバが接続されているポートを「信頼ポート」に設定します
! (例: Gi0/24ポートがコアスイッチやDHCPサーバに繋がっている場合)
! ==========================================
Switch(config)# interface GigabitEthernet0/24
Switch(config-if)# ip dhcp snooping trust
! ==========================================
! 4. 一般端末が接続するポート(例: Fa0/1からFa0/23)は
! デフォルトで不信頼ですが、念のため明示的に設定することも可能です
! ==========================================
Switch(config)# interface range FastEthernet 0/1 - 23
Switch(config-if)# ip dhcp snooping trust ! <-- ここは信頼ポートにしない(コマンド打たない、または不信頼のまま)
💡 現場で役立つワンポイントアドバイス
大規模なネットワークや、端末が頻繁に入れ替わるフロアでは、スイッチの再起動時にデータベースが消えてしまわないよう、外部のTFTPサーバやフラッシュメモリにバインディング情報を保存する設定(ip dhcp snooping database flash:dhcp_binding.db など)を併用するのがプロの技です。合わせて覚えておきましょう!
—
5. おわりに
今回は、不正DHCPサーバからネットワークを守る「DHCPスヌーピング」と、その裏で支える「バインディングデータベース」の仕組みについて解説しました。
一見すると難しそうなセキュリティ機能も、「誰が信用できて、誰を疑うべきか」という郵便配達のルールに置き換えてみると、とてもシンプルに理解できたのではないでしょうか。
インフラの世界では、こうした「当たり前の通信を正しく見極める仕組み」の積み重ねが、堅牢で美しいネットワークを作り上げます。ぜひ今日の学びをご自身の環境や検証ラボでも試してみてくださいね。それではまた、次のパケットの旅でお会いしましょう!
コメント