HTTPリダイレクトサービス概要
加入者からのHTTPリクエストトラフィックは、アクセスネットワークからブロードバンドリモートアクセスサーバー(B-RAS)ルーターに集約され、そこでHTTPトラフィックを傍受して、外部デバイス上のキャプティブポータルにリダイレクトすることができます。多くの場合、キャプティブポータルは、加入者セッションにログインした後に表示される最初の加入者ページです。また、キャプティブポータルは、不正なWebリソースへのHTTPリクエストを受信して管理します。
例えば、ユーザーは、会社のロゴやネットワーク使用ポリシーが表示されているWebページや、加入者がサービスの料金を支払うページにリダイレクトされる可能性があります。通常、キャプティブポータルは、ウォールドガーデンの外にある保護されたサーバーへのアクセスを許可する前に、リダイレクトされた加入者に認証および承認サービスを提供します。
ウォールドガーデンは、許可リストとも呼ばれ、キャプティブポータルを介して再認証なしで加入者にアクセスを提供するサーバーのグループを定義します。これらのウォールドガーデンでは、顧客にさまざまなサービスをマーケティングすることで収益を増やすことができます。
典型的なウォールドガーデンリンクは次のとおりです。
-
レンタカーなどのベンダー向けサービス
-
ホテルやモーテルのロイヤリティまたは企業プログラムポータル
-
ルームサービス
-
地元の観光スポットと天気
このドキュメントでは、 HTTPリダイレクトサービス と キャプティブポータルコンテンツ配信(CPCD)サービス という用語を同じ意味で使用しています。
HTTPリダイレクトサービスは、データハンドラーと制御ハンドラーを実装し、HTTPアプリケーションに適用可能なサービスルールに登録します。これらのルールは、ルーティングエンジン上のcpcddプロセスによって解析されます。データハンドラーは、HTTPデータフローにルールを適用し、IP宛先アドレスの書き換えや、事前設定されたリダイレクトURLを使用したHTTP応答の送信を処理します。応答メッセージには、HTTPステータスコードが含まれています。返される状態コードは、GET 要求を送信した HTTP クライアントが使用する HTTP バージョンによって異なります。バージョンがHTTP 1.0より高い場合、リダイレクトサーバーは307(一時リダイレクト)ステータスコードを返します。バージョンがHTTP 1.0の場合、302(検出済み)ステータスコードが返されます。17.3R1より前のリリースでは、HTTPバージョンに関係なく、リダイレクトサーバーは302ステータスコードを返します。どちらのコードも、後続の GET リクエストでリダイレクト URL ではなく元の URL を使用するように HTTP クライアントに通知します。
HTTPリクエストへの応答が加入者に送信されると、設定されたリダイレクトURLの末尾にオプションで元のURLを追加することで、元のURLが保持されます。リダイレクトURLの最大長は、追加された元のURLを含めて128バイトです。リダイレクトURLの最大長は1360バイトに増加し、リダイレクトサーバーは加入者に関する追加情報をリダイレクトURLに追加できます。最大長は、URLに加入者情報を追加するかどうかに関係なく適用されます。加入者情報を追加するには、加入者ログインに応答して、RADIUS Accept-AccessメッセージまたはRADIUS Change of Authorization(CoA)メッセージで返されるVSAで特定の加入者属性を指定できます。これは、サービス(26-65)VSAとサービス停止(26-66)の両方のVSAに適用されます。加入者情報は、加入者セッションデータベースから取得されます。
制御ハンドラーは、ルーティングエンジン上のcpcddプロセスとの接続を維持し、リダイレクトURLや書き換えIP宛先とポートなどの設定変更を学習します。パフォーマンスを高速化するために、制御ハンドラーは、URLなどの関連する設定エンティティのキャッシュをモジュラーポートコンセントレータ(MPC)に保持します。
HTTPリダイレクトサービスは、IPv4とIPv6の両方でサポートされています。HTTPリダイレクトサービスまたはサービスセットを、静的または動的インターフェイスにアタッチできます。動的な加入者管理では、HTTPサービスまたはサービスセットを加入者ログイン時に動的にアタッチするか、RADIUS認証変更(CoA)を使用できます。
-
最大1000個のHTTPリダイレクトサービスを設定できます。
-
HTTPリダイレクトサービスフィルター内の各用語に対してカウンターを作成できます。サービスフィルターは共有フィルターとしてインストールされるため、設定された各条件に対してハードウェアで使用できる集約カウンターは1つだけです。キャプティブポータルコンテンツ配信(CPCD)アプリケーションは、集約カウンターを使用してソフトウェア内のリダイレクトされたパケットをカウントします。
show services captive-portal-content-delivery statistics interfaceコマンドを使用して、カウンタ統計を表示します。
HTTPリダイレクトサービスを設定するには、3つの方法があります。次世代サービスが有効になっている場合は、MX-SPC3サービス処理カードでHTTPリダイレクトを設定することもできます。 表1 は、HTTPリダイレクトサービスでサポートされている方法と、それぞれの方法をサポートするJunos OSリリースを示しています。
| 方法 |
サポートされているJunos OSリリース |
|
|---|---|---|
| MS-DPC-based |
(MX-SPC3サービスカード上の次世代サービスではサポートされていません) |
|
| 静的 |
15.1より前のリリース |
|
| コンバージド |
未対応 |
|
| MS-MPC-based |
(MX-SPC3サービスカード上の次世代サービスではサポートされていません。) |
|
| 静的 |
Junos OSリリース15.1以降 |
|
| コンバージド |
Junos OSリリース17.2以降 |
|
| MX-SPC3-based |
||
| 静的 |
MX-SPC3サービスカードで次世代サービスが有効になっている場合、Junos OSリリース19.3R2以降。 |
|
| コンバージド |
MX-SPC3サービスカードで次世代サービスが有効になっている場合、Junos OSリリース19.3R2以降。 |
|
| Routing Engine-based |
||
| 静的 |
すべてのJunos OSリリース |
|
| コンバージド |
Junos OSリリース16.1R4および17.2以降 |
|
すべての方法で、ウォールドガーデンを静的ファイアウォールサービスフィルターとして設定します。
サービスカードベースのキャプティブポータル
MS-MPCベースのキャプティブポータル
Junos OSリリース15.1R4以降、MXシリーズルーターでHTTPリダイレクトサービスをサポートする唯一のラインカードとインターフェイスカードの組み合わせは、マルチサービスモジュラーインターフェイスカード(MS-MIC)を備えたマルチサービスモジュラーポートコンセントレータ(MS-MPC)です。この組み合わせにより、拡張性が向上し、パフォーマンスが向上します。MS-MICおよびMS-MPCは、高度なメモリ(MS-MICの場合は16GB、MS-MPCのNPUあたり32GB)と処理能力を備えています。MS-MPCおよびMS-MICのサービスインターフェイスは、ms-プレフィックス(ms-1/2/1など)で設定内で識別されます。
このドキュメント全体を通して、 MS-MPCベース という用語は、MS-MICがインストールされたMPCと、ラインカードを受け入れないMXシリーズルーターにインストールされている場合はMS-MICのみを指します。
MX-SPC3サービスカードベースのキャプティブポータル
Junos OSリリース19.3R2以降、MX-SPC3サービスカードで次世代サービスが有効になっている場合、HTTPリダイレクトサービスを設定できます。MX-SPC3のサービスインターフェイスは、vms-プレフィックス(例:vms-1/2/1)を使用して設定内で識別されます。
サービスフィルターとして設定されたウォールドガーデン
サービスカードベースのキャプティブポータルのパケットフローは、ウォールドガーデンの設定方法によって異なります。ウォールドガーデン内のサーバー宛てのHTTPトラフィックは、サービスカードには流れません。ただし、ウォールドガーデンの外を宛先とするHTTPトラフィックは、サービスカードに流れます。
データトラフィックの最初のパケット内に含まれる加入者要求の場合、システムはTCPプロキシがTCP SYNフラグを生成することを期待し、データハンドラーがルール検索を実行し、それらのルールをHTTPデータフローに適用します。
HTTP書き換え条件の場合—IP宛先アドレスがポリシーで指定されていない場合、制御ハンドラーはIP宛先アドレスを検索します。
HTTPリダイレクト条件の場合—TCPプロキシがトリガーされ、3ウェイハンドシェイクが完了します。
HTTPリクエストパケットの場合。
HTTP書き換え条件の場合—制御ハンドラーはキャッシュされたIP宛先アドレスを使用し、データパケットを変更します。
HTTPリダイレクト条件の場合—制御ハンドラーは、事前設定されたリダイレクトURLを使用してHTTP 302または307応答を送信します。
ルーティングエンジンベースのキャプティブポータル
ルーティングエンジンベースのキャプティブポータルは、静的サービスと統合型サービスの両方のファイアウォールサービスフィルターとしてウォールドガーデンをサポートします。HTTPトラフィックがファイアウォールサービスフィルターで定義されたルールに一致するとすぐに、HTTPトラフィックがルーティングエンジンに送信されます。ルーティングエンジン上のサービスインターフェイスは、si-プレフィックス(例えば、si-1/1/0)で識別されます。si- インターフェイスは、ルーティングエンジンのすべてのリダイレクトおよび書き換えトラフィックとサービスを処理します。キャプティブポータルコンテンツ配信(CPCD)サービスを有効にしてアクティブにするには、si-インターフェイスがupのステータスで動作している必要があります。CPCD サービスを有効にすると、si- インターフェイスの動作状態が変更されても、既存の CPCD サービスには影響しません。
HTTPリダイレクトサービスのための統合型サービスプロビジョニング
Junos OSリリース17.2R1以降、ルーティングエンジンベースとMS-MPC/MS-MICベースの両方のキャプティブポータルで、統合型サービスのプロビジョニングがサポートされます。Junos OSリリース19.3R2以降、MX-SPC3サービスカードで次世代サービスが有効になっている場合、MX-SPC3サービスカードベースのキャプティブポータルでも統合型サービスプロビジョニングがサポートされます。統合型サービスプロビジョニングとは、サービスプロビジョニングを動的なプロファイルで設定できることを意味します。RADIUS VSAまたはChange of Authorization(CoA)メッセージによって入力されるサービスには、ユーザー定義変数を指定できます。
例えば、加入者ごとに異なるリダイレクトURLを設定することができます。動的プロファイルでredirect-url変数を作成し、一致する加入者を$redirect-urlにリダイレクトするようにサービスルールを設定できます。RADIUSがユーザーを認証すると、Activate-Service VSA(26–65)はそのユーザーに固有のURLを提供します。
HTTPリダイレクトサービス用の静的サービスプロビジョニング
Junos OSリリース17.4R1以降、静的なサービスプロビジョニングは、ルーティングエンジンベースとMS-MPC/MS-MICベースの両方のキャプティブポータルでサポートされます。Junos OSリリース19.3R2以降では、MX-SPC3サービスカードで次世代サービスが有効になっている場合、MX-SPC3ベースのキャプティブポータルでも静的サービスプロビジョニングがサポートされます。静的サービスプロビジョニングとは、静的プロファイルでサービスプロビジョニングを設定できることを意味します。RADIUS VSAまたはChange of Authorization(CoA)メッセージによって入力されるサービスに対して、ユーザー定義変数(例: http://portal.wifi.example.com/xx?wlanuseraddr=%subsc-ip%&nasaddr=%nas-ip%&acname=%ac -name%&url=%dest-url%&userlocation=%nas-port-id%&usermac=%mac-sa%& session-id=%sess-id%&username=%user-name%&wlanuseraddrv6=%subsc-ipv6%)を指定できます。
静的CPCDでは、リダイレクトURLの属性は、ジュニパーネットワークスVSA、Activate-Service(26-65)およびDeactivate-Service(26-66)で送信されません。次の例のように設定できます。
captive-portal-content-delivery {
rule redirect {
match-direction input;
term t1 {
then {
redirect url;
}
}
}
}
URL内の「subsc-ip」、「nas-ip」、「ac-name」などのトークンは、「%」記号で囲む必要があります。トークンの順序は関係ありません。
以下は、トークンとその重要性のリストです。
%subsc-ip%—加入者のプライベートIPアドレス。
%nas-ip%—BNG IPアドレス。
%ac-name%—BNGでは空になります。
%dest-url%—元のリクエストURL。
%nas-port-id%—加入者に使用されます。このパラメーターには、インターフェイス名、pvlan、cvlanを含める必要があります。インターフェイス名は、物理または仮想インターフェイス名にすることができます。例えば、ge0/0/0やae0です。pvlanとcvlanの範囲は14095です
%mac-sa%—WLANクライアントMACアドレス。
%sess-id%—加入者のセッションID。
%user-name%—加入者のユーザー名。
%subsc-ipv6%—加入者 IPv6 アドレス(IANA アドレスのみ)。加入者にIANAアドレスが指定されていない場合、このフィールドは空になります。
変更履歴テーブル
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。