- VLANとは
- VLANの作成
- VLAN間ルーティング
VLANとは
VLAN(Virtual LAN)は、1代のスイッチを仮想的に複数のネットワークに分割する技術です。
1台の同じスイッチに接続された端末同士であっても、異なるVLANに所属している場合は、
異なるブロードキャストドメインに所属しているとみなされ、そのままでは双方で通信を行うことができなくなります。
この技術を使うことで
- 物理的なレイアウトにとらわれずに、ネットワークを分けることができる
- ブロードキャストドメインを分割し、不要な通信を減らす
- 異なるVLAN間では直接通信することができないため、セキュリティを高められる
といった利点があります。
VLANは、通常ポートごとに設定する必要があり、2つの種類に分けられます。
- アクセスポート
- トランクポート
アクセスポートは、端末を接続するためのポートで、1つのポートに1つのVLANが割り当てられます。
トランクポートは、複数のVLANに所属するポートで、スイッチ間やルータと接続するために用いられます。複数のネットワークが1つのポートを追加するため、どのネットワーク化を識別するためのタグと呼ばれる情報がフレームに追加されます。
トランクポートがなくても、アクセスポートだけでネットワークを組むことが可能です。が、
その場合、スイッチ間の接続にVLANの数だけ物理的なポートが必要となります。
VLANのタグ情報を扱う方法として、Cisco独自のISLプロトコルと標準プロトコルのIEEE802.1Qがあります。ここでは、IEEE802.1Qのみ扱います。
VLANの作成
実際にVLANを作成していきます。
VLANは、VLAN IDと呼ばれる1~4094の番号が割り当てられます(使用できる番号は機種によって異なります)。このうち、VLAN1はデフォルトで作成済みとなっており、初期設定ではすべてのポートがVLAN1に所属しています。また、1002~1005も最初から作成済みとなっています。
VLAN ID10のVLANを作成します。
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#name sales
Switch(config-vlan)#end
Switch#
%SYS-5-CONFIG_I: Configured from console by console
Switch#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig0/1, Gig0/2
10 sales active
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch#
VLANには、オプションで名前を付けることができます。ここでは、営業部門用のVLANとして、salesとしてみました。
VLANの情報は、以下のコマンドで確認できます。
show vlan [brief]
VLANを削除する場合は、以下のようにします。
Switch(config)#no vlan 10
Switch(config)#end
Switch#
%SYS-5-CONFIG_I: Configured from console by console
Switch#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig0/1, Gig0/2
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch#
アクセスポートの設定
次にスイッチのインターフェースをアクセスポートに設定し、作成したVLANを割り当てていきます。
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#name sales
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#name information
Switch(config-vlan)#exit
Switch(config)#
Switch(config)#int f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#exit
Switch(config)#int range f0/2 - 5
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#exit
Switch(config)#int range f0/6,f0/8
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#end
Switch#
%SYS-5-CONFIG_I: Configured from console by console
Switch#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/7, Fa0/9, Fa0/10, Fa0/11
Fa0/12, Fa0/13, Fa0/14, Fa0/15
Fa0/16, Fa0/17, Fa0/18, Fa0/19
Fa0/20, Fa0/21, Fa0/22, Fa0/23
Fa0/24, Gig0/1, Gig0/2
10 sales active Fa0/1, Fa0/6, Fa0/8
20 information active Fa0/2, Fa0/3, Fa0/4, Fa0/5
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch(config)#
- 設定したいインターフェースのコンフィギュレーションモードへ移行
- モードをaccessに指定
- VLAN IDの割り当て
といった流れになります。
上のコマンドにあるように、interface range …コマンドを使って、複数のポートをまとめて設定することも可能です。
設定後にVLANの情報を確認すると、指定したポートがVLAN1の所属から外れて、今回指定したVLANに所属していることが確認できます。
トランクポートの設定
トランクポートの設定は、以下のような流れになります。
- 設定したいインターフェースのコンフィギュレーションモードへ移行
- トランキングプロトコルの指定
- モードをtrunkに指定
- 許可するVLAN IDの割り当て
- Native VLANの割り当て
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#int f0/24
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 10,20
Switch(config-if)#switchport trunk native vlan 1
Switch(config-if)#end
Switch#
許可するVLAN IDの割り当てを明示的に行わなかった場合は、すべてのVLANを許可している状態になります。
Native VLANの指定は、任意です。デフォルトは1ですが、それ以外の場合は上記のコマンドで変更してください。
使用しているスイッチが、IEEE 802.1Qにしか対応していない場合、トランキングプロトコルの指定は不要になります(設定するコマンドが使用できないようになっています)
VLAN間ルーティング
VLAN間の通信は、間にルータが必要になります。
上記のような構成の場合、スイッチとルータの間のケーブルは1本になっているため
2つのVLAN通信をまかなうために、ルータにはサブインターフェースと呼ばれる仮想インターフェースを作成します。
物理的にVLANごとにケーブルを分ける構成も可能ですが、VLANの数が多くなってくるとその分必要なポート、ケーブルが増えてしまいます。
まず、スイッチにVLANの設定をしていきます。
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#exit
Switch(config)#int f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#exit
Switch(config)#int f0/23
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#exit
Switch(config)#int f0/24
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 10,20
Switch(config-if)#exit
Switch(config)#
つぎに、ルータの設定をします。
サブインターフェースを2つ作成し、VLAN10、20をそれぞれ割り当てて、IPアドレスを設定します。
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int f0/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 10.10.10.1 255.255.255.0
Router(config-subif)#exit
Router(config)#int f0/0.20
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip address 10.10.20.1 255.255.255.0
Router(config-subif)#exit
Router(config)#int f0/0
Router(config-if)#no shut
Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
%LINK-5-CHANGED: Interface FastEthernet0/0.10, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.10, changed state to up
%LINK-5-CHANGED: Interface FastEthernet0/0.20, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0.20, changed state to up
Router(config-if)#
設定は完了です。
PCからサーバへPingを打って、疎通確認してみます。
C:\>ping 10.10.20.200
Pinging 10.10.20.200 with 32 bytes of data:
Request timed out.
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Ping statistics for 10.10.20.200:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>
うまくいっているようです。
L3スイッチを利用したルーティング
VLAN間通信をするために、L3スイッチを利用することもできます。
L3スイッチでルーティングを実現するためには、2つの方法があります。
- SVI(Switch Virtual Interface)を利用する方法
- ルーテッドポートを利用する方法
前者は、L3スイッチに定義したVLANにIPアドレスを割り当てる方法で、
作成したVLAN用の仮想的なインターフェースとして動作します。
後者は、L3スイッチの物理ポートをルータのポートのように直接IPアドレスを割り当てる方式です。
この場合、ルーテッドポートにした物理インターフェースにはVLANを割り当てることはできません。
まず、SVIを使った方法を試してみます。
VLANの作成から、ポートへの割り当てまでは、L2スイッチと同じです。
作成したVLANを仮想的なインターフェースとみなして、IPアドレスを割り当てます。
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#vlan 10
Switch(config-vlan)#exit
Switch(config)#vlan 20
Switch(config-vlan)#exit
Switch(config)#
Switch(config)#int f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#exit
Switch(config)#int f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#exit
Switch(config)#
Switch(config)#int vlan 10
Switch(config-if)#
%LINK-5-CHANGED: Interface Vlan10, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
Switch(config-if)#ip address 10.10.10.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#int vlan 20
Switch(config-if)#
%LINK-5-CHANGED: Interface Vlan20, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
Switch(config-if)#ip address 10.10.20.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#
この状態では、まだ、2つのVLAN間で通信を行うことができません。
L3スイッチは、デフォルトの状態でルーティング機能が無効になっているため、有効化する必要があります。
Switch(config)#ip routing
通信確認してみます。
C:\>ping 10.10.20.200
Pinging 10.10.20.200 with 32 bytes of data:
Request timed out.
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Ping statistics for 10.10.20.200:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>
最後に、ルーテッドポートの設定についても見てみます。
物理ポートをルーテッドポートに変更するには、対象のインターフェースで以下のコマンドを実行します。
Switch(config-if)#no switchport
スイッチを設定していきます。
Switch>en
Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#int f0/1
Switch(config-if)#no switchport
Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Switch(config-if)#ip address 10.10.10.1 255.255.255.0
Switch(config-if)#exit
Switch(config)#int f0/2
Switch(config-if)#no switchport
Switch(config-if)#
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to down
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/2, changed state to up
Switch(config-if)#ip address 10.10.20.1 255.255.255.0
Switch(config-if)#
Switch(config-if)#exit
Switch(config)#
Switch(config)#ip routing
Switch(config)#end
Switch#
この方法でも、VLAN間で通信することができます。
C:\>ping 10.10.20.200
Pinging 10.10.20.200 with 32 bytes of data:
Request timed out.
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Reply from 10.10.20.200: bytes=32 time<1ms TTL=127
Ping statistics for 10.10.20.200:
Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>
以上、お疲れさまでした。
コメント