# トラフィック制御 / Webリダイレクト

Webリダイレクトは、本製品経由のWebアクセスを監視し、特定のURLや上位プロキシーサーバーへリダイレクトする機能です。
Note

サブネットベースNAT（netmapアクション）とは併用できません。

Webリダイレクトには用途の応じた2つの動作モード（mode）があります。

- HTTPリダイレクトモード
  配下クライアントからのHTTPリクエストを一定の頻度で特定のURLにリダイレクトします。
  クライアントに対し、定期的に広告、お知らせなどを表示させたい場合などに利用できます。
- プロキシーモード
  配下クライアントからのHTTP/HTTPSリクエストを上位プロキシーサーバーに透過的に転送します。
  転送除外の設定を行うことで、特定のトラフィックのみプロキシーサーバーを経由せず直接インターネットに転送する、インターネットブレークアウトの構成を実現できます。

以下、動作モードごとに基本仕様と設定方法を説明します。

## HTTPリダイレクトモード

WebリダイレクトのHTTPリダイレクトモードでは、本製品経由でHTTP通信（Webアクセス）を行うクライアントを追跡し、一定の頻度で各クライアントからのHTTPリクエストを特定のURLにリダイレクトします。

### 基本仕様

- リダイレクト対象はHTTP通信のみ（HTTPS通信は対象外）
- リダイレクト先URLはHTTP、HTTPSの両方に対応
- リダイレクトはHTTPステータスコード302による
- 各クライアントはIPアドレスによって識別
- IPv4、IPv6両方のHTTP通信に対応
- 特定のクライアントをリダイレクト対象から除外可能（IPv4/IPv6/MACアドレスで指定）
- 特定のアクセス先を転送対象から除外可能（IPv4/IPv6アドレスで指定）
- リダイレクト対象をWebブラウザーからのアクセス（User-AgentにMozillaが含まれる場合）だけに限定可能
- 設定可能なリダイレクト先URLは1つ
- リダイレクト頻度は「リピートタイマー」と「アイドルタイマー」の組み合わせで指定
- 最大1000クライアントを同時に追跡可能（タイマー監視が可能）。1001台目以降のクライアントはつねにリダイレクトされる

### 設定方法

HTTPリダイレクトモードの基本的な設定方法を示します。
本製品配下のクライアントからのWebアクセスはすでに可能な状態になっているものと仮定します。

1. グローバルコンフィグモードのweb-redirectコマンドでWebリダイレクトの設定を開始します。

       awplus(config)# web-redirect

2. server-urlコマンドでリダイレクト先URLを設定します。
   リダイレクトの対象となる通信はHTTPのみですが、リダイレクト先URLはHTTPでもHTTPSでもかまいません。

       awplus(config-web-redirect)# server-url https://info.example.com/

3. repeat-timeコマンド（リピートタイマー）とidle-timeコマンド（アイドルタイマー）でリダイレクトの頻度（間隔）を設定します。
   ここでは各クライアントについて、少なくとも1日（86400秒）は間隔を空け、さらに最低10分間（600秒）は無通信の状態が続いていることを、次回リダイレクトの実行条件とします。
   各タイマーの詳細については、リダイレクト頻度の設定をご覧ください。

       awplus(config-web-redirect)# repeat-time 86400
       awplus(config-web-redirect)# idle-time 600

4. Webリダイレクト機能を有効にします。これにはenableコマンドを使います。

       awplus(config-web-redirect)# enable

#### 特定クライアントの除外

特定クライアントからのWebアクセスをリダイレクトしたくない場合は、以下の除外設定が可能です。
クライアントのIPv4/IPv6アドレスを指定して除外するには、exclude ipコマンドを使います。

    awplus(config-web-redirect)# exclude ip 192.168.10.2
    awplus(config-web-redirect)# exclude ip 2001:db8:1:10::2

次のようにIPv4/IPv6アドレスをブロックで指定することも可能です。

    awplus(config-web-redirect)# exclude ip 192.168.1.0/24
    awplus(config-web-redirect)# exclude ip 2001:db8:1:1::/64

クライアントのMACアドレスを指定して除外するには、exclude macコマンドを使います。

    awplus(config-web-redirect)# exclude mac 00:00:5E:00:53:85

Note

MACアドレスによる除外指定はIPv4クライアントに対してのみ有効です。

Note

個々のクライアントをMACアドレスで指定するためには、該当クライアントが本製品と同じL2ネットワークに接続されている必要があります。クライアントと本製品の間にL3装置（他のルーターなど）が存在している場合、本製品が受信するMACアドレスは介在するL3装置のMACアドレスになるためです。

MACアドレスの先頭3オクテット、すなわちベンダーコード（OUI）を指定して除外することも可能です。

    awplus(config-web-redirect)# exclude mac 00:00:5E

#### 特定のアクセス先を除外

