ステップ
入ってきたフレームは、フレーム本体、どのポートから来たのか、VIDを持っており、スイッチ内部で以下の処理される。
● 1. Ingress Rules(入力)
・1-1 Acceptable Types
・1-2 PVID
・1-3 Ingress Filtering(memberのみ利用して判断)
● 2. Forwarding Process(転送)
・2-1 MACテーブル
・2-2 MemberSet
● 3. Egress Rules(出口)
・3-1 MemberSet(2で絞られた結果という意味)
・3-2 UntaggedSet
MemberSet / UntaggedSet
これらはVLANごとのデータセット。(VLANデータセット)
|
Port |
Member |
Untagged |
のような構造になっている。
・MemberSet
そのVLANのフレームを通すポート
・UntaggeedSet
そのVLANフレームをタグ無しで出すポートの集合
※分かりづらいのでVID、Portの複合キーのテーブルと考える。
|
VID |
Port |
Member |
Untagged |
Acceptable Types / PVID / Ingress Filtering
これらはポートをキーとしたデータセット。(PORTデータセット)
|
Port |
Acceptable Types |
PVID |
Ingress Filtering |
こちらも実態は表だが、ポートをキーとしている表なので、ポートに属しているイメージでOK
・Acceptable Types
タグなしタグあり、どちらを受け入れるかのパラメータ
admit all / tagged only / untagged and priority-tagged onlyなど
・PVID
VIDがついてないフレームの場合、VLAN番号をフレームに書き込む。
・Ingress Filtering
これがONなら、ここで初めてVLANデータセットのmember列のみ使う。
フレームが持っている、入ったきたポート、VIDがの値が、VLANデータセット上でのmemberの値でどうなっているか判断し、falseなら捨てる。
アクセス / トランクポート
アクセス / トランクポートはパラメータのプリセットと理解する。
・アクセス
IN/OUTにタグなし、VLAN指定は1つだけ。
・トランク
IN/OUTにタグあり、VLAN指定は複数指定できる。
(原則タグあり、ネイティブVLANだけタグなし)
・ネイティブVLAN
トランクポートに指示するもの。
自身が持つVLAN番号をフレームに書き込む(デフォルトではVLAN1)
※ネイティブVLAN=トランクポートにおけるPVIDの呼び名
パラメータプリセット
アクセス/トランクのプリセット定義
| アクセス(port1.1) | トランク(port1.2) | |
|---|---|---|
| member=true の数 | 1つ(VLAN10のみ) | 複数(VLAN1,10,20) |
| untagged=true の数 | 1つ(VLAN10) | 1つ(VLAN1=ネイティブ) |
| Acceptable Types | untagged only | admit all |
| PVID | 10(=そのアクセスVLAN) | 1(=ネイティブVLAN) |
| Ingress Filtering | 有効 | 有効 |
ポートキーの表(1枚だけ存在)
| ポート | Acceptable Types | PVID | Ingress Filtering |
|---|---|---|---|
| port1.1 | untagged only | 10 | 有効 |
| port1.2 | admit all | 1 | 有効 |
VLANキーの表(VLANの数だけ存在)
VLAN 1
| ポート | member | untagged |
|---|---|---|
| port1.1 | false | false |
| port1.2 | true | true |
VLAN 10
| ポート | member | untagged |
|---|---|---|
| port1.1 | true | true |
| port1.2 | true | false |
VLAN 20
| ポート | member | untagged |
|---|---|---|
| port1.1 | false | false |
| port1.2 | true | false |