Meraki MRでクライアント間通信をブロックする方法

今回はMeraki MRを使っている場合のクライアント間通信を行わせない方法についてまとめておきたいと思います。
無線ゲストWiFiを提供する場合に要件として挙げられるケースが多いのですが、Merakiドキュメントを読んでも少し分かりにくいのが実情です。。
またこの要件を実現する方法は2通りあるのでそれぞれを解説します。

その1:Wireless Client Isolationを使う方法

ワイヤレス > 設定 > Firewall&トラフィックシェーピング」へ移動し設定を行いたいSSIDを選択します。
レイヤ2クライアント間通信遮断」を有効にします。

設定は以上です。
この設定は設定に示されている通り、レイヤ2(同一セグメント)の通信をブロック(遮断)するというものです。
そのためレイヤ3(異なるセグメント)への通信はブロックの対象とならないことを理解しておく必要があります。
また、例外的にクライアントのDefault Gateway宛の通信はブロックの対象とはなりません。
言葉では分かりにくいので論理図で示すと、

このようになります。
一番右のMR配下のPCは自セグメント(VLAN A)への通信は行うことが出来ず、L3デバイスを介した他のセグメント(VLAN B)への通信は許可されることになります。
これで通信要件的に問題が無いのであれば良いのですが、一般的には上位のL3デバイスにてACL等の設定を行い通信をブロックする必要があります。

documentation.meraki.com

その2:MRでFirewallルールを設定する

上記の「Client Isolation」の機能では自セグメントへの通信にのみにしか適用されないので、一般的な企業NetworkにおいてはL3デバイスによる複数セグメントでのNetworkデザインとなっているため万能な設定ではありません。
2つめの方法としてはMRに実装されているFirewall機能を利用する方法です。
実はこの方法は先の投稿で詳細を解説しているのですが改めてまとめておきます。

candm-network.hatenadiary.jp

上のその1の方法と同様に「ワイヤレス > 設定 > Firewall&トラフィックシェーピング」へ移動し、該当のSSIDを選択します。
アウトバンドルール」でデフォルトで定義されている「ローカルLAN」宛の通信を「拒否」でブロックする方法です。

この「ローカルLAN」というのは、
・10.0.0.0/8
・172.16.0.0/12
・192.168.0.0/16
と全てのプライベートIPアドレスを示しますので結果として企業内のクライアント間通信を遮断することが可能になるというわけです。
グローバルIPアドレス宛の通信は遮断の対象とならないためゲストWiFiにおけるインターネットサービスとしては問題が無いということになります。

まとめ

個人的には「その1」のClient Isolation機能では片手落ちな部分も多いのでお勧めとしては「その2」のFirewallを設定することになります。
Defaultの設定では全てのプライベートIPを全て遮断することになりますので、例外的に通したいプライベートIPがある場合はFirewallルールを追記する必要があります。