こんにちは!ネットワークの世界へようこそ。日々のインフラ構築や運用、本当にお疲れ様です。
ネットワークエンジニアとしてキャリアを歩み始めると、LANケーブルが織りなす物理的な世界から、L2スイッチやルーターが主役となる論理的な世界へと視点が広がっていきますよね。「スイッチって、宛先を見てパケットを上手に転送してくれて便利だな〜」なんて感動していた矢先、先輩からこう言われる日がやってきます。
「おい、LANの中でARPスプーフィング(なりすまし)を仕掛けられて、トラフィックが全部盗み見られているぞ。DAIを急いで設定してくれ!」
……DAI? スプーフィング? なんか難しそうな単語が一気に出てきて、冷や汗が流れた経験はありませんか? 一歩ずつ理解していきましょう!今回は、ネットワークの安全を守るいぶし銀のセキュリティ機能「ダイナミックARPインスペクション(DAI)」について、郵便配達の例えを交えながら、泥臭い現場の目線でお話ししていきますね。
—
1. そもそも「ARP」ってなに?そしてなぜ狙われるの?
私たちが普段使っているパソコンやスマホは、通信するときに相手の「IPアドレス」を使いますよね。でも、ネットワーク機器(イーサネットスイッチなど)の心臓部であるL2の世界は、IPアドレスなんて知りません。彼らが理解できるのは、ハードウェア固有の「MACアドレス」だけです。
ここで通訳の役割を果たすのが、ARP(Address Resolution Protocol)という仕組みです。
郵便配達で例えてみましょう
ネットワークの世界を、街の中の「手紙のやり取り」に例えてみます。
- IPアドレス = 「〇〇市〇〇町 1-2-3 の 山田さん」という宛先
- MACアドレス = 山田さんの自宅の玄関にある「特定の形をした郵便受けの鍵穴(固有のID)」
あなたが誰かに手紙(データ)を送るとき、「〇〇さん宛てにお願いね」とポストに投函します。しかし、郵便配達員(スイッチ)は、「〇〇さんってどの家だっけ?」となります。そこでARPという大声の呼びかけが行われます。
1. ARPリクエスト(問いかけ):「おい!『192.168.1.10』を使っている人、あなたのMACアドレスは何番ですか?教えて!」
2. ARPリプライ(お返事):「はい!私です。『192.168.1.10』のMACアドレスは 11:22:33:44:55:66 ですよ!」
このやり取りによって、IPアドレスとMACアドレスの対応表(ARPキャッシュ)が作られ、無事に通信ができるようになります。とても平和で、なくてはならない仕組みですよね。
しかし、ここにダークサイドが……(ARPスプーフィング)
ARPには、致命的な「お人好し(性善説)」な弱点があります。それは、「誰から送られてきたお返事でも、疑わずにそのまま信じてメモしてしまう」ということです。
もし、ネットワークの中に悪意を持った攻撃者の端末(仮に 192.168.1.99 とします)が接続されていたらどうなるでしょうか?
攻撃者は、こんな嘘の叫び声をネットワーク中に響かせます。
> 「皆さん聞いてください! ゲートウェイ(ルーター)である『192.168.1.1』のMACアドレスは、本当は私(悪意あるMAC)なんですよ!」
これを聞いた周りのPCたちは、すっかり騙されてしまいます。「なんだ、ルーターのMACアドレスが変わったんだな」と勘違いし、インターネットへ行くための大切な通信を、ぜんぶ攻撃者のパソコンへ送り届けてしまうのです。これが、中間者攻撃(Man-in-the-Middle Attack)を引き起こす「ARPスプーフィング(なりすまし)」の恐ろしい手口です。
—
2. 救世主登場!ダイナミックARPインスペクション(DAI)の仕組み
「じゃあ、届いたARPのお返事が嘘か本当かなんて、どうやって見分ければいいんだよ!」と思いますよね。そこで登場するのが、今回の主役であるDAI(Dynamic ARP Inspection)です。
DAIは、L2スイッチの上で動作するセキュリティ機能で、流れてくるARPパケットを一つひとつ検問し、「うそつきなARPパケットを容赦なくゴミ箱行き(破棄)にする」という男気あふれる仕事をしてくれます。
検問のパスポート:DHCPスヌーピング
DAIが「こいつの言うことは本当か?」と判断するために使うのが、「DHCPスヌーピング・データベース(バインディングテーブル)」という台帳です。
DHCP(IPアドレスを自動で割り当てる仕組み)が行われるとき、スイッチは「おっ、このポートに繋がっているPC(MAC: AA:BB...)には、IPアドレス 192.168.1.50 を貸し出したぞ」という情報をこっそりメモしています。これがデータベースの正体です。
DAIはこの台帳をチラッと見て、次のように判断します。
- 正規のARP:「『192.168.1.50』のMACは
AA:BB...です」 $\rightarrow$ 台帳と一致!よし、通しなさい。 - 偽装されたARP:「『192.168.1.1』のMACは
悪意あるMACです」 $\rightarrow$ 台帳のルーターの情報と全然違う!偽物だ!ポイッ(破棄)!
郵便局の窓口で、本人確認書類(身分証)をバッチリ突き合わせて本人確認をする厳重なガードマンのようなイメージですね。これなら悪意あるなりすましも一網打尽にできます。
—
3. 実務で役立つ!Ciscoスイッチでの具体的な設定手順
「理屈は分かったけど、実際に現場ではどう設定するの?」という声にお応えして、Cisco Catalystスイッチを例にした具体的なコンフィギュレーションを見ていきましょう。
DAIを有効化するには、大前提として「DHCPスヌーピングが正しく動いていること」が必要です。ここが現場のインフラエンジニアとしての腕の見せ所ですね。
設定ステップの全体像
1. DHCPスヌーピングを全体で有効化する
2. 信頼できるポート(ルーターや上位スイッチ側)を設定する
3. DAIをVLAN単位で有効化する
それでは、実際のCisco IOSコマンドを見てみましょう。
! 1. スイッチ全体でDHCPスヌーピングを有効化します
Switch(config)# ip dhcp snooping
! 2. 対象のVLAN(例: VLAN 10)でDHCPスヌーピングを有効化します
Switch(config)# ip dhcp snooping vlan 10
! 3. アップリンク(ルーターや上位スイッチに繋がる信頼できるポート)を定義します
! ※ここを忘れると、正規のルーターからのARPまで疑って落としてしまうので注意!
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# ip dhcp snooping trust
! 4. エンドユーザーが接続するアクセスポート側は「信頼しない(untrust)」のままでOKです
! (デフォルトでuntrustなので設定不要なことが多いですが、明示することも可能です)
Switch(config)# interface range FastEthernet0/1 - 24
Switch(config-if)# ip dhcp snooping trust ! ← これはダメ!ユーザーポートは信頼しない
! 5. 本題のDAIをVLAN 10に対して有効化します
Switch(config)# ip arp inspection vlan 10
! 6. (オプション)必要に応じて、信頼できるポート側でもDAIのチェックを免除します
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# ip arp inspection trust
💡 現場でハマりがちなポイント(トラブルシューティングの知見)
ネットワーク構築の現場でDAIを入れるとき、非常によくある失敗が「アップリンク(ルーター側のポート)の信頼設定(trust)を忘れる」というミスです。
これをやると、ルーターから送られてくる正当なARP応答まで「うそつきだ!」と勘違いされてドロップされてしまい、「あれ、ネットワークに繋がった途端にインターネットに出られなくなったぞ……?」という盛大な自爆トラブルに発展します。
必ず上位のネットワーク機器に接続するポートには、ip dhcp snooping trust と ip arp inspection trust をセットで設定するように心がけましょう!
—
4. おわりに:安全なネットワークは一歩ずつの積み重ねから
今回は、ダイナミックARPインスペクション(DAI)の仕組みと、ARPスプーフィング防御の裏側について、郵便配達の例えを交えながらお話ししました。
- ARPはお人好しなプロトコルゆえに、偽装(スプーフィング)の攻撃に弱い。
- DAIは、DHCPスヌーピングで作った「信頼できる台帳」を使って、怪しいARPパケットをバっさり切り捨てる。
- 設定時は、上位ルーター側のポートの「信頼(Trust)」設定を絶対に忘れない!
インフラの世界は、一見すると難解な英単語や複雑なルールに満ち溢れていますが、一つひとつの機能を「身の回りの仕組み」に置き換えて紐解いていくと、驚くほどスッキリと本質が見えてきます。
日々の運用やこれからの設計で、あなたのネットワークを守る強力な武器として、ぜひ今回のDAIの知識を活用してみてくださいね。それでは、また次回の技術の深淵でお会いしましょう!
コメント