Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ルーティングエンジンベースの静的HTTPリダイレクトサービスの設定

注:

Junos OSリリース19.3R2以降では、MXシリーズで次世代サービスを有効にしている場合、HTTPリダイレクトサービスもサポートされます。

MS-MPC/MS-MIC または MX-SPC3 サービス カードを使用する代わりに、ルーティングエンジンで HTTP リダイレクト サービスを設定できます。ウォールドガーデンをファイアウォールサービスフィルターとして設定します。ウォールドガーデンとは、キャプティブポータルを介した再認証を必要とせずにウォールドガーデン内のサイトへの加入者アクセスを提供するサーバーのグループです。ウォールドガーデンサービスフィルターは、ウォールドガーデン宛てのトラフィックとウォールドガーデンの外を宛先とするトラフィックを識別します。ウォールドガーデンの外宛てのHTTPトラフィックのみが、HTTPリダイレクトサービスによる処理のためにルーティングエンジンに送信されます。CPCDサービスは、サービスセットによってルーティングエンジン上のサービスインターフェイスに関連付けられます。

ルーティングエンジン上のサービスインターフェイスは、si-プレフィックス(例えば、si-1/1/0)で識別されます。si-インターフェイスは、ルーティングエンジンのすべてのリダイレクトおよび書き換えトラフィックとサービスを処理します。キャプティブポータルコンテンツ配信(CPCD)サービスを有効にしてアクティブにするには、si-インターフェイスがupのステータスで動作している必要があります。CPCD サービスを有効にすると、si- インターフェイスの動作状態が変更されても、既存の CPCD サービスには影響しません。

CPCDサービスは、ウォールドガーデン宛ではない加入者HTTPリクエストトラフィックをリダイレクトサーバーに送信し、リダイレクトサーバーはリダイレクトURLで応答します。リダイレクトURLは、不正な外部サイトではなく、キャプティブポータルにトラフィックを送信します。キャプティブポータルは、リダイレクトされた加入者に認証と承認サービスを提供してから、ウォールドガーデンの外にある保護されたサーバーへのアクセスを許可します。

リダイレクトサーバーはローカルまたはリモートにすることができます。

  • ローカルリダイレクトサーバー—ルーター上に常駐し、加入者のトラフィックをウォールドガーデン内のキャプティブポータルにリダイレクトします。

  • リモートリダイレクトサーバー—ルーターの背後にあるウォールドガーデン内のポリシーサーバーなどのデバイス上に存在します。加入者のHTTPトラフィックの宛先アドレスは、リモートリダイレクトサーバーのアドレスに書き換えられます。リモートサーバーは、そのウォールドガーデン内のキャプティブポータルに加入者トラフィックをリダイレクトします。

ウォールドガーデンをファイアウォールサービスフィルターとして設定する

ウォールドガーデンをファイアウォールサービスフィルターとして設定すると、ウォールドガーデン内のサーバー宛てのトラフィックが識別され、スキップされます。その他のHTTPトラフィックは、ウォールドガーデンの外のアドレスに向けられます。このトラフィックはフィルター条件に一致しないため、処理のためにルーティングエンジンに流れます。

注:Junos OS Evolvedでは、サービスフィルター内でスキップアクションを設定すると、スキップされたパケットがドロップされます。

