VLAN10とVLAN20を作ってPCを振り分けたら、同じスイッチにいるのに別VLANのPC同士は本当に通信できなくなるのでしょうか? そして、それをルーターでつなぐとどうなるでしょう?
座学で「VLANが違えば別のブロードキャストドメイン」「VLAN間はルーティングが必要」と学びました。今回は実際にVLANを作り、通信できない状態から、router-on-a-stickで通信できる状態へと自分の手で変えていきます。
この演習でできるようになること
- スイッチにVLAN10・VLAN20を作成し、アクセスポートへ割り当てられるようになる
- スイッチ間・ルーターとの接続をトランクポートとして設定できるようになる
- router-on-a-stickでサブインターフェースを作り、VLAN間ルーティングを成立させられるようになる
使用トポロジ
Switch 2960を1台、Router 2911を1台、PCを4台使用します。PC0・PC1をVLAN10に、PC2・PC3をVLAN20に所属させ、スイッチとルーターの間を1本のトランクリンクでつなぎます(router-on-a-stick構成)。
準備
- Switch 2960を1台、Router 2911を1台、PC-PTを4台配置する
- PC0・PC1をスイッチのFa0/1・Fa0/2に、PC2・PC3をFa0/3・Fa0/4にストレートケーブルで接続する
- スイッチのFa0/24とルーターのGigabitEthernet0/0をストレートケーブルで接続する(Packet TracerはAuto-MDIXにより自動判定してくれることが多いが、リンクが点灯しない場合はクロスケーブルに変更する)
- 各PCのIPアドレスを設定する
| 機器 | 所属VLAN | IPアドレス | サブネットマスク | デフォルトゲートウェイ |
|---|---|---|---|---|
| PC0 | VLAN10 | 192.168.10.10 | 255.255.255.0 | 192.168.10.1 |
| PC1 | VLAN10 | 192.168.10.11 | 255.255.255.0 | 192.168.10.1 |
| PC2 | VLAN20 | 192.168.20.10 | 255.255.255.0 | 192.168.20.1 |
| PC3 | VLAN20 | 192.168.20.11 | 255.255.255.0 | 192.168.20.1 |
手順
- スイッチでVLAN10とVLAN20を作成する
Switch(config)# vlan 10
Switch(config-vlan)# name STAFF
Switch(config-vlan)# exit
Switch(config)# vlan 20
Switch(config-vlan)# name GUEST
Switch(config-vlan)# exit
- PC0・PC1のポートをVLAN10のアクセスポートに、PC2・PC3のポートをVLAN20のアクセスポートに設定する
Switch(config)# interface range FastEthernet0/1-2
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 10
Switch(config)# interface range FastEthernet0/3-4
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 20
- ルーターにつながるポートをトランクポートに設定する
Switch(config)# interface FastEthernet0/24
Switch(config-if)# switchport mode trunk
- この時点でPC0からPC2へpingを打ち、通信できないことを確認する(VLANが違えばブロードキャストドメインも別、を体感するステップ)
C:\> ping 192.168.20.10
- ルーター側でサブインターフェースを作成し、router-on-a-stickを構成する
Router(config)# interface GigabitEthernet0/0
Router(config-if)# no shutdown
Router(config)# interface GigabitEthernet0/0.10
Router(config-subif)# encapsulation dot1q 10
Router(config-subif)# ip address 192.168.10.1 255.255.255.0
Router(config)# interface GigabitEthernet0/0.20
Router(config-subif)# encapsulation dot1q 20
Router(config-subif)# ip address 192.168.20.1 255.255.255.0
- 再度PC0からPC2へpingを打ち、今度は通信できることを確認する
確認
Switch# show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active
10 STAFF active Fa0/1, Fa0/2
20 GUEST active Fa0/3, Fa0/4
Router# show ip route
C 192.168.10.0/24 is directly connected, GigabitEthernet0/0.10
C 192.168.20.0/24 is directly connected, GigabitEthernet0/0.20
C:\> ping 192.168.20.10
Reply from 192.168.20.10: bytes=32 time=1ms TTL=127
合格チェックリスト
show vlan briefでVLAN10・VLAN20がそれぞれ正しいポートに割り当てられている- VLAN間ルーティング設定前は、PC0からPC2へのpingが失敗することを確認した
- ルーターのサブインターフェースにVLANごとのIPアドレスが設定されている
- router-on-a-stick構成後、PC0からPC2へのpingが成功する
- PC1からPC3へのpingも成功する
- スイッチのFa0/24が
trunkモードになっている(switchport mode accessのままではない)
つまずきポイント
- トランク設定忘れ:ルーターにつながるポートを
switchport mode accessのままにしてしまうと、VLANタグが乗ったフレームがそもそも通らず、router-on-a-stick自体が成立しません - 物理インターフェースへのIP設定:
GigabitEthernet0/0本体にIPアドレスを設定してしまうケースがよくありますが、IPアドレスは.10や.20のサブインターフェース側に設定するのが正解です - VLAN未作成のままアクセスポートに割り当て:
vlan 10コマンドでVLANを作る前にswitchport access vlan 10だけ実行しても、スイッチ内部ではVLANが自動作成されて動くことがありますが、意図が伝わりにくいためvlanコマンドで明示的に作成する手順を必ず踏みましょう
router-on-a-stick構成で、PC0からPC2へのpingが失敗しています。ルーターのCLIを確認したところ、GigabitEthernet0/0に192.168.10.1 255.255.255.0が設定され、サブインターフェースは作成されていませんでした。何が問題でしょうか?
答えを見る
IPアドレスをサブインターフェースではなく物理インターフェース本体に設定してしまっていることが問題です。router-on-a-stickでは、VLANごとにencapsulation dot1qを設定したサブインターフェース(GigabitEthernet0/0.10など)を作成し、そこにIPアドレスを割り当てる必要があります。物理インターフェース自体はno shutdownだけにしておきます。
VLANを分けた直後は本当に通信できなくなって、router-on-a-stickを組んだ瞬間につながる——このビフォーアフターを自分の手で確認できると、座学の理解がぐっと深まるよね。次はSTP、冗長化したときに起きるループの怖さを実際に見ていくよ。