特定のアクセス先をリダイレクト対象から除外する場合は、以下の除外設定が可能です。
Webリダイレクトモードのexclude dst-ipコマンドで除外するアクセス先のWebサーバーのIPv4/IPv6アドレスを指定します。

    awplus(config-web-redirect)# exclude dst-ip 192.168.5.0/24

#### 非Webブラウザーの除外

今日、HTTP通信はソフトウェアの自動アップデート機能などWebブラウジング以外のさまざまな用途にも利用されています。こうした自動的なHTTP通信をリダイレクト対象から除外するには、ブラウザーオンリーモードを使います。
ブラウザーオンリーモードを有効にするには、browser-onlyコマンドを実行します。

    awplus(config-web-redirect)# browser-only

ブラウザーオンリーモードでは、HTTPリクエストのUser-Agentヘッダーに「Mozilla」という文字列が含まれている場合のみリダイレクトを行い、それ以外のHTTP通信はリダイレクトしません。

#### リダイレクト頻度の設定

各クライアントをどのくらいの頻度（間隔）でリダイレクトするかは、2つのタイマーの設定によって決まります。

- リピートタイマー（repeat-timeコマンド） - リダイレクトの最小間隔 1～31536000秒（最大365日）。未設定時は0（秒）に相当（つねにリダイレクトする）
- アイドルタイマー（idle-timeコマンド） - 再リダイレクト前に必要な無通信時間 0～86400秒（最大1日）。初期値0秒

本機能の有効時、各クライアント最初のWebアクセス（HTTPリクエスト）は必ずリダイレクトされ、リピートタイマーのカウントダウンが始まります。
その後リピートタイマーが0になるまでは、該当クライアントのWebアクセスをリダイレクトすることはありません。
次のリダイレクトの実行タイミングは、アイドルタイマーの設定有無によって次のように異なります。

- アイドルタイマーなし（0：初期値）の場合
  リピートタイマーが0になった時点で次回のリダイレクトが可能な状態となり、その後発生した最初のHTTPリクエストがリダイレクトされます。

- アイドルタイマーあり（1以上）の場合
  リピートタイマーが0になることに加え、アイドルタイマーで指定した期間、該当クライアントからのWebアクセスがないことが再リダイレクトの条件となります。この2つ目の条件を満たしたかどうかは、アイドルタイマーが0になったかどうかで判断します。

  アイドルタイマーのカウントダウンは、リピートタイマーの残り時間がアイドルタイマーの設定値と同じになった時点（前回のリダイレクトから repeat-time - idle-time 秒経過した時点）で始まります。
  たとえば、リピートタイマーとアイドルタイマーの設定値がそれぞれ10分と2分だった場合、前回のリダイレクトから8分経過してリピートタイマーの残りが2分になった時点からアイドルタイマーのカウントダウンが始まります。
  該当クライアントからWebアクセスのない状態が続くあいだ、アイドルタイマーはカウントダウンされ、0になると次回のリダイレクトが可能な状態になり、その後発生した最初のHTTPリクエストがリダイレクトされます。
  アイドルタイマーが0になる前にWebアクセスが発生した場合、アイドルタイマーは設定値にリセットされ、次の無通信時間に最初からカウントしなおします。
  アイドルタイマーは、特定Webサイトの読み込み中にリダイレクトされることを防止する目的で設けられています。一般的なWebサイトは複数のリソース（HTML、CSS、画像など）で構成されているため、外見上は1つのページを表示するだけでもブラウザーが複数回のHTTPリクエストを行っていることは珍しくありません。そのため、リピートタイマー満了とともに無条件でリダイレクトするとページ読み込みが中途半端な状態でリダイレクトされる可能性がありますが、アイドルタイマーにより一定期間Webアクセスがない状態が続いたときに初めてリダイレクトが再開されるよう設定することで、このような事態を防ぐことができます。

## プロキシーモード

Webリダイレクトのプロキシーモードは、本製品を通過するHTTP/HTTPS通信（Webアクセス）をインターセプトし、あらかじめ設定された上位のプロキシーサーバーに透過的な転送を行う機能です。
転送除外の設定を行うことで、通常トラフィックはプロキシーサーバーを経由させつつ、特定のトラフィックだけは直接インターネットに転送する、インターネットブレークアウトの構成を構築可能です。

### 基本仕様

- クライアントのプロキシー設定は不要（プロキシーを使用しない設定にする）
- 本製品自身が、本製品を通過するHTTP通信（TCP 80番ポート宛て）とHTTPS通信（TCP 443番ポート宛て）に対する透過プロキシーとして動作
- 除外対象でないすべてのHTTP/HTTPS通信を適切なプロキシーリクエストに変換してプロキシーサーバーに転送
- プロキシーサーバーは非透過型のみサポート
- クライアントとプロキシーサーバーが異なるサブネットに配置されている構成のみサポート
  （クライアントとプロキシーサーバーが同一サブネットに存在する構成はサポート対象外）