ウォールドガーデンにキャプティブポータルまたはサーバーのリストとして単一のサーバーが含まれるように、サービスフィルターを設定できます。

  • ウォールドガーデンを単一のサーバーをキャプティブポータルとして構成します。

    1. サービスフィルターを作成します。

    2. キャプティブポータルへのトラフィックの処理を識別してスキップするためのフィルター条件を定義します。

      1. キャプティブポータルの宛先アドレスと宛先ポートを指定することで、キャプティブポータル宛てのトラフィックに一致するフィルター条件を指定します。

      2. 一致するトラフィックがラインカード上の処理をスキップすることを指定します。

    3. 前の条件に一致しないすべてのトラフィックからHTTPトラフィックを識別し、CPCDサービスルールによる処理のために送信するフィルター条件を定義します。

      1. スキップされたHTTPトラフィックと一致する1つ以上のHTTPポート番号を指定します。

      2. 一致するトラフィックがCPCDサービスによって処理されることを指定します。

    4. フィルター条件を定義して、残りの非HTTPトラフィックに対するそれ以上のアクションをスキップします。

    例えば、以下の設定では、192.0.2.0上のキャプティブポータルを使用して、IPv4 HTTPトラフィックのフィルターwalled-v4を作成します。アドレスに一致するトラフィックの処理はスキップされます。トラフィックは、キャプティブポータルに送信されます。一致しないトラフィックは条件httpに送られ、HTTPトラフィックはスキップされたすべてのトラフィックから選択され、CPCDサービスに従って処理されるように送信されます。最後に、条件スキップにより、残りのHTTP以外のトラフィックはすべてスキップされます。

  • ウォールドガーデンをサーバーのリストまたはサブネットとして設定します。

    1. サービスフィルターを作成します。

    2. フィルター条件を定義します。

      1. サーバーの宛先プレフィックスリストを指定することで、ウォールドガーデン内の任意のサーバー宛てのトラフィックに一致するフィルター条件を指定します。

        注:Junos OS Evolvedでは、複数のプレフィックスリストを作成でき、それぞれに最大3つまたは4つのプレフィックスを含めることができます。
      2. 一致するトラフィックがラインカード上の処理をスキップすることを指定します。

    3. 前の条件に一致しないすべてのトラフィックからHTTPトラフィックを識別し、CPCDサービスルールによる処理のために送信するフィルター条件を定義します。

      1. スキップされたHTTPトラフィックと一致する1つ以上のHTTPポート番号を指定します。

      2. 一致するトラフィックがCPCDサービスによって処理されることを指定します。

    4. フィルター条件を定義して、残りの非HTTPトラフィックに対するそれ以上のアクションをスキップします。

    5. (オプション)ウォールドガーデン内のサーバーを指定するプレフィックスリストを定義します。サブネットまたは複数の個別アドレスを指定できます。

    例えば、以下の設定では、IPv6 HTTPトラフィックのフィルターwalled-v6-listを作成し、ウォールドガーデン内の2台のサーバーを指定するプレフィックスリストwg-listを付けます。フィルター条件portal6は、ウォールドガーデン宛てのIPv6トラフィックを特定します。一致しないトラフィックは条件http6に行き、HTTPトラフィックはスキップされたすべてのトラフィックから選択され、CPCDサービスに従って処理されるように送信されます。最後に、skip6 項により、残りの非 HTTP トラフィックはすべてスキップされます。

ローカルおよびリモートリダイレクトサーバーへのHTTPリダイレクトの設定

ウォールドガーデン外のサイトに対してHTTPリクエストが行われると、CPCDは認証と承認のためにトラフィックをキャプティブポータルにリダイレクトできます。

ウォールドガーデンの外を宛先とするトラフィックに対して実行するアクションを指定するCPCDサービスルールを設定します。このトラフィックは、ウォールドガーデンサービスフィルターによって識別されてサービスに渡されるか、ウォールドガーデンサービスルールによって識別されて受け入れられます。設定するアクションは、ローカルまたはリモートのHTTPリダイレクトサーバーのどちらを使用しているかによって異なります。

  • ルーターでローカルHTTPリダイレクトサーバーを使用している場合は、リダイレクトアクションを指定します。

  • ルーターの背後にあるウォールドガーデンにあるリモートHTTPリダイレクトサーバーを使用している場合は、単にリダイレクトURLを指定することはできません。この場合、サービスルールはトラフィックのIP宛先アドレスを書き換える必要があります。新しい宛先アドレスは、リモートHTTPリダイレクトサーバーのアドレスです。次に、リモートサーバーは、トラフィックをキャプティブポータルに送信するためのリダイレクトURLを提供します。

CPCDサービスは、サービスセットによってサービスインターフェイスに関連付けられています。サービスセットとウォールドガーデンサービスフィルターの両方が、静的に設定されたインターフェイスに適用されます。

  1. CPCDサービス設定レベルにアクセスします。
  2. ウォールドガーデンの外を宛先とするトラフィックに適用するルールを作成します。
  3. ルールが受信トラフィックに適用されることを指定します。
  4. CPCDがHTTPトラフィックにアクションを適用するルール条件を定義します。ウォールドガーデンはサービスフィルターとして設定されているため、トラフィックはサービスに送信される前にすでにHTTPトラフィックとしてフィルタリングされています。
    • ローカルHTTPリダイレクトサーバーの場合は、リダイレクトURLを指定します。これは、元のURL(ウォールドガーデンの外側)が付加されたキャプティブポータルのURLです。

    • リモートHTTPリダイレクトサーバーの場合は、リモートサーバーの宛先アドレスを指定します。

例えば、以下のローカルサーバーの設定では、CPCDサービスルールredir-svcはトラフィックをキャプティブポータル、 http://www.portal.example.comにリダイレクトします。加入者が入力した元のURLがリダイレクトURLに追加されます。

