vMAN(ExtremeNetworks VLAN Tunneling)をためす
広域EthernetVPN実現の基礎技術としてVLANスタッキングというものがありますが、少し試してみたくなったので実際にやってみた。
実験環境
というわけで、今回の実験環境はこんな感じ。
エッジスイッチ
- Summit48i
- Extremeware Version 6.2.2
- Cisco Catalyst 3548-XL-EN
- IOS (tm) C3500XL Software (C3500XL-C3H2S-M), Version 12.0(5)WC17
vMANコアスイッチ
- Summit7itx
- 7.3.3.4 patch-patch1_v733b4-r1
- Summit48i
- Extremeware Version 6.2.2
エッジスイッチに異なるネットワークを接続、そのトランクポートをvMANコアスイッチ(Summit7itx)に流し込みます。
その流し込んだトラフィックを対向のvMANコアスイッチ(Summit48i)から取り出します。
その取り出したトラフィックをさらにエッジスイッチに流し込むことで、最終的にタグVLANを解除します。
接続はこんな感じ。
NW1 NW2 vlan 10 vlan 11 | | +---------------------+ | Summit48i | +---------------------+ | ここは単なるトランク | trunk (vlan 10+11) | |port:1 +---------------------+ | Summit7itx | +---------------------+ |port:2 | | vlan "tunnel-1" | | この部分がVlanスタック | ExtremeWareでは configure dot1q ethertype の変更が必要 | trunk (vlan 20) on (vlan 10+11) | |port:2 +---------------------+ | Summit48i | +---------------------+ |port:1 | | ここは単なるトランク | trunk (vlan 10+11) +---------------------+ | Catalyst 3548-XL-EN | +---------------------+ | | vlan 10 vlan 11 NW1 NW2
EthernetFrameの移り変わり
VLANスタッキングは、多重にタグVLANを構成することで実現していきます。
その際のEthernetFrameの移り変わりは以下の通りです。
EthernetFrame(ホストからエッジスイッチ間のトラフィック) max:1518byte +-------------------------------------------------------+ | DA(6) | SA(6) | EtherType(2) | DATA(46-1500) | FCS(4) | +-------------------------------------------------------+ EthernetFrame with 802.1q(tagged vlan)(エッジスイッチからvMANコアスイッチ間のトラフィック) max:1522byte +------------------------------------------------------------------------+ | DA(6) | SA(6) | 802.1q Frame(4) | EtherType(2) | DATA(46-1500) | FCS(4)| +------------------------------------------------------------------------+ 802.1q Frameの詳細 +--------------------------------------------------------+ | TPID 0x8100(16bit) | Priority(3bit) | CFI(1) | VID(12) | +--------------------------------------------------------+
そこで、実際に流れるトラフィックをキャプチャして確認します。
以下に示すものは実際にキャプチャしたEthernetFrameの先頭部分です。
SAが改変されているのはご愛嬌。
| DA(6) | SA(6) |TPID |P+C+VID| 0000 ff ff ff ff ff ff 00 00 00 00 00 FF 81 00 00 0a | EtherType | 0010 08 00
そして次が、コアの部分、VLANスタック状態のEthernetFrameです。
ちなみにこの状態のトラフィックをWireSharkに流し込んでも、EthernetFrameIIと認識されるだけです。EthernetType0x88a8を解釈できないようです。
vMAN(ExtremeNetworks VLAN Tunneling) max:1526byte +------------------------------------------------------------------------------------------+ | DA(6) | SA(6) | vMAN Frame(4) | 802.1q Frame(4) | EtherType(2) | DATA(46-1500) | FCS(4) | +------------------------------------------------------------------------------------------+ vMAN Frame +--------------------------------------------------------+ | TPID 0x88a8(16bit) | Priority(3bit) | CFI(1) | VID(12) | +--------------------------------------------------------+
今回もEthernetFrameをキャプチャして見ます。
Vlanスタックのした側にVlan10の通信が隠されていることが分かります。
| DA(6) | SA(6) |TPID |P+C+VID| 0000 ff ff ff ff ff ff 00 00 00 00 00 FF 88 a8 00 14 ↑ VlanID 20 |TPID |P+C+VID| EtherType | 0010 81 00 00 0a 08 00 ↑ VlanID 10
で、最終的にトンネルの出口を作って。
| DA(6) | SA(6) |TPID |P+C+VID| 0000 ff ff ff ff ff ff 00 00 00 00 00 FF 81 00 00 0a | EtherType | 0010 08 00
無事に取り出すことができました。
config
vMANコアスイッチにおいて少し変わった設定をする以外は、単なるVLANの設定で大丈夫です。
この時重要なのは、「configure dot1q ethertype」をvMANに接続するスイッチ間で統一しておく必要があります。
ちなみに「ethertype 0x88a8」はあらかじめExtremeNetworks vMAN用にIEEEに予約されています。マニュアルでもこの値を設定することが推奨されています。
ただし、ポート単位でEtherTypeを変更するような運用はできないので注意が必要です。
Summit7itx
configure dot1q ethertype 0x88a8 create vlan tunnel-1 configure vlan tunnel-1 tag 20 //このポートに下流のトランクポートを繋げます configure vlan tunnel-1 add port 1 untagged //このポートに上流、つまりvMANコアネットワークを接続します configure vlan tunnel-1 add port 2 tagged
Summit48i
configure dot1q ethertype 88a8 create vlan tunnel-1 configure vlan tunnel-1 tag 20 configure vlan tunnel-1 add port 1 untagged configure vlan tunnel-1 add port 2 tagged
また、場合によってはジャンボフレームの設定が必要です。
config jumbo-frame size 1530
ちなみに、CiscoQinQと同じ設定にしてみても面白いかも
(かといって相互接続できるかは不明、今度検証してみる)
configure dot1q ethertype 0x9100 | DA(6) | SA(6) |TPID |P+C+VID| 0000 ff ff ff ff ff ff 00 00 00 00 00 FF 91 00 00 0a | EtherType | 0010 08 00
公開資料が間違っていたので
さて、今回いろいろとやったわけですが、Extremeの公開資料(http://apps.extremenetworks.com/libraries/techbriefs/Metro_TG_vMAN.asp)の図(特にEthernetFrameの図)が間違っているのを見つけたので、検証結果をつけてメーカーにメール送っておいた。
参考資料
- Layer 2: vMAN (Virtual Metropolitan Area Network)
- Ethertype