業務でCisco機器を触っている人なら当たり前のよ うにVLANは使っていると思います。ルータと違い、スイッチでは直接インターフェイスにIPアドレスを割り当てるということは行わずSVI (Switch Virtual Interface)を作成してそれに物理ポートやIPアドレスを割り当てるのが基本です。(機種や設定によってはインターフェイスに直接割り当てること も可能ですが)。スイッチにあるポートはスイッチポート(L2)、ルータのポートはルーテッドポート(L3)と呼びます。
■VLAN作成
VLANを作成してそれに物理ポートを割り当てる設定 例です。下記ではVLANを作成すると同時にSTPも無効にしています。シスコでは使用できるVLAN ID 1~4094であり、1002~1024までは既に予約されているVLANであり、ユーザ側で使用することはできませんので注意してください。また VLAN 1は既に作成されており使用することも可能ですが、削除することもできません。
(config)# vlan 10,20,30 (config-vlan)# exit (config)# no spanning-tree vlan 10,20,30 |
Catalyst2960Sや3750Xなどでは上記 コマンドでVLANを作成することができますがCisco1812Jと892Jでは上記コマンドで作成するこ とができません。これらの機種は以下のようにVLANデータベースモードで作成する必要があります。このコマンドでは複数のVLANを作成する際に 一行でまとめて書く事が不可であり、作成するVLANの数だけ行を打たないと作成できないので多数のVLANを作成する場合、非常 に面倒くさいです。ただ、先に書いたようにこれら2機種のみで使用するコマンドで他の機種ではこのコマンドを使うことはまずないです。
# vlan database (vlan)# vlan 10 (vlan)# vlan 20 (vlan)# vlan 30 |
■物理ポートへVLANの割り当て
作成したVLANを物理ポートにアサインするのが以下 の設定です。下記ではGi1/0/1にvlan10、Gi1/0/2にvlan20、Gi1/0/3にvlan30を割り当てています。
(config)# inteface GigabitEthernet1/0/1 (config-if)# switchport access vlan 10 (config-if)# switchport mode access (config)# inteface GigabitEthernet1/0/2 (config-if)# switchport access vlan 20 (config-if)# switchport mode access (config)# inteface GigabitEthernet1/0/3 (config-if)# switchport access vlan 30 (config-if)# switchport mode access |
これらは以下のshowコマンドで正常に適用 されているか確認可能です。
# show vlan VLAN Name Status Ports 10 VLAN010 active Gi1/0/1 20 VLAN020 active Gi1/0/2 30 VLAN030 active Gi1/0/3 |
■VLANにIPアドレスの割当
L3スイッチであれば作成したVLANにIPアドレスを割り当て、VLAN間ルーティングを実施することが可能です。L2スイッチでも複数のVLANにIPを割り当 てることも可能ですが、IPの無駄使いであり特に意味はないかと思われます。
(config)# interface Vlan10 (config-if)# ip address 192.168.10.1 255.255.255.0 (config-if)# no shutdown (config)# interface Vlan20 (config-if)# ip address 192.168.20.1 255.255.255.0 (config-if)# no shutdown (config)# interface Vlan30 (config-if)# ip address 192.168.30.1 255.255.255.0 (config-if)# no shutdown3 |
■VLANの削除
作成されたVLANを削除するには単にno vlanコマンドを実行すれば消せるわけではありません。VLANを作成した際にflashのvlan.datというファイルに書き込まれていますので、 スイッチを初期化する際などには このファイルも削除する必要があります。
# dir Directory of flash:/ 1 -rw- 21283724 Dec 29 2012 11:18:00 +00:00 c181x-adventerprisek9-mz.124-15.T17.bin 2 -rw- 3278 May 16 2008 01:14:28 +00:00 sdmconfig-1811-1812.cfg 3 -rw- 931840 May 16 2008 01:14:46 +00:00 es.tar 4 -rw- 1505280 May 16 2008 01:15:06 +00:00 common.tar 5 -rw- 1038 May 16 2008 01:15:20 +00:00 home.shtml 6 -rw- 112640 May 16 2008 01:15:34 +00:00 home.tar 7 -rw- 600 Jul 23 2008 10:39:44 +00:00 vlan.dat 32079872 bytes total (8224768 bytes free) |
削除するにはdeleteコマンドを使用します。
# delete flash:vlan.dat Delete filename [vlan.dat]? Delete flash:vlan.dat? [confirm] |
■Trunk接続
上記に記載したVLANの割り当ては1ポートにつき 1VLANというAccessPortと呼ばれる単純なものですが、1ポートに複数のVLANを割り当てることができます。送出するフレームにVLAN TagをつけてそれがどのVLANであるか識別する技術です。なので接続先のポートも当然Trunk設定にしておきVLAN IDを合わせておかなければ通信することができません。またシスコではTagging接続のことを Trunk接続と呼びますが、これはメーカによって呼び名がまちまちなので注意してください。
以下、実際の設定例です。
(config)# inteface GigabitEthernet1/0/1 (config-if)# switchport trunk encapsulation dot1q (config-if)# switchport trunk native vlan 10 (config-if)# switchport trunk allowed vlan 10,20,30 (config-if)# switchport mode trunk |
まず、Trunkのネゴシエーションでdot1qを指定しています。dot1qのほかにシスコ独自のISLというのもありますがシスコでしかサポートして おらずCatalyst2960Sなどのローエンド機種ではサポートされていません。また、dot1qは他メーカーの機種でも共通のものであり、特別な事 情がない限りこちらを選択して問題はないかと思います。
次にnative vlan 10でtagをつけないvlanを指定しています。これはTrunkのネゴシエーションが壊れたときに救済するVLANを指定するものです。これは特に指 定しなくとも問題なく動作するのですが万が一の際にこのVLANだけは通信させたい場合に指定するものですが、実際の現場ではあまり設定することはないで す。もちろん理論上は設定しておくほうがよいのですが、これを設定してたから助かったというケースはいまだ0です。
次にallowed vlanで通信を許可するVLANを設定します。タグをつけて流すことを許可するVLANを指定するものです。ここに記載したVLANのみ通信でき、この コマンドを使用しない場合はすべてのVLANが流れます。このコマンドを使用していた場合、運用が始まってからVLANを追加したい、削除したいといった ことがよくありますが、その場合以下のコマンドで対応可能です。
※追加の場合 (config-if)# switchport trunk allowed vlan add vlanid ※削除の場合 (config-if)# switchport trunk allowed vlan remove vlanid |
addやremoveキーワードを指定しないと上記のコマンドで記載したVLAN IDに上書きされてしまうので注意してください。また、どのポートでどのVLANを流しているのかを見 るのに便利なコマンドがあります。
# show interfaces trunk Port Mode Encapsulation Status Native vlan Gi1/0/1 on 802.1q trunking 10 Port Vlans allowed on trunk Gi1/0/1 10,20,30 Port Vlans allowed and active in management domain Gi1/0/1 10,20,30 Port Vlans in spanning tree forwarding state and not pruned Gi1/0/1 10,20,30 |
ただし、上記の出力はallowd vlanに指定したvlanがそのまま出るわけで実際に通信できているvlanが表示されているわけではないことに注意してください。
■DTP ( Dynamic Trunking Protocol )
上記Trunkポートを設定した 際にはポートからDTPパケットが送信されます。このDTPパケットはポートをアクセスにするのかトランクにするのかを動的に決定するプロトコルでシスコ 独自のものとなっています。ただ、実務でこのDTPを使用したことはいまだかつて一度もありません。アクセスかトランクかは設計段階で既に決まっているこ とであり、動的にネゴシエーションするようなものではないからです。
DTPパケットを送信するポートのモードとして以下があり、それぞれをまとめたのが以下となります。
動作モード |
説明 |
DTP有無 |
access |
アクセスポートに設定 |
無 |
trunk |
DTPを送信しネゴシエーショ ンする。 対向がtrunk / dynamic desirable / dynamic autoの場合にTrunkとなる。 |
有 |
dynamic desirable |
DTPを送信しネゴシエーショ ンする。 対向がtrunk / dynamic desirable / dynamic autoの場合にTrunkとなる。 |
有 |
dynamic auto |
DTPを受信しネゴシエーショ ンする。 対向がtrunk / dynamic desirableの場合にTrunkとなる。 |
無 |
繰り返しますが動的にアクセスかトランクかをネゴするのは現場でまずやらないのでDTPを送信するモードの場合は、以下の設定でDTPを停止することが奨励されます。
(config-if)# switchport nonegotiate |
■ルーテッドポートでTrunk接続
Trunk接続といえば一般的にスイッチで設定するも のですがルータのルーテッドポートにも同様の設定をすることが可能です。物理ポート上でサブインターフェイスを作成しサブインターフェイスにタグIDを設 定する形となります。以下、設定例です。
(config)# interface GigabitEthernet0/0 (config-if)# no ip address (config-if)# duplex full (config-if)# speed 100 (config)# interface GigabitEthernet0/0.10 (config-if)# encapsulation dot1Q 10 (config-if)# ip address 192.168.10.1 255.255.255.0 (config)# interface GigabitEthernet0/0.20 (config-if)# encapsulation dot1Q 20 (config-if)# ip address 192.168.10.1 255.255.255.0 (config)# interface GigabitEthernet0/0.30 (config-if)# encapsulation dot1Q 30 (config-if)# ip address 192.168.20.1 255.255.255.0 |