以下のリモートサーバーの設定では、元の宛先アドレスをリモートサーバーのアドレス192.0.2.230に書き換えるCPCDサービスルールrewr-svcを作成します。

サービスプロファイルとサービスセットを設定して、サービスプロファイルをサービスインターフェイスに関連付ける

サービスセットは、ルーティングエンジンが実行する1つ以上のサービスを定義します。HTTPリダイレクトサービスでは、CPCDルールを含むCPCDサービスプロファイルを定義します。サービスセットは、CPCDサービスプロファイルを特定のサービスインターフェイスに適用します。

  1. サービスプロファイルを作成します。
  2. サービスプロファイルに1つ以上のCPCDルールを指定します。
  3. サービスセットを作成します。
  4. サービスセットがルーティングエンジンベースのCPCD用であることを指定します。
  5. CPCDサービスプロファイルを指定します。
  6. サービスインターフェイスを指定します。

例えば、以下の設定は、CPCDルールredir-svcを参照するCPCDサービスプロファイルredir-profを作成します。サービスセットss2は、ルーティングエンジンベースのCPCD用として指定されています。このセットは、CPCDサービスプロファイルredir-profをサービスインターフェイスsi-4/0/0に関連付けます。

論理インターフェイスへのCPCDサービスセットとサービスフィルターのアタッチ

HTTPリダイレクトサービスを使用するには、CPCDサービスセットを論理インターフェイスにアタッチする必要があります。ウォールドガーデンがサービスフィルターとして設定されている場合は、サービスセットと同じインターフェイスにアタッチする必要があります。そのインターフェイスに到着するトラフィック、またはそのインターフェイスを出るトラフィックは、サービス フィルターによってフィルタリングされます。サービス対象として特定されたトラフィックは、CPCDプロファイルが適用されるルーティングエンジンサービスインターフェイスに送信されます。

  1. インラインサービスを有効にし、帯域幅を指定します。
  2. 論理インライン サービス インターフェイスを設定します。
  3. アドレスファミリーを設定します。
  4. サービスセットとサービスフィルターをインターフェイスにアタッチします。
    • 静的インターフェイス:

    • 動的インターフェイス

例えば、以下の設定では、ラインカードのシャーシスロット4のラインカードとスロット0のMICでインラインサービスを有効にします。論理インターフェイスにアドレスを割り当てます。次に、IPv4アドレスファミリー用にサービスセットsset2とサービスフィルターwalled-v4をge-2/0/1.0にアタッチします。サービスセットとフィルターは、インターフェイスの入力と出力の両方に適用されます。

HTTP サーバーがコンテンツアクセスを制御するために使用できる GET ヘッダータグの挿入

場合によっては、HTTP サーバーでユーザーにコンテンツへのアクセスを許可するかどうかを決定させることができます。Junos OSリリース19.1以降では、ルーティングエンジンベースの静的HTTPリダイレクトサービスフィルターを設定して、ルーティングエンジンがこの目的のためにHTTP GETメッセージのパケットヘッダーに挿入するタグを指定できます。ルーターのホスト名、または加入者のMACアドレス、IPv4アドレス、またはIPv6アドレスにタグを挿入できます。

次の手順は 、図1に対応します。

  1. ユーザーのデバイスであるHTTPクライアントは、HTTPサーバーとTCPハンドシェイクシーケンスを実行します。

  2. ハンドシェイクが成功すると、クライアントはユーザーが要求したURLでHTTP GETを送信します。

  3. ルーティングエンジンは、/$と$/で囲まれたランダムな文字の文字列を連結してそのURLを変更します。文字列の長さは、後で挿入されるタグの合計長さと一致します。文字列は、クライアントから返される際の識別子として機能します。

    挿入するタグの長さが 30 文字で、要求された URL が http://192.51.100.20/test.html であるとします。ルーティングエンジンは、次の例のように、30文字のランダムな文字列で変更されたURLを返します。

    http://192.51.100.20/test.html/$IIGSbVdNDTDvnJFIAyoysXwVJawoYj$/

  4. ルーティングエンジンは、ステータスコード302(発見)または307(一時リダイレクト)の変更されたURLを送信します。送信されるコードは、使用されているHTTPのバージョンとBNG上のJunos OSのバージョンによって異なります。どちらのコードも、アクセス要求を変更したURLで再送信する必要があることをクライアントに示しています。

  5. ルーティングエンジンは、クライアントおよびサーバーとのTCP接続をリセットします。

  6. クライアントは、変更されたURLに対してHTTPサーバーとTCPハンドシェイクを実行します。

  7. クライアントは、変更されたURLでHTTP GETを送信します。

  8. ルーティングエンジンは、連結された文字列の長さがクライアントに送信された長さと同じであるかどうかをチェックします。

    • 長さが正しければ、URLが元の要求されたURLに戻され、タグがGETヘッダーに挿入され、GETがHTTPサーバーに転送されます。設定されている場合、オプションで GET を元のリクエストされたサーバーではなく、リダイレクト URL に転送できます。

    • 長さが正しくない場合、ルーティングエンジンはパケットをドロップし、ドロップカウンターをインクリメントします。

  9. HTTP サーバーは GET メッセージを評価し、アクセスを許可した場合はステータス コード 200(OK)、リクエストが拒否された場合は 403(禁止)の応答をクライアントに送信します。

  10. ルーティングエンジンは、クライアントおよびサーバーとのTCP接続を終了します。

