設問2
(1)IPアドレスを固定設定すれば、正常PC以外でも通信できる。


順を追って見ていこう!
DHCPスヌーピングを実行しない→バインディングテーブルが作られない→端末の正当性をチェックする材料がない→以下の2パターンが発生する
パターン①:IPアドレスを持っていない端末の場合
IPアドレスを持っていない端末は、IP通信ができないので特に影響はない。そのためもし、IPを取得しようと思ったら、DHCPサーバにアクセスする必要があり、その段階でPC管理サーバでチェックを通すことができる。
パターン②:IPアドレスを固定設定している場合
IPアドレスを自身で設定している場合、IP通信が可能な状況が整ってしまっている。つまり、DHCPサーバ経由のPC管理サーバチェックを通らなくても通信ができてしまうので、不正PCでもLANを利用できるようになってしまう。
以上をまとめると、DHCPスヌーピングを無効化するとIPアドレスを固定設定すれば、正常PC以外でも通信できてしまうが回答となる。
設問3
(1)2



条件をまとめると…
・通信制御装置を接続するスイッチはL3SW
・フロア間接続をしない
・ポートはすべて異なるセグメントに属さなければならない
以上をまとめると、👇のような構成になる。

ポートを2つ使っているのは、フロア内には2つのセグメントがあるため、そのセグメントごとにアクセスポートを作りその接続先に通信制御装置をつなげている。
以上より、通信制御装置は2台の構成で可能であることが分かる。
(2)ポート1:L3SW1 ポート2:L3SW1 ポート3:空 ポート4:空 or ポート1:L3SW2 ポート2:L3SW2 ポート3:空 ポート4:空

上の図を見ると、通信制御装置はL3SWにしかつながっていない。そのため、ポート1:L3SW1 ポート2:L3SW1 ポート3:空 ポート4:空 or ポート1:L3SW2 ポート2:L3SW2 ポート3:空 ポート4:空 となる。
設問4
(1)PC管理サーバ、メンテナンスサーバ


なぜPC管理サーバなの…
・PCの合格・不合格を判定するのはPC管理サーバ
・PC管理サーバと通信できないと不合格PCは一向に合格判定されずネットワークに接続できなくなる
=PC管理サーバとの通信は許可する必要がある
なぜメンテナンスサーバなの…
・不合格PCはOSやウイルス定義ファイル等のアップデートをしないと合格にならない
・そのアップデートファイルを持っているのがメンテナンスサーバ
・メンテナンスサーバと接続できないと一向にアップデートできず合格状態にならない
=メンテナンスサーバとの通信は許可する必要がある
なぜDHCPサーバは回答から除外されるのか…
・DHCPでIPアドレスを取得しなきゃ、そもそもPC管理サーバなどと通信すらできない
・だからDHCP許可は必須では?
→DHCPの通信は、PCがネットワークに参加した瞬間にIPを配るための「基盤インフラ」であり、L3スイッチ(SVI)に設定した ip helper-address によって中継(リレー)される。セキュリティ上の「例外許可リスト(ホワイトリスト)」にわざわざ書かなくても、インフラの仕組みとして動く前提、あるいは「治療・管理」の対象外として扱われるため今回は除外されている。
*DHCP通信自体を許可ルールに入れることを否定しているわけではない(その証拠に設問4(2)では対処用プールをDHCPに追加する旨が記載されているのでDHCP通信自体は実行していることが分かる)
p.12 Q.メンテナンスサーバって何?

