Meraki MRをTrunk接続設定する

本記事は一度2023年2月1日に投稿しました。
しかしその後の再検証で投稿内容と異なる結果が得られましたので全面的に書き換えて再投稿させていただきます。

企業における無線LANの構築においては複数のSSIDを設定し、それぞれのSSIDに対してVLANを設定するケースは多く存在します。
複雑なアクセス権の設定を必要とされる企業においては、802.1x認証にてRADIUSサーバからユーザに紐付いたVLAN IDを返しユーザー単位にVLANをアサインする802.1x VLAN Asignment(通称Dynamic VLAN)を使われるケースもあったりします。

(余談ですがDynamic VLANという呼び方は本来異なる機能のことを指すのですがこの名前が使われることが多く個人的にはあまり使いたく無い呼び方です。。)

Catalyst9100シリーズAPとCatalyst9800 WLANコントローラーの組み合わせでCAPWAPをつかった通信においてはあまり気にする必要はないのですが、Meraki MRの場合は無線アクセスポイントから直接トラフィックが抜けていくのでVLANの設定は少し難しくなります。

この記事ではMeaki MRにて802.1qトランク設定を行う方法に関してまとめたいと思います。

Meraki Documentから読み取れること

実機での確認はともかく、Merakiのドキュメントを参照してMRのトランク設定に関して予習しておきます。

documentation.meraki.com

このドキュメントを見てみると、

  • SSIDに付与されたVLAN情報はそのままMRから802.1q VLANタグが付けられて送信されること。
  • 管理IPトラフィックはタグなし(Native VLAN)で送信されること。

と読み取れます。

https://documentation.meraki.com/@api/deki/files/4158/9e468bb2-bdf2-4112-9f01-c82fbd877190?revision=1

If Bridge mode is configured with an assigned VLAN tag on an SSID, wireless client traffic (Data) on this SSID will be tagged with the configured VLAN number when forwarded to the switch. On the other hand, AP management traffic will be sent untagged to the switch. 

と書かれています。
実際に実機で確認してみたいと思います。

 

MRとMSをAccess Portで接続

まずはMRとその上位のSwitch(MS)をAccess Portの設定で接続を行います。
MSの設定を「アクセス」およびVLANを"1"に設定します。

初期化されたMRを接続し、Dashboard上で確認を行います。
VLAN#1 : 192.168.2.0/24でIPアドレスを取得したことが確認されました。

念の為Pingしておきます。

ここまでは当たり前ですが何ら問題ありません。

MRの管理IPにVLAN設定を行う

次にMRの管理IPにてVLAN設定を行います。
DHCP設定はそのままに管理IPをVLAN#100として設定します。
上記Meraki Documentの記載が正しければ、MSの設定がアクセスのままでもMRからは管理トラフィックはタグなし(Native VLAN)となるはずなのでMRへの通信は継続するはずです。

設定変更後しばらくすると残念ながらPingの疎通が途絶えてしまいました。

慌ててアクセスポイントのIPアドレスを確認します。

IPアドレスが突如変わってしまったようです。

ここは深く考えずに新しいIPアドレスPingを行います。

取り敢えずMRの管理IPに対してタグなしで通信できることは確認できました。
しかしエラーが表示されてしまいました。

日本語表記だと謎の翻訳になるのでここだけ英語にしました。
直訳すると「このデバイスは設定されているVLAN1の代わりにVLAN0でDHCPからのIPアドレスを使ってます」となります。
VLAN0ってなんだ?とは思うのですが、MRはVLAN#100で設定されているにも関わらず対向のMSではVLAN1のアクセスポートで設定されているのでVLANミスマッチの類だろうと判断し、MSのVLAN設定を100にしてみます。

しばらくしVLAN#100のIPアドレスを取得するのを待ちます。

無事VLAN#100である192.168.100.0/24からIPアドレスを取得していることが確認できました。
しかしVLANミスマッチのエラーは表示されたままです。
今回はVLAN#1を使っていないにも関わらず同様の文言となっているので一旦エラーの文言の中のVLANの数値に関しては忘れることにします。。

MSの設定をTrunkに変更する

エラーメッセージはMRはTrunkモードになっているにも関わらず対向のSwitchがアクセスなのが問題であろうと想定しTrunk設定にすることにします。
上記検証からMRの管理IPからはタグなし(Native VLAN)で通信していることから、VLAN#100をNative VLANとして設定を行います。

特に問題なく引き続き通信は可能な状態となっているようです。
しかし、相変わらずVLANミスマッチのエラーは出たままです。

Merakiのドキュメントでエラーの内容を確認

仕方ないので(。。。)Merakiのドキュメントを読んでみます。

documentation.meraki.com

ここに書かれているのはDHCPで付与されているIPアドレスが、デバイス(ここではMR)に設定しているVLAN IDと一致しないと表示されるようです。
また、Merakiバイスの管理トラフィックはVLANタグが付与されるとも書かれています。

On many Meraki devices, a VLAN tag can be assigned to the device for its own management traffic. 

現状Native VLAN#100で通信可能な状態となっているのですが、念の為MSの設定をNative VLAN#1に設定してみます。

これによりVLAN#100にタグがついた状態となるのですがPingを行っても継続して疎通できていることが確認できます。

さらにエラー表示は消えてステータスはグリーン(正常)となりました。
ここまでの検証ではMRは手動で設定されているVLAN IDに対してタグ付きでも無しでも通信は受け入れているということが分かります。

VLAN#1は通信可能か?

これまでの検証でSwitchの設定はTrunkで管理IPのVLANに対してはNative VLANで設定しないというのが表示上正しい設定のようです。
この状況ではVLAN#1はどのように扱われるのか確認してみます。

ワイヤレスの設定にて試験用のSSIDを作成し、VLANタグを"1"にして設定します。

少なくともSwitchからのパケットにはVLAN#1のタグは付かない状態で送信されると思います。
MRはタグなしでも通信可能な状態ではあったのでNative VLANの扱いでミスマッチが起きてしまう可能性があります。

iPhoneSSIDの設定を行いましたが、接続不可となりました。
設定しているVLAN#1の扱いにミスマッチがあると判断し、設定を削除してみます。

見事アソシエート後、通信可能となりました。
ただし、取得したIPアドレスはVLAN#1のものとなりました。

これは私の理解が足りなかったことが原因でSSID設定内でVLAN IDの設定を行うと強制的にVLANタグが付与されるというものでした。
VLANタグを無効としたため結果としてNative VLANとして扱われ対抗のSwitchで設定されているNtive VLAN#1で通信が可能になるということです。

念の為別のVLANで通信確認してみます。SSIDにVLAN#101を設定します。

VLAN#101のセグメントである192.168.101.0/24でアドレスを取得することが確認できました。

まとめ

少し長くなりましたがMeraki MRのTrunk設定時の挙動について一通り確認できました。

  • MRの管理トラフィックはVLAN設定をするとTAG付きで通信を行う。
  • 対向のSwitchもMRに合わせて管理IPに対してはタグ付きで設定する(Native VLANでは設定しない)
  • (SwitchでNative VLANが1の場合)SSIDでVLAN#1の設定を行いたい場合はVLANタグは無効に設定する(VLANタグ1では設定しない)

が正しい動作のようです。
今回の検証はここまでとしたいですが、別途MRの管理IPをVLAN#1以外で展開することの課題に関してもまとめたいと思います。