8
14
2025
ArubaのAPを用いて認証VLANを実装してみる#6 (認証VLANの実装)
Aruba APで認証VLANの仕組みを実装する
EAP-PEAP認証の機能が実装できたところで、いよいよ今回の最終目標である認証VLAN(Dynamic VLANとも呼ばれている)をArubaのAPに実装してみることにする.
認証VLANとは
認証VLANは一言で言うと、エンドユーザの認証情報やデバイスの固有識別情報などに紐付いたVLAN情報に関する属性値を使って、認証成立時にそのVLAN属性値に応じたVLANを割り当てる仕組みのことを言う.
ArubaやJuniper(現在は共にHPの一部門となってしまった)、Ciscoなどの無線LANシステムではこの認証VLANを比較的容易に実装可能であるが、集中管理型の無線LANコントローラやアプライアンス型の管理システム(ArubaのClearPassなど)と組み合わせた形での運用が一般的であるため、大企業などの比較的規模の大きな組織向けと言えるだろう.
Arubaはエンタープライズ系の無線LANシステムではCiscoと並んでメジャーな存在であるが、スモールビジネス用の分野にも力を入れており、Instant Onというブランド名で一連の比較的安価なAPハードウェアを提供している.Instant Onシリーズの最大の売りはクラウドベースのネットワーク管理サービスをエンドユーザに無償で提供していることだろう.
Instant Onについては、最初の記事『ArubaのAPを用いて認証VLANを実装してみる#1(Instant Onの概要)』を参照して欲しい.
Instant Onと似たようなソリューションとして、Cisco MerakiシステムやJiniperのMistのような無線LANソリューションも同じようにクラウドベースのサービスを展開しているが、クライアント(無線LANAP)の台数や利用するエンドユーザの人数などに応じた結構複雑なライセンス体系のようで、これらのシステムを維持するにはかなり高雅な費用が掛かりそうだ.
・『Cisco Merakiのライセンス体系変更について』 NTT Data
・『Mist購入ガイド』 JuniperNetworks
・『オンプレミス コントローラー管理型 Aruba Mobility Controller 』 Networld
Aruba Instant Onシリーズで認証VLANが使えるのか?
Arubaのエンタープライズ系のAPに関しては以前に数百台規模で AP-3xx、AP-5xxシリーズをオンプレミス型のコントロールシステム(Aruba Mobility Controller)管理下で導入したことがあったので、認証VLANに簡単に対応させることが可能であることは知っていたが、スモールビジネス用の Instant On APシリーズでも同じように認証VLANに対応可能で有るということは全く想定していなかった.
我が家でも5〜6年前からInstant On APシリーズの無線LANシステムを使っているが、Instant Onシリーズが認証VLANに対応能というようなドキュメントやノウハウの類いは見あたらなかったので、認証VLANの実装に関しては当初から考えてもいなかった.
3年ほど前に、大学の研究室レベルでInstant onシリーズを導入することになり、研究室の教職員、大学院生、外部組織の人たちなど利用者の身分や作業内容に応じて利用可能なネットワークやセキュリティー要件を変更する必要があった.
このような場合、有線系のネットワークシステムでは複数のVLANセグメントに分けて、それぞれのVLAN毎に異なる運用ポリシーを適用するということは一般的であるが、無線LANシステムの場合、個々のVLANセグメントに対応した複数のSSIDを使い分けるというのが一番簡単な実装方法だろう.
複数のSSIDをエンドユーザ側で使い分けるというのはユーザにとっては煩わしいので、無線LANシステムでも認証VLANによってエンドユーザが特にネットワークセグメントを意識しなくても常に適切なポリシーで無線LANを利用できることが望ましい.そこで無線LANシステムに認証VLAN機能を実装することを検討したのだが、ひょっとしたらInstant On APシリーズでも認証VLANが使えるのではないかと考え、とりあえずエンタープライズ系のシステムで用いられている認証VLANに関連したRADIUSの属性値をInstant On APに付加して試してみることにした.
ダメ元で試した認証VLAN機能の実装だったが、拍子抜けするほど簡単に認証VLANの機能を実装できてしまった.安価なInstant On APでも上位クラスのAPxxxシリーズと同じVLAN割り当て機能を有していることが判明したのは思いがけない儲け物だった.ArubaのAPに関しては、エンタープライズ系のAP-XXXシリーズとスモールビジネス系のInstant on APXXシリーズのハードウェア自体にあまり違いは無く、ファームウェアレベルでもそれ程の違いはないようだ.
Aruba Instant Onシリーズは私のような貧乏ユーザにとってはとても有り難い存在だ.小規模な組織などで無線LANシステムの導入やリプレースを検討している場合は、是非ともAruba Instant Onシリーズを導入することを検討してみては如何だろうか.
認証VLANの実装に必要なRADIUSサーバの属性値について
認証VLANの実装方法についてはシステムベンダーによって若干の違いがあるらしく、初期の実装方法はベンダーによってまちまちだったようだ.私も今から20年以上前の事であるが、Alcatel社の認証VLANに対応したスイッチを使って認証VLANに挑戦したことがあったが、このときは実装の仕方が不明で上手く実装できなかった苦い経験がある.
現在は、認証VLAN機能もポピュラーなものとなり、ベンダー間の実装の違いはあまりないようだ.各システムベンダーのドキュメントを見る限り、現在は以下の3つの属性値をRADIUSサーバの応答に含めておけば大部分のシステムでは問題なく動作するようだ.
認証VLANで用いる3つの属性値について、システムベンダーが提供しているドキュメントを幾つか拾っておくことにする.
Cisco
・Cisco Wireless Controller Configuration Guide, Release 7.6: Chapter: Configuring Identity Networking
・Cisco Wireless Controller コンフィギュレーション ガイド、リリース 8.2: Identity ネットワーキングの設定(機械翻訳による日本語 )
日本語のドキュメントのバージョンとオリジナルの英語版のバージョンが揃っていないのは、日本語版のバージョンが原版とは異なるバージョン管理が行われているため、日本語版の内容はかなり古い英語版のバージョンを機械翻訳したものとなっている.
新しい英語版のV8.0以降のドキュメントは内容そのものが全く新しくなっており、日本語版のV8.2で記載されている内容とは完全に異なった物だ.
上記のドキュメントの “Tunnel Attributes”(トンネル属性)に書かれている内容を要約すると、
・RFC 2868 に ”authentication”(認証)と “authorization”(認可)に関するRADIUS属性が定義されている.
・RADIUSサーバは “Access-Accept” メッセージと共にトンネル属性を含めることで収容するVLAN IDを指示する.
・VLANの割り当てに用いられる “Tunnel Attributes” は次の3つ
Tunnel-Type = VLAN (13)
Tunnel-Medium-Type = 802
Tunnel-Private-Group-ID = VLANID
Appresia Systems
Ciscoのドキュメントを読んでもイマイチ解りにくいので、日本のAPRESIA SystemsのL2/L3スイッチ(AppresiaNPシリーズ)のドキュメントに記載されている認証VLANで用いる”Tunnel Attributes”の内容を紹介する.
・ApresiaNPシリーズ ユーザーズガイド
上記ドキュメントの
TOP > 第6編 AccessDefender > AccessDefenderの認証方式 > RADIUS認証
に、”Tunnel-Private-Group-IdによるVLAN設定”という項目があり、上記の3つの”Tunnel Attributes”に関する説明がなされている.
上記の説明では何故か”Tunnel-Type” の属性値が13となっているが、RFC2868では属性の選択肢の値としては 1 〜 12 までしか定義されていない.これは一体どういうことなのだろうかと疑問だったが、IANAのドキュメント(”https://www.iana.org/assignments/radius-types/radius-types.xhtml#radius-types-14”) の、”Values for RADIUS Attribute 64, Tunnel-Type” で、
“13 Virtual LANs (VLAN)” RFC3580
と記載されていた.VLAN (13)という値はこちらのRFCで言及されていたようだ.このRFCドキュメントのタイトルは、”IEEE 802.1X Remote Authentication Dial In User Service (RADIUS) [ User Guideline ] ” とあるように、規定では無くあくまでもガイドライン的な位置付けのものだ.
RFC3580のドキュメントの “3.31. Tunnel Attributes ” (p.p.14) にVLANのアサインに関する説明が載っている.
とりあえず認証VLANに用いる3つのRADIUS属性がハッキリしたところで、この3つの属性を認証成功時にRADIUSサーバがオーセンティケータに返答するように設定してみる.
RADIUSサーバ側の設定
認証VLANに対応させるためにRADIUSサーバ側の設定を大きく変更する必要は無く、エンドユーザ側のアカウント情報に対して認証成功時に上記の3つの”Tunnel Attributes”をオーセンティケータ側へ返答するように設定するだけだ.
具体的には、今回用意しているテスト用のアカウント情報を記載している “/etc/raddb/users” のユーザデータに3つの”Tunnel Attributes”を追加するだけで良い.
...
radtest007 Cleartext-Password := "Hi32da4"
Reply-Message := "Welcome, %{User-Name}"
#=========================================================================#
# Test user account for authenticated VLAN
vl100user Auth-Type:=EAP, Cleartext-Password := "ImVL100"
Tunnel-Type = 13,
Tunnel-Medium-Type = 6,
Tunnel-Private-Group-Id = 100
vl200user Auth-Type:=EAP, Cleartext-Password := "ImVL200"
Tunnel-Type = 13,
Tunnel-Medium-Type =6,
Tunnel-Private-Group-Id = 200
badvlan Auth-Type:=EAP, Cleartext-Password := "ImBad"
Tunnel-Type = 13,
Tunnel-Medium-Type =6,
Tunnel-Private-Group-Id = 123
#=========================================================================#
“radtest007” アカウントでSSID “Y2Test1x” に接続した場合、デフォルトで定義している VLAN200 に接続される.”vl100user” アカウントで接続すると、VLAN情報としてVLAN100に接続させるための属性がRADIUSサーバから送出され、オーセンティケータ側のAruba AP がサプリカントをVLAN100に接続させることになる.
認証VLANの接続テスト

vl100userアカウントで “Y2Test1x” に接続する

vl100user でログインした場合は、VLAN100のセグメントに接続されている
APにアサインされていないVLAN番号を与えた場合に、APはどのようにVLANをアサインするのか確かめてみる.”badvlan” ユーザの所属させるVLANを123に設定(このVLANのタグはAPには供給されていない)して接続してみたところ、DHCPサーバからのIPアドレスの取得はできておらず、APから先には通信できていない状態だった.
APと上位のスイッチ間の通信をパケットキャプチャしてみないとハッキリしないが、ひょっとしたらAruba APはVLAN ID 123で上位スイッチにパケットを送っているのかもしれない.勿論、上位側のスイッチのポートにはVLAN 123はアサインされていないのでAPは通信できない.
間違った存在しないVLAN番号を指定した場合、デフォルトとして設定してあるVLAN200が割り当てられるのではないかと考えたが、VLAN200としては振る舞わないようだ.

APに提供されていないVLAN番号を設定して接続を試みる

EAP-PEAP認証は通っているが、APから先の通信はできない状態となっている
RADIUSサーバ側ではEAP-PEAPで認証成功しているので、3つの Tunnel Attributes が返答されている.
...
(9) } # post-auth = noop
(9) Login OK: [badvlan/] (from client y2home-network port 0 cli 5ce91ee553ad)
(9) Sent Access-Accept Id 101 from 172.25.250.6:1812 to 172.25.250.233:58968 length 192
(9) Tunnel-Type = VLAN
(9) Tunnel-Medium-Type = IEEE-802
(9) Tunnel-Private-Group-Id = "123"
(9) User-Name = "badvlan"
(9) MS-MPPE-Recv-Key = 0xe720e903b85492a953b0852d55ec52a99f1e431fdf67a66280b024ce2bd929ca
(9) MS-MPPE-Send-Key = 0x1623fc887a82322bff5e8490a83ff658645571118812ad38686cc711f5eaab5d
(9) EAP-Message = 0x030a0004
(9) Message-Authenticator = 0x00000000000000000000000000000000
(9) Framed-MTU += 994
(9) Finished request