スイッチの動作
- スイッチはフレームを受信すると、送信元MACアドレスを学習します。
- VLANも記憶する
- MACアドレステーブルに受信したフレームの宛先MACアドレスと一致する情報が無ければ、そのフレームをフラッディング(受信ポート以外の全ポートから送信)します。
- MACアドレステーブルに受信したフレームの宛先MACアドレスと一致する情報があれば、そのポートから転送します。
- VLANを分けている場合は、同じVLANにのみフラッディングします。
- スイッチは直接接続されたデバイスのMACアドレスを学習する
- 動的に学習したMACアドレスはエージングTIMEがきたら自動的に消去される
- ポートにVLANIDを割り当てる。デフォルトはVLANID 1
レイヤ2スイッチは、物理アドレスに基づいて転送処理を行います。
送信先を決定するためには、受信フレームのフレームヘッダに格納されている、宛先MACアドレスを使用します。
スイッチの管理VLAN
スイッチのデフォルトの設定では全てのポートがアクセスポートVLAN1になっているので、管理VLANは「VLAN1」に設定
Vlanとは
- スイッチでVlanを分割する機能
- Vlan = ブロードキャストドメイン = サブネット
- VLAN IDで識別
- スイッチのポートはVLANID1が最初から割り当てられている
- 使えるVLANは
1-1001、1006-4094
IEEE 802.1Q 【 dot1q 】
各VLANグループに固有の識別番号(VLAN ID)を割り当て、これを送受信されるデータ単位(イーサネットフレーム)のヘッダ部(制御情報)に記述してグループを識別する**「VLANタギング」(VLAN tagging)の方法について規定**
「ネイティブVLAN」とは、トランクポートを流れるフレームにVLANタグが付与されない唯一のVLANです。
ネイティブVLANは、スイッチを管理するトラフィック(CDPやSTPやDTPなど)の送受信で利用されます
トランクポートとアクセスポート
トランクポート
- タグ付を行う(タギング)
- スイッチ間を一本のケーブルで結び、複数のVLANを割り当てて、転送するポート
- トランクリンクでフレームを伝送する際にタグ(VLAN識別情報)を付けます。送信側でタグをつけて、受信側でタグを外す
- 受信側では挿入されたVLANタグを参照してどのVLANのポートに転送するかを決める
アクセスポート
- タギングはされない スイッチでパケットがどのVLANに属するか判断して、そのVLANのポートに流す
- ポートにVLAN IDを割り当てる。デフォルトはVLANID 1
- 一つのケーブルで一つのVLANフレームを転送するポート
デフォルトで、アクセスポートで動いている
Switch#show int switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: dynamic auto //設定したモード(デフォルトで DTPのdynamic auto)
Operational Mode: static access //実施のモード(アクセスポートとして動作)
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: native
Negotiation of Trunking: On // DTP ON
Access Mode VLAN: 1 (default) // VLan1が割当られている
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
vlanコマンド
vlanの状態確認
- show vlan
- show int switchport
- IFのアクセス/トランク/トランクプロトコル/DTPなど確認できる
- show int trunk
- トランクでどのVlanが許可されているかなど確認できる
- show int Fa/01 switchport
VLAN1002-1005は予約されている
act/lshutはVLANのshutdown状態。
Switch#show vlan
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4, Fa0/5, Fa0/6, Fa0/7, Fa0/8, Gi0/1
2 windows active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
1 enet 100001 1500 - - - - - 0 0
2 enet 100002 1500 - - - - - 0 0
1002 fddi 101002 1500 - - - - - 0 0
1003 tr 101003 1500 - - - - - 0 0
1004 fdnet 101004 1500 - - - ieee - 0 0
1005 trnet 101005 1500 - - - ibm - 0 0
スイッチポートのVLAN情報の表示
show int IF名 switchport
Switch#show int Fa0/1 switchport
Name: Fa0/1
Switchport: Enabled
Administrative Mode: dynamic auto
Operational Mode: static access
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: native
Negotiation of Trunking: On
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
VLAN作成
【コマンド構文:VLAN作成】
(config)#vlan {vlan番号}
(config-vlan)#name {vlan名} (任意)
アクセスポート作成
【コマンド構文:VLANの割り当て】
(config-if)#switchport access vlan {VLAN番号}
【VLAN番号】
・1~4094から指定(作成)可能
・デフォルトでVLAN1とVLAN1002~1005が作成済み
・デフォルトで作成されているVLANは削除できない
show int trunk
トランクプロトコル
- トランクポートでのおはなし。一つのケーブルで複数のVLANフレームを同時に転送するための技術
- IEEE802.1qとISIL(シスコ独自)
- 主流はIEEE802.1q でISILはほとんど使われていない
ネイティブVLANとは(IEEE802.1q)
- トランクリンクでのおはなしで、IEEE 802.1Qの機能
- トランクリンクでは、タグを挿入することによって、受信側でVLANトラフィックを区別している
- 対向のスイッチからトランクポートでタグなしのフレームを受信した場合、ネイティブVLANからのトラフィックだと認識される
- よって、両端のスイッチでネイティブVLANを合わせている必要がある
- デフォルトのネイティブVLANは1
- ネイティブVLANは「switchport trunk native vlan {VLAN番号}」コマンドで変更できます。変更していないデフォルトの状態ではVLAN1がネイティブVLANになっています。
- IEEE 802.1Qに対応していない(タグを理解しない、タグ付け出来ない)デバイスとの互換性を持たせています。
管理VLAN
- telnetやSNMPで管理するためのVLAN
- デフォルトの管理VLANは1
ネイティブVLANが異なっている
「ネイティブVLAN」とは、トランクポートを流れるフレームにVLANタグが付与されない唯一のVLANです。ネイティブVLANでない通常のVLANの場合は、フレームにVLANタグが付与されます。このとき、対向のスイッチ間でネイティブVLANが異なる場合、ネイティブVLANミスマッチが発生します。例えば、以下のような場合です。
スイッチA:ネイティブVLAN【20】
スイッチB:ネイティブVLAN【50】
スイッチA、Bが直接接続されており、上記の設定がされているとき、スイッチAからBへVLAN20のフレームはタグなしVLANとして送信されます。ですが、スイッチBで想定しているのは「タグ有り」のVLAN20フレームです。結果として、ネイティブVLANがミスマッチの状態となり、通信ができません。
ネイティブVLANと管理VLAN
ネイティブVLAN=管理VLANと認識されるのは、実際に利用する際に同じにするケースが多いためです。利用方法により、別々にすることも出来ますし、同じVLANを割り当てることも出来ます。
デフォルトではネイティブVLANも管理VLANも1
これにより、IEEE 802.1Qに対応していない(タグを理解しない、タグ付け出来ない)デバイスとの互換性を持たせています。
ネイティブVLANは、スイッチを管理するトラフィック(CDPやSTPやDTPなど)の送受信で利用されます。
DTP
-
スイッチとスイッチを接続したポートで対向のポートとネゴシエーションしてポートをアクセスポートとするか、トランクポートとするかを決定するためのCisco独自のプロトコルです。
-
トランクポートの場合、IEEE802.1QまたはCisco ISLのカプセル化プロトコルのネゴシエーションも行います。
-
スイッチ毎にデフォルトの設定は異なる
- show int switchport で確認できる
【コマンド構文:DTPの無効化】
(config-if)#switchport nonegotiate
対向のデバイスによってはDTPが正しく動作しないことがあります。(DTPをサポートしていないデバイスもあるため)
そのためトランクポートにする場合は、「switchport nonegotiate」でDTPを止めて「switchport mode trunk」で手動でトランクポートにすることが推奨されています。
【コマンド構文:VLANカプセル化方式の指定】
Switch(config-if)#switchport trunk encapsulation dot1q
カプセル化形式としてシスコ独自のisl、標準化された802.1q形式のdot1qを指定出来ます。他社機と接続する場合はdot1qの指定が必須です。Catalyst間の接続でも最近は殆どdot1qが使われています。デフォルトは自動で接続先とisl優先でネゴシエーションします。又、Catalyst2960等、dot1qだけサポートしており、コマンド自体が使えないスイッチもあります
DTP送信の停止
(config-if)# switchport nonegotiate
通常はDTPは使わない
動的なトランクポートの設定 DTPの設定
switchport mode dynamic desirable | dynamic auto
accessとtrunkは自身のポートをaccessとtrunkにする。
↓は対抗によって自身のポートを変える。対抗がaccessだと、accessになる(不一致だと通信すらできないので)
- desirable
- DTPを送信する
- 互いにトランクポートになろうとする
- 対向がaccessのみ、accessになる
- dynamic auto
- DTPを受信する
- 対抗のポートによって自動で自身もそのモードになる
- 対向がaccessまたは、dynamic autoの場合、accessになる
静的なトランクポートの設定
ポートを明示的にトランクに設定する
// 両方のプロトコルをサポートしている機種のみ必要
//トランクプロトコルは機種によってはdot1qのみサポートだけなどあり、その場合、このコマンド自体がない
switchport trunk encapsulation isl | dot1q | negotiate(デフォルト)
switchport mode trunk
switchport nonegotiate
https://beginners-network.com/cisco-catalyst-command/switchport-trunk-encapsulation.html
デフォルトは自動で接続先とisl優先でネゴシエーションします。
又、Catalyst2960等、dot1qだけサポートしており、コマンド自体が使えないスイッチもあります。
switch port mode trunk //明示的にトランク対抗もトランクポートにするようにDTPを送信
switchport mode auto //対抗ポートによって自身のポートのモードが変わる
switchport mode auto //対抗ポートによって自身のポートのモードが変わる。お互いにトランクになれるようにDTPを送信する
VLAN間ルーティング
- スイッチ-ルータ構成
- L3スイッチ構成
VLANインタフェース= SVI = 論理インターフェース
SVI の作成
◆ SVI の作成
(config)# interface vlan vlan-id
(config-if)# ip address address mask
(config-if)# no shutdown
トランクポート、アクセスポートの確認コマンド
show interfaces trunk
show vlan
show interfaces switchport
show interfaces status
VTP
VTPはスイッチ間でVLAN情報を同期するためのプロトコルです。
VTPには「サーバモード」「クライアントモード」「トランスペアレントモード」という3つのモードがあります。
- サーバモードはVLAN情報を同期するモードです。VLANの作成と削除が可能です。
- クライアントモードはVLAN情報を同期するモードです。VLANの作成と削除はできません。
- トランスペアレントモードはVLAN情報を同期しないモードです。VLANの作成と削除が可能です。
【VTPによるVLAN情報の同期の条件】
- トランクポートによる接続
- VTPドメイン名の一致
- VTPモードはサーバもしくはクライアント
- VTPパスワードの一致(VTPパスワードが設定されている場合)
- VTPバージョンの一致
<コマンド構文:VTPドメイン名の設定>
Switch(config)#vtp domain {VTPドメイン名}
<コマンド構文:VTPモードの変更>
Switch(config)#vtp mode {server | client | transparent}
<コマンド構文:VTPパスワードの設定>
Switch(config)#vtp password {パスワード}
<コマンド構文:VTPバージョンの変更>
Switch(config)#vtp version {1 | 2}
【VTPプルーニング】
VTPプルーニングとは、ブロードキャストの宛先VLANが存在しない(使われていない)スイッチへは、フレームを送らないようにする技術です。
VTPプルーニングを有効にすることで、不要なトラフィックを減らす事が出来ます。
<コマンド構文:VTPプルーニングの有効化>
Switch(config)#vtp pruning
【リビジョン番号】
VTPリビジョン番号は、VLANの設定変更があるたびに1ずつ増えていく数値です。
VLAN情報はリビジョン番号が一番大きなものを最新として、リビジョン番号が一番大きなものにVLAN情報を同期させます。
「サーバ」と「クライアント」はVLAN情報を同期するため、設定変更ごとにリビジョン番号が増えていきますが、「トランスペアレント」はVLAN情報を同期させないため、リビジョン番号は常に0になっています。
【VTPアドバタイズメント】
VLAN情報を同期するにあたり VTPでは「VTP要約アドバタイズメント」や「VTPアドバタイズメント要求」といったメッセージを使用します。
VTP要約アドバタイズメントは VTPドメイン名やリビジョン番号を通知するメッセージで、サーバモードのスイッチが5分毎に送信します。
VTPアドバタイズメント要求は、VTP要約アドバタイズメントメッセージを要求するためのメッセージです。サーバモードやクライアントモードのスイッチを再起動した場合や、VTPドメイン名を変更した場合に送信します。
【VTPの確認】
VTPの情報を確認するには「show vtp status」コマンドを使用します。
音声VLAN
【音声VLAN】
音声VLANとは、IP PhoneとPCのデータを別々のVLANに分離する機能です。
音声VLANを設定し、音声トラフィックとデータトラフィックを論理的に分離することで、音声トラフィックを優先的に処理できるようになります。
【音声VLAN設定時の主な注意点】
音声VLANを設定する際は以下の点に注意する必要があります。
・音声VLANを設定するポートはアクセスポートにする
・音声VLANを設定するポートではCDPを有効にしておく(CDPはデフォルトで有効になっているため、CDPの設定は必要ありません)
・音声VLANを設定すると自動的にPortFastが有効になる
【音声VLANで使用する主なコマンド】
(config-if)#switchport mode access
音声VLANを使用する場合、ポートはアクセスポートにします。
(config-if)#switchport voice vlan {VLAN_ID}
音声用のVLANを指定します。ここで設定された音声用のVLANは、CDPによってCisco IP Phoneに通知されます。
(config-if)#switchport access vlan {VLAN_ID}
PCデータ用のVLANを指定します。
#show interfaces [インターフェース] switchport
スイッチポートの設定情報を表示します。