- 転送先プロキシーサーバーはIPアドレス/ホスト名とポート番号で指定
- IPv4、IPv6両方のHTTP/HTTPS通信に対応
- 特定のクライアントを転送対象から除外可能（IPv4/IPv6/MACアドレスで指定）
- 特定のアクセス先を転送対象から除外可能（URL、DPIアプリケーションまたはIPv4/IPv6アドレスで指定）

### 設定方法

プロキシーモードの基本的な設定方法を示します。
本製品配下のクライアントからのWebアクセスはすでに可能な状態になっているものと仮定します。

1. グローバルコンフィグモードのweb-redirectコマンドでWebリダイレクトの設定を開始します。

       awplus(config)# web-redirect

2. Webリダイレクトの動作モードを初期設定のHTTPリダイレクトモードからプロキシーモードに切り替えます。これにはmodeコマンドを使います。

       awplus(config-web-redirect)# mode proxy

3. proxy-hostコマンドで転送先上位プロキシーサーバーのIPアドレス/ホスト名とポート番号を指定します。

       awplus(config-web-redirect)# proxy-host 192.168.10.100 port 3128

4. Webリダイレクト機能を有効にします。これにはenableコマンドを使います。

       awplus(config-web-redirect)# enable

基本設定は以上です。
この設定では、本製品を経由するすべてのHTTP/HTTPSトラフィックが透過的に上位プロキシーサーバーへ転送されます。
特定のトラフィックのみ、プロキシーサーバーを介さずに直接インターネットに送り出すインターネットブレークアウトの構成を実現するためには、該当トラフィックをプロキシーモードの動作対象から外す必要があります。これには以下の除外設定を追加します。
除外設定には次の種類があります。

- アクセス先を除外
  - DPIアプリケーションで指定（特定のWebサービスを除外）
  - URLで指定（特定のURLを除外）
  - IPv4/IPv6アドレスで指定（特定のWebサーバーを除外）
- クライアントを除外
  - IPアドレスで指定
  - MACアドレスで指定

以下、それぞれの設定方法について説明します。

#### アクセス先の除外

特定の宛先に対するHTTP/HTTPSトラフィックをプロキシーモードの動作対象から除外するには、以下の設定を行います。
アプリケーションコントロール（DPI）を利用して、アプリケーション（Webサービス）単位で除外するには、次のようにします。

1. DPIおよびDPI学習機能を有効化します。詳細はDPIの解説編をご参照ください。

       awplus(config)# dpi
       awplus(config-dpi)# provider built-in
       awplus(config-dpi)# learning
       awplus(config-dpi)# enable
       awplus(config-dpi)# exit

2. Webリダイレクトモードのexclude appコマンドで除外するDPIアプリケーション定義名を指定します。
   指定可能なアプリケーション定義名は、show application detailコマンドのdpiオプションで確認可能です。

       awplus(config)# web-redirect
       awplus(config-web-redirect)# exclude app office365

Note

Webコントロールの有効時には、DPIアプリケーションの除外設定はできません。

アクセス先のURLを指定して除外するには、exclude urlコマンドを使います。

    awplus(config-web-redirect)# exclude url www.example.com

Note

除外URLの設定は、TLS 1.3の暗号化SNI（ESNI）を使用しているHTTPS通信に対しては機能しません。

アクセス先のWebサーバーのIPv4/IPv6アドレスを指定して除外するには、exclude dst-ipコマンドを使います。

    awplus(config-web-redirect)# exclude dst-ip 192.168.5.0/24

#### 特定クライアントの除外

特定のクライアントをプロキシーモードの動作対象から除外するには、以下の設定を行います。
クライアントのIPv4/IPv6アドレスを指定して除外するには、exclude ipコマンドを使います。

    awplus(config-web-redirect)# exclude ip 192.168.10.2
    awplus(config-web-redirect)# exclude ip 2001:db8:1:10::2

次のようにIPv4/IPv6アドレスをブロックで指定することも可能です。

    awplus(config-web-redirect)# exclude ip 192.168.1.0/24
    awplus(config-web-redirect)# exclude ip 2001:db8:1:1::/64

クライアントのMACアドレスを指定して除外するには、exclude macコマンドを使います。

    awplus(config-web-redirect)# exclude mac 00:00:5E:00:53:85

Note

MACアドレスによる除外指定はIPv4クライアントに対してのみ有効です。

Note

個々のクライアントをMACアドレスで指定するためには、該当クライアントが本製品と同じL2ネットワークに接続されている必要があります。クライアントと本製品の間にL3装置（他のルーターなど）が存在している場合、本製品が受信するMACアドレスは介在するL3装置のMACアドレスになるためです。

MACアドレスの先頭3オクテット、すなわちベンダーコード（OUI）を指定して除外することも可能です。

    awplus(config-web-redirect)# exclude mac 00:00:5E