メンテナンスサーバとは社内にある各PCの、OS、業務アプリケーション、ウイルス対策ソフトの「ウイルス定義ファイル」などのアップデートファイルを一元的に管理し、各PCに配信するためのサーバー。
Q.なんで必要なの?
インターネット回線の帯域節約:
もし数百台あるPCがそれぞれ個別にインターネットから巨大なOSのアップデートやウイルス定義ファイルをダウンロードすると、社内のインターネット回線(WAN回線)がパンクする。メンテナンスサーバーが外部から1回だけダウンロードし、社内PCにはローカルのLAN経由で配ることで、WAN回線の負荷を大幅に削減できる。
セキュリティとバージョンの統制:
情報システム部が「どのバージョンまでアップデートを許可するか」をメンテナンスサーバー側で一元管理し、社内PCの環境を均一に保つことができる。
p.13 Q.DHCPスヌーピングって何?
DHCPスヌーピングは、不正なDHCPサーバーによるIPアドレスの払い出しを防ぐためのセキュリティ機能。
仕組みとしては、L2スイッチがDHCPクライアントとDHCPサーバー間でやり取りされるDHCPメッセージを監視する。
①まず、L2スイッチのポートにTrusted(信頼)とUntrusted(非信頼)を設定する。
②Trustedポートは正規のDHCPサーバーが接続されているポートで、Untrustedポートは一般ユーザーのPCなどが接続されているポート。
③そして、UntrustedポートからDHCP OfferやDHCP ACKなどのサーバー側の応答メッセージが送信された場合、それを破棄する。
④これによって、不正な端末がDHCPサーバーになりすまして、偽のIPアドレスやデフォルトゲートウェイを払い出す攻撃を防ぐことができる。
⑤さらに、DHCPのやり取りを監視する過程で、IPアドレス・MACアドレス・VLAN・接続ポートなどの対応関係をBinding Table(バインディングテーブル)に記録する。
⑥このBinding Tableは、Dynamic ARP Inspection(DAI)やIP Source Guard(IPSG)といった別のセキュリティ機能でも利用され、不正なARPパケットや送信元IPアドレスを偽装した通信を防ぐために役立つ。
Q.DAI(Dynamic ARP Inspection)って何?
DAIの目的は、不正なARPパケットを検査・破棄して、ARPスプーフィングを防ぐこと。
DAIによるブロック動作
- 非信頼ポート(一般PCが繋がるポート)から流れてきたARPパケット(要求・応答の両方)を、スイッチがバインディングテーブルと突き合わせる。
- もし「IPアドレスとMACアドレスの組み合わせがテーブルと一致しない偽のARP」や、「自分のものではないIPを騙った不正なARPパケット」を検知した場合、スイッチは即座にそのパケットを破棄(ドロップ)する。
Q.IPSG(IP Source Guard)ってなに?
IPヘッダーの送信元IPアドレスをバインディングテーブルと比較して整合性をチェックする機能。送信元のなりすましを防止できる。
Q.DAIとIPSGって何が違うの?
IPSGを使えばARPスプーフィングを防げるのではないのか。つまりDAIいらなくね?という疑問があるだろう。
結論:ARPはIPヘッダーを持たないので、IPSGではなりすましをチェックできない。
ARPパケットの構成

p.13 Q.DHCPサーバを使ったLAN通信制限

では、フローとともに同のような流れでDHCPサーバを使ったLAN通信制限を実施しているのか。見ていこう!

