DD-WRTをうまく構成することで、単一のWiFiチャンネル上に複数のSSID(セキュリティ設定も別々)を設定し、それぞれをタグVLAN経由で異なるバックエンドネットワークに接続することができます。何がうれしいかというと、複数のネットワークに接続するWiFiのAPを別々に設置すると、WiFiのチャンネル配置が難しく、4つ上のネットワークを並べればあっというまに干渉が起きる構成になります。それに対してマルチSSIDで構成すれば、単一の物理チャンネル上に複数のSSIDを設置でき、チャンネル干渉を避けつつ多数のネットワーク対する独立したアクセスを提供できます。(と思っているんだけど、マルチSSIDってそういうものですよね?つっこみ待ち)
DD-WRTはLinuxなので、そういうネットワーク構成をすること自体は当然できるのですが、DD-WRTのWebUIの仕様上、多少の制限があって、その制限の中で実現をするために多少試行錯誤をして、最終的に実現できたのでメモ。
前提条件として、DD-WRTをインストールした2つ以上のEthernetポートを持つルータが必要です。Linuxカーネルからeth0とeth1が見える必要があります。Linuxカーネルからeth0,1が見えれば、DD-WRTのWebUIからも同様にeth0とeth1が見えるはずです。
さて、DD-WRTのデフォルト状態ではNAT箱になっているので、単体APとして利用するためにまずこれを解除します。Setup/Basic SetupのConnection TypeをDiabledにします。IPアドレスは適切に。これでeth0とeth1とWiFiのNICがすべてbr0にブリッジされた状態になります。NAT機能をAP全体で無効にするためSetup/Advanced RoutingのOperationg ModeをRouterに設定します。
ここからマルチSSIDの各仮想NICとVLANの仮想NICを接続できる準備をします。DD-WRTのWebUIの制限があり、以下の方針で設定をします。
- eth0: 管理用IF、untaggedで接続
- eth1: サービス用IF、各バックエンドにtaggedで接続
各設定を行います。直前までの設定がApplyされていないと、必要な入力欄が表示されない項目があるので、それぞれ設定をするごとにApply Settingsをしてください。
- Setup/NetworkingのPort Setupのeth1をUnbridgedに設定します。IPアドレスはそのまま0.0.0.0。
- Setup/NetworkingのVLAN Tagging/TaggingのAddをクリックし、eth1に設定したいVLAN IDを設定。
- Setup/NetworkingのPort Setupのeth1.nnn(設定したVLAN IDに対応した仮想IF)をUnbridgedに設定します。IPアドレスはそのまま0.0.0.0。
- Setup/NetworkingのBridging/Create BridgeのAddをクリックし、ブリッジIF名(例:br1)を入力(以後数字を増やしていく)。
- Setup/NetworkingのBridging/Assign to BridgeのAddをクリックし、br1にeth1.nnnをブリッジするように設定。
- Wireless/Basic SettingsのVirtual InterfacesのAddをクリックしSSIDを設定、Saveをクリック(仮想IF名を確認しておく 例:ath0.1)。Wireless/Wireless Securityで今設定したSSIDのセキュリティ設定を行いSaveをクリック。Setup/NetworkingのBridging/Assign to BridgeのAddをクリックして追加したSSIDの仮想IF名(例:ath0.1)をeth1.nnnと同じブリッジに追加(例br1)。※この項目の複数設定はSaveをしながら行い最後にApply Settingsをしてください。セキュアなWiFi追加のために必要です。途中でApply Settingsすると、セキュリティ設定のないSSIDが既存のネットワークに接続される危険性があります。
以上で指定のVLANにtaggingで接続する(といっても無線端末からは意識しないですが)独立したSSIDの追加が完了します。この要領で複数のSSIDを更に追加していけます。いくつSSIDを追加できるかは、試してないのでわかりません。UI上のBridgeの設定数の上限がおそらくボトルネックになる気がします。
“DD-WRTでマルチSSIDを別々のVLANに接続する” への1件のフィードバック