Meraki MR VLANを跨いだBonjourの転送設定

今回は少しマニアックな(?)話になります。
複数のVLANが存在するネットワーク環境でVLANを跨いでBonjourを通過させる設定の方法となります。
BonjourDNSを使用せずIPマルチキャストパケット(224.0.0.251)を使って同一ネットワーク内にあるデバイスの検出を行う方法となります。
IPマルチキャストを利用することから、セグメント(VLAN)を超えた検出は行うことはできず、同一セグメント内での利用に限られるというのが一般的な考え方となります。

企業内ネットワークにおいてもこのBonjourの仕組みを利用したApple Airplayの画面共有機能を使うケースも少なからずあったりします。
例えばMacBookの画面をAppleTV等AirPlayに対応したモニターに表示させたいといったケースがそれにあたります。
MacBookBonjourによるマルチキャストパケットを送信し、Airplayに対応したデバイスはそれに応答し、MacBook上ではAirplayに対応したデバイスとして表示がされる訳です。

企業ネットワークでは無線LAN SSIDに設定されているVLANとAppleTV等有線接続されているVLANが異なるケースは多くそのデバイス間でAirplayを動作させることが必要になる訳です。

検証環境

今回はiPhoneとAppleTVを使って検証を行います。
iPhoneがアソシエートするSSIDはVLAN200、AppleTVが属するVLANは201と異なるセグメントとなっています。
これらのVLANはMXを介してルーティングが可能な設定になっています。

今回の検証において一点注意すべきポイントはAppleのデバイス間はBluetoothを介しても近隣のデバイスを認識してしまうので事前にiPhoneBluetoothをオフにしておくということです。

support.apple.com

デフォルトの設定でAirPlayを確認

まずは基本的なデフォルト設定でiPhoneがAppleTVを検出できるか確認を行います。
iPhoneから送信されるIPマルチキャストパケットはセグメントを超えることは出来ませんので結果としてAppleTVの検出は行えません。

Meraki MRにVLANを超えてBonjourが通過できるように設定

ここからが本題です。
Meraki MRにてBonjourのIPマルチキャストパケットがVLANを跨るように設定を行います。
ワイヤレス > 設定 > アクセス制御」へ移動し、設定を行うSSIDを選択します。
クライアントIPとVLAN」設定にて「Bonjourの転送」を有効にします。
転送を行うVLAN(今回はAppleTVが存在するVLAN#201)およびサービス(今回はAirPlay)を選択し保存します。

設定完了後再びiPhoneの画面を確認してみます。

無事AppleTVがリストアップされることが確認できました。

レイヤ2クライアント間通信遮断設定には要注意

企業内ネットワークの要件においては、無線クライアント間通信をさせたくないといったことがあります。
ワイヤレス > 設定 > Firewall&トラフィックシェーピング」にて「レイヤ2クライアント間通信遮断」が有効である場合は上記Bonjourの転送設定を行ったとしても通信を行うことができません。

iPhoneの画面を確認しても、AppleTVが表示されることがなくなってしまいます。
(場合によっては情報がキャッシュされているケースもあるので表示されてしまった場合は、iPhoneを再起動して試してみてください。)

しかしこの制限はMR Ver29までのものとなります。
MR30からは機能が拡張され、「レイヤ2クライアント間通信遮断」において「Allow Bonjour forwarding exception」が追加されBonjourパケットは転送されるように機能変更されました。

まとめ

今回はMeraki MRにて複数VLANにてBonjourパケットを転送する方法をまとめました。
この設定は確かに機能はしたのですがNetworkエンジニアとしてはあまり多様したくない設定だと感じました。
単純にIPマルチキャストパケットをVLAN間ルーティングすれば良いだけですので今回の構成で言えばMXで行うべきだと思います。
次回はMeraki MXでBonjourを転送する方法を紹介します。

documentation.meraki.com