- PCの接続とDHCP要求の送信
- PCがLANポートに接続され、DHCP Discover(ブロードキャスト)を送信。
- DHCPリレーエージェントによる転送
- PCが接続されたセグメントの境界にあるL3スイッチ(
L3SW1またはL3SW2)がDHCP要求を受信し、DHCPリレーエージェント機能(IPヘルパーアドレス)によってユニキャストに変換してサーバ室のDHCPサーバーへ転送。
- PCが接続されたセグメントの境界にあるL3スイッチ(
- DHCPサーバーでの端末判定(機能追加部分)
- DHCPサーバーは、届いたリクエスト内の
chaddr(MACアドレス)を確認。 - PC管理サーバー上の情報と照合し、そのPCが「正常PC(検査合格)」であるかを判定。
- 正常PCの場合: 通常通りIPアドレスを割り当て(Offer / Request / ACK)、設定情報を返す。その際のIPアドレスプールはgiaddrフィールドを参考にする。
- 不正PC・未登録PCの場合: IPアドレスをあえて割り当てない(応答しない、または拒否する)。
- DHCPサーバーは、届いたリクエスト内の
- L2スイッチでのDHCPスヌーピングによる学習
- 各フロアのL2スイッチは、DHCPサーバーとPC間のやり取り(Discover〜ACK)を監視(スヌープ)する。
- DHCPの割り当てが成功した場合、L2スイッチは「接続ポート」「MACアドレス」「割り当てられたIPアドレス」の紐付け情報を「DHCPスヌーピングバインディングテーブル」に自動で記録。
- L2スイッチでの通信制御(不正パケットの遮断)
- 正当なPCの通信: バインディングテーブルに登録されているため、通常のIPパケットやARPパケットの通信が許可される。
- 不正PC・未登録PCの通信: DHCPからIPを取得できず、勝手に手動(スタティック)でIPアドレスを設定して通信を試みても、L2スイッチがバインディングテーブルと照合し、「テーブルに登録されていない不正なIPパケット」であると検知してスイッチのポートで即座に破棄(ドロップ)。
p.13 Q.専用機器を使ったLAN通信制限



フローとともに理解していこう!
1.通信制限装置(M)とPC管理サーバを連携させる
→Mは機器のMACアドレスをベースに不正PCを特定できるようになる
2.不正PCからのARP要求はMのMACアドレスで応答する
→不正PCは宛先MACアドレスがMのまま送信するので、実際の相手には届かない
→結果的に、ネットワークへの悪影響を抑えられる
以上より、不正PCのLAN利用を防ぐことができる。
p.14 Q.なんで10秒間隔で送信を繰り返すの?

ARPキャッシュには「有効期限(エイジング)」がある
- パソコン(OS)は、一度学習した「IPアドレスとMACアドレスの組み合わせ(ARPキャッシュ)」を永遠に覚えておくわけではありません。一定時間が経つと古いキャッシュは破棄(エイジング)される。
- もし通信制限装置が最初に1回だけ嘘のARP応答を送って終わった場合、しばらく経つと排除対象PCのキャッシュが切れてしまい、再び本物のルータへ正しいARP要求を送って正常な通信ルートを復旧させてしまうリスクがある。
偽装状態を維持(ポイズニングの継続)する
- そのため、通信制限装置は10秒という短い間隔で執拗に嘘のARP応答を送り続け、PC側のARPキャッシュを強制的に自分(制限装置)のMACアドレスに上書きし続ける。
- これにより、排除対象PCが通信しようとするたびに、あるいは時間が経過しても、常に「宛先は通信制限装置」という状態が強制維持され、通信を完全にブロックし続けることができる。
Ciscoコマンド練習問題

今回の試験のシナリオに類似した練習問題を解いていこう!
Q.1 PCからL3SWのVLANインタフェースへの疎通

1. 今回やりたいこと(目的)
- PC(PC3)からL3スイッチのVLANインターフェース(SVI)への疎通確認
- L2スイッチを挟んだ構成において、異なるレイヤー間の機器同士で正しくVLANとルーティングが連携し、Ping(ICMP)が通る状態を作る。
2. 構成の前提情報(トポロジとポート割り当て)
構成に基づくインターフェースの接続関係は以下の通り。
| 機器名 | インターフェース | 接続先 / 役割 |
| L3SW | Gi0/0 | L2SW (Gi0/1) との接続(トランクポート) |
| L2SW | Gi0/1 | L3SW (Gi0/0) との接続(トランクポート) |
| L2SW | Gi0/0 | PC3 (e0) との接続(VLAN 10 アクセスポート) |
| PC3 | e0 | L2SW (Gi0/0) との接続 |
回答👇
#L3SW---------------------------------------------
en
conf t
ip routing
vlan 10
name try10
exit
int g0/0
no shut
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10
int vlan 10
ip address 10.0.0.1 255.255.255.0
no shut
#L2SW---------------------------------------------
en
conf t
vlan 10
name try10
exit
int g0/0
switchport mode access
switchport access vlan 10
int g0/1
desc **L3SW**
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10
#PC---------------------------------------------
ip 10.0.0.10/24 10.0.0.1Q.なんでVLAN10しか使わないのに、トランクポートにする必要があるの?
A.理由は、L3スイッチの通信の仕組みにある。L3スイッチでは、VLANごとのIPアドレス(SVI: int vlan 10)は、物理ポートではなく、仮想的なVLANインターフェースに割り当てられる。
もしL2SWとL3SWの間を「VLAN 10のアクセスポート」にしてしまうと、以下のような問題が起きる
- L3スイッチの物理ポートは「どのVLANのメンバーか」を直接持たない:
アクセスポートに届いたフレームは指定されたVLANに強制的に所属させられるが、L3スイッチのSVI(int vlan 10)にパケットを届けるには、IEEE 802.1Qのタグが付いた状態でフレームが内部処理に回る必要がある。 - トランクポートの役割:
トランクポートは、複数のVLAN(今回はVLAN 10)のタグ付きフレームをそのまま通すための道。L2SW側でVLAN 10に属するPCからのトラフィックをL3SWへ正確に中継し、L3SW側のルーティングエンジン(SVI)に渡すためには、両者を結ぶリンクがトランクである必要がある。
そのため、たとえVLANが1つ(VLAN 10のみ)であったとしても、L2スイッチとL3スイッチ間を接続するポートはトランクモードで設定するのがCiscoネットワークの正しい接続方法となる。
Q.2 L3SWのVLANインタフェースでDHCPリレーエージェントを稼働させる

1. 今回やりたいこと(目的)
- PC(PC1)がDHCPサーバーを持たない別セグメントにいる状態から、DHCPリレーエージェントを経由してIPアドレスを自動取得できるようにする
- L2SW1およびL3SW1を介して、PCからのDHCPブロードキャスト要求をL3スイッチの機能(
ip helper-address)でユニキャストに変換し、上位のDHCPサーバーへ安全に転送・配給させる仕組みを構築する。
2. 構成の前提情報(トポロジとポート割り当て)
構成に基づくインターフェースの接続関係は以下の通り。
| 機器名 | インターフェース | 接続先 / 役割 |
| DHCP | Gi0/0 | L3SW1 (Gi0/0) との接続(ルーテッドポート / 10.0.10.67) |
| L3SW1 | Gi0/0 | DHCPサーバーとの接続(ルーテッドポート / 10.0.10.1) |
| L3SW1 | Gi0/1 | L2SW1 (Gi0/0) との接続(トランクポート / VLAN 10) |
| L3SW1 | SVI (Vlan 10) | ゲートウェイ (10.0.0.1) + DHCPリレー設定 |
| L2SW1 | Gi0/0 | L3SW1 (Gi0/1) との接続(トランクポート / VLAN 10) |
| L2SW1 | Gi0/1 | PC1 (e0) との接続(VLAN 10 アクセスポート) |
| PC1 | e0 | L2SW1 (Gi0/1) との接続(DHCPクライアント) |
回答👇
#DHCPサーバ
en
conf t
int g0/0
desc **L3SW1**
ip address 10.0.10.67 255.255.255.0
no shut
ip dhcp excluded-address 10.0.0.1
ip dhcp pool vlan10
default-router 10.0.0.1
network 10.0.0.0 255.255.255.0
dns-server 8.8.8.8
lease 0 1
ip route 0.0.0.0 0.0.0.0 10.0.10.1
#L3SW---------------------------------------------
en
conf t
ip routing
vlan 10
name try10
exit
int g0/0
desc **DHCP**
no switchport
ip address 10.0.10.1 255.255.255.0
no shut
int g0/1
desc **L2SW**
no shut
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10
int vlan 10
ip address 10.0.0.1 255.255.255.0
ip helper-address 10.0.10.67
no shut
#L2SW---------------------------------------------
en
conf t
vlan 10
name try10
exit
int g0/0
desc **L3SW**
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10
int g0/1
switchport mode access
switchport access vlan 10
#PC---------------------------------------------
ip dhcpQ.3 Q2をベースとした環境にACLを割り当てる

1. 今回やりたいこと(目的)
- DHCP自動取得とリレーの実現
- 別セグメント(VLAN10)に属するPC群が、L3スイッチの機能(
ip helper-address)を経由して、上位セグメントにあるDHCPサーバーからIPアドレスを自動取得できるようにする。
- 別セグメント(VLAN10)に属するPC群が、L3スイッチの機能(
- ACLによるアクセス制御の両立
- VLAN10からの通信を、指定された特定のサーバー(
PCadおよびMaintenance)だけに限定する。 - ただし、それ以外の通信をブロックする際に、DHCPの仕組み(ポート67/68)まで巻き込んで遮断されないよう、通信要件を考慮した適切なACL設計を行う。
- VLAN10からの通信を、指定された特定のサーバー(
2. 構成の前提情報(トポロジとポート割り当て)
構成に基づくインターフェースの接続関係は以下の通り。
| 機器名 | インターフェース | 接続先 / 役割 |
| DHCPserver | Gi0/0 | L3SWとの接続(ルーテッドポート / 10.0.111.101) |
| PCad | Gi0/0 | メンテナンス用PC / 接続先サーバー(10.0.111.102) |
| Maintenance | Gi0/0 | 保守用サーバー(10.0.111.103) |
| L3SW | Gi0/0 | DHCP/サーバーセグメント側の接続(ルーテッドポート / 10.0.111.1) |
| L3SW | Gi0/1 | L2SWとの接続(トランクポート / VLAN 10) |
| L3SW | VLAN 10 | 仮想インターフェース(SVI / 10.0.10.1, DHCPリレー設定) |
| L2SW | Gi0/0 | L3SWとの接続(トランクポート / VLAN 10) |
| L2SW | Gi0/1 – 0/3 | 各PCとの接続(アクセスポート / VLAN 10) |
👇回答
IPアドレス
DHCP 10.0.111.101
PCad 10.0.111.102
Maint 10.0.111.103
L3SW 10.0.111.1
L3SW(VLANint) 10.0.10.1
L2SW VLAN10
PC DHCPで取得
#DHCPサーバ-------------------------------
en
conf t
host DHCPserver
int g0/0
ip address 10.0.111.101 255.255.255.0
no shut
exit
ip dhcp excluded-address 10.0.10.1
ip dhcp pool vlan10
default-router 10.0.10.1
network 10.0.10.0 255.255.255.0
dns-server 8.8.8.8
lease 1 12
exit
ip route 0.0.0.0 0.0.0.0 10.0.111.1
end
wr
#PCad-------------------------------
en
conf t
host PCad
int g0/0
ip address 10.0.111.102 255.255.255.0
no shut
exit
ip route 0.0.0.0 0.0.0.0 10.0.111.1
end
wr
#Maintenance-------------------------------
en
conf t
host Maintenance
int g0/0
ip address 10.0.111.103 255.255.255.0
no shut
exit
ip route 0.0.0.0 0.0.0.0 10.0.111.1
end
wr
#L3SW-------------------------------
en
conf t
host L3SW
ip routing
vlan 10
name vlan10
exit
ip access-list extended ACL1
permit udp any host 10.0.111.101 eq bootpc
permit udp any host 10.0.111.101 eq bootps
permit ip any 10.0.111.102 0.0.0.0
permit ip any 10.0.111.103 0.0.0.0
int g0/0
no switchport
ip address 10.0.111.1 255.255.255.0
no shut
exit
int g0/1
no shut
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10
exit
int vlan 10
no shut
ip address 10.0.10.1 255.255.255.0
ip helper-address 10.0.111.101
ip access-group ACL1 in
end
wr
#L2SW-------------------------------
en
conf t
host L2SW
vlan 10
name vlan10
exit
int g0/0
no shut
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 10
exit
int range g0/1-3
no shut
switchport mode access
switchport access vlan 10
exit
#PC-------------------------------
ip dhcp
テスト一覧
#DHCPへのping
ping 10.0.111.101
#PCadministrator
ping 10.0.111.102
#testPCへ
ping 10.0.111.254
📝L3SWのvlanインタフェースにはno switchportは必要ない
📝ルーティングできないときは各サーバのデフォルトルートの指定を確認
📝アクセスリストの割り当て
以下より、甘んじてDHCPのbootpc,bootspのみ許可する設定を追加する
もし、bootpcとbootpsへの通信を許可しないと...👇
VLANインタフェースに割り当てると...DHCP取得できないbut,メンテナンスとPC管理へはOK
L3intg0/1にinとして割り当てると...何もブロックされない
L3intg0/0にoutとして割り当てると...DHCP取得できないbut,メンテナンスとPC管理へはOKでは、今回の練習問題は終わり!!