図1:HTTPリダイレクトメッセージフローのタグ挿入 Diagram of HTTP and TCP flow illustrating URL modification by BNG. Highlights steps from initial TCP SYN to HTTP 200 or 403 response.
注:

タグは、設定されたのと同じ順序でヘッダーに挿入されます。タグ名は大文字と小文字に区別されるため、 tag ABCDtag abcd は別の名前として処理されます。

GETヘッダーに挿入するタグを設定するには:

  1. CPCDサービス設定レベルにアクセスします。
  2. ウォールドガーデンの外を宛先とするトラフィックに適用するルールを作成します。
  3. ルールが受信トラフィックに適用されることを指定します。
  4. (オプション)タグ付け用のトラフィックをフィルタリングする宛先アドレスを1つ以上指定します。
    注:

    または、ファイアウォールサービスフィルター内のトラフィックを特定するための宛先アドレスを指定することもできます。

  5. CPCDがHTTPトラフィックにアクションを適用するルール条件を定義します。ウォールドガーデンはサービスフィルターとして設定されているため、トラフィックはサービスに送信される前にすでにHTTPトラフィックとしてフィルタリングされています。

例えば、以下の設定では、入力インターフェイスのトラフィックに一致するサービスルールinsert-ruleを作成します。用語t1は、加入者のMACアドレスを持つx-mac-addrと、加入者のIPv4アドレスの値を持つx-sub-ipの2つのタグを挿入します。

次のサンプルルールでは、宛先アドレスが198.51.100.50または198.51.100.75に一致するトラフィックのみがタグ付けされます。タグは、加入者のIPアドレスとルーターのホスト名に挿入されます。ルールの 2 番目の条件は、トラフィックが元のリクエストされた URL に送信されるのではなく転送されるリダイレクト URL を提供します。

ルーティングエンジンベースのHTTPリダイレクトのCPCDサービスルールと同様に、CPCDサービスプロファイルにルールを含め、CPCDサービスセットを使用してプロファイルをインラインサービスインターフェイスに関連付ける必要があります。ルーティングエンジンは、ルールを使用して、サービスセットと同じ論理インターフェイス上のサービスフィルターによって渡されたHTTPトラフィックを処理します。

次の設定例を考えてみましょう。タグリダイレクトルールは、入力インターフェイス上のトラフィックを照合し、GETヘッダーに加入者のIPアドレスの値とルーターのホスト名の2つのタグを挿入するように定義されています。その後、ルールはタグ付けされたトラフィックのリダイレクトURLを提供します。CPCDサービスプロファイルhttp-insert-redirectは、このルールを含めるように定義されています。

サービスセットsset1は、ルーティングエンジンベースのCPCD用として定義されています。CPCDサービスプロファイルをインラインサービスインターフェイスに適用します。

サービスフィルターウォールドタグは、3種類のトラフィックを識別して作用します:192.0.2.100のウォールドガーデンに送信するHTTPトラフィック、198.51.100.50宛てのサービス処理に送信するHTTPトラフィック、その他すべてのトラフィックをスキップします。これは、サービスルールではなくサービスフィルターで宛先アドレスを一致させる例です。

サービスセットsset1とサービスフィルターwalled-tagは、論理インターフェイスに適用されます。

変更履歴テーブル

サポートされる機能は、使用しているプラットフォームとリリースによって決まります。 機能エクスプローラー を使用して、機能がお使いのプラットフォームでサポートされているかどうかを確認します。

リリース
説明
19.1
Junos OSリリース19.1以降では、ルーティングエンジンベースの静的HTTPリダイレクトサービスフィルターを設定して、ルーティングエンジンがこの目的のためにHTTP GETメッセージのパケットヘッダーに挿入するタグを指定できます。