【図解】トランクポートとアクセスポートの違い、trunk port に access port や PC を接続するとどうなるか

タグ VLAN を使う場合はポートにトランクポート (trunk port) という設定を入れる必要があります。トランクポートではないポートはアクセスポート (access port) と呼びます。今回はこの 2 種類のポートを説明します。

アクセスポートとトランクポート

アクセスポートとは、VLAN 対応のスイッチで、1 つの VLAN のみ所属しているポートです。下記の図で言うと、端末が差さっている色付きのポートのことです。アクセスポートは常にタグが無い (untagと言います) 状態です。アクセスポートの接続をアクセスリンクと言います。

例えばgigabitEthernet 0/1ポートにVLAN10を設定する場合、Cisco Catalystであれば以下のようになります。

(config)# interface gigabitEthernet 0/1
(config-if)# switchport mode access
(config-if)# switchport access vlan 10

一方、トランクポートとは、タグ VLAN を使う、複数 VLAN が所属しているポートです。先程の図で言うと、L3 スイッチと L2 スイッチの間の黒色の接続ポートです。L3 スイッチ、L2 スイッチともにトランクポートで、トランクポート同士を接続します。この接続をトランクリンクと言います。

例えば gigabitEthernet 0/24 ポートにトランクポートを設定する場合、Cisco Catalyst であれば以下のようになります。

(config)# interface gigabitEthernet 0/24
(config-if)# switchport mode trunk

これだけだと全ての VLAN がこのポートから流れていきます。例えば VLAN10, 20 だけを流したい場合は以下コマンドを打ちます。

(config-if)# switchport trunk allowed vlan 10, 20

また、あとから追加で VLAN 999 も加えたいとなった場合は以下コマンドを打ちます。

(config-if)# switchport trunk allowed vlan add 999

この add をうっかり忘れてしまうと大変なことになります。VLAN 10 と 20 が繋がらなくなり、999 だけが繋がるようになりますので注意が必要です。add をつければ既存のトランク設定 VLAN の通信断を発生させずに追加が可能です。

Native VLAN

トランクポートには Native VLAN という概念があります。たいていのスイッチではデフォルトで VLAN 1 が Native VLAN になっています。

トランクポートでタグ無し (untag) の通信を受信した場合、Native VLAN として処理されます。

Native VLAN を 1 から 10 に変更したい場合、Cisco Catalyst の場合は以下コマンドを打ちます。

(config-if)# switchport trunk native vlan 10

また、Native VLAN をタグ付きで送受信させたい場合は以下コマンドを打ちます。つまり全ての VLAN でタグを付ける設定です。

(config)# vlan dot1q tag native

Native VLAN に設定した VLAN ID について、(本来 untag であるべきだが)タグ VLAN でフレームを受信したとき、受け入れるか破棄するか、というのは、NW 機器の仕様によってまちまちです。

トランクポートに PC (もしくはアクセスポート)を接続する

トランクポートは基本的にはトランクポート同士を接続します。つまり、大抵は VLAN 対応スイッチ同士を接続するのですが、実は VLAN 非対応の PC やスイッチを接続すると、Native VLAN だけには接続できます

なので、『トランクポートに VLAN 対応スイッチが接続してあるけど、万が一 VLAN 対応スイッチが壊れたときでも VLAN 100 だけは使いたい!』という時はVLAN 100 を Native VLAN にすればいいのです。トランクポートに PC 直結でも、HUB を介しても Native VLAN だけは通信できます。

下図は、L2 スイッチ#1と#2で VLAN 100, 200, 300 を trunk ポートで接続する際、L2 スイッチ#2が壊れたときでも、VLAN 100 だけは通信を継続させたい場合の例を示しています。例では VLAN 対応のスイッチを HUB に置き換えていますが、L2 スイッチ#1に PC を直結しても問題ありません。

タグ VLAN と MTU 値

L3 スイッチの VLAN インタフェースでは MTU 値はデフォルトで 1500 Byte となっています。タグが付いた Ethernet フレームは 4 Byte 増えていますが、この場合は問題ありません。L3 スイッチの内部的な動きとしては、タグ VLAN は受信したタイミングでタグを外してルーティング等の処理がされるので、気にしなくてよいのです。

ただし、Q-in-Q といった技術でタグを 2 つ付ける構成となると、MTU 値はスイッチ側で 4 Byte 分増やさないと(もしくは PC 側で 4 Byte 分減らさないと) フラグメンテーション(DF bit がある場合はドロップ)が発生してしまいます。

これを回避するために、Catalyst L3 スイッチで以下コマンドを打ちます。

(config)# system mtu 1504

これによりフラグメンテーションやドロップは回避できます。ただし、OSPF を使っている場合は MTU 値が対向ルータと同一じゃないと EXSTART 状態で止まり、DBD 情報の交換が出来ません。なので、同じく MTU を変更するか、以下の MTU 値の違いを無視するコマンドで対処します。

(config-if)# ip ospf mtu-ignore