Cisco ACNS キャッシング/ストリーミング コンフィギュレーション ガイド
リバース プロキシ キャッシング
リバース プロキシ キャッシング
発行日;2012/02/03 | ドキュメントご利用ガイド | ダウンロード ; この章pdf | フィードバック

目次

リバース プロキシ キャッシング

リバース プロキシ キャッシングの概要

WCCP に基づいたリバース プロキシ サービスの設定

Content Engine 上でのリバース プロキシ サービス設定

ルータ上の出力リダイレクトによるリバース プロキシ サービス設定

入力リダイレクトによるルータ上でのリバース プロキシ サービス設定

設定例:出力リダイレクトによるリバース プロキシ

レイヤ 4 スイッチに基づいたリバース プロキシ サービスの設定

Content Engine 上でのリバース プロキシ サービス設定

CSS スイッチのリバース プロキシ キャッシング設定

CSS スイッチへのリバース プロキシ キャッシング設定の出力例

リバース プロキシ モードでの IP スプーフィングの設定

Content Engine の IP スプーフィング設定

ルータの IP スプーフィング設定

リバース プロキシ キャッシング

この章では、リバース プロキシ キャッシングについて説明し、ACNS 5.x ソフトウェアがインストールされている Content Engine の設定例を示します。この章の構成は、次のとおりです。

「リバース プロキシ キャッシングの概要」

「WCCP に基づいたリバース プロキシ サービスの設定」

「レイヤ 4 スイッチに基づいたリバース プロキシ サービスの設定」

「リバース プロキシ モードでの IP スプーフィングの設定」


) この章で使用される CLI コマンドの構文と使用方法については、『Cisco ACNS Software Command Reference, Release 5.1』を参照してください。


リバース プロキシ キャッシングの概要

通常のプロキシ キャッシュ設定では、プロキシ サーバがクライアントのプロキシとして稼働します。リバース プロキシ設定では、リバース プロキシ サーバがサーバのプロキシとして稼働します。また、リバース プロキシ キャッシュは特定のコンテンツを保存しますが、プロキシ キャッシュと透過キャッシュは頻繁に要求されるコンテンツを保存します。リバース プロキシ キャッシュが実行する主な機能は、次の 2 つです。

地理的に分散した場所へのコンテンツの複製

負荷分散を目的としたコンテンツの複製

リバース プロキシ キャッシュ設定では、プロキシ サーバはインターネット上でルーティング可能な IP アドレスを使用して設定されます。クライアントは、ドメイン名の DNS 解決に基づいて、プロキシ サーバに接続されます。リバース プロキシ サーバは、クライアントからは Web サーバのように見えます。

応答時間を短縮し、サービス提供の最大化を図り、過剰な URL ヒット数や帯域幅要求にも対応できるようにするために、ACNS 5.x ソフトウェアがインストールされた Content Engine を、Web サイト サーバ ファームの直前に配置できます。この配置は、混雑しているファイアウォールやサーバからトラフィック負荷を軽減して、Web サイト全体のインフラストラクチャを最適化します。このタイプの配置方法は、Web サーバの高速化、またはリバース プロキシと呼ばれます。このように配置された Content Engine は、単純にリバース プロキシ キャッシュと呼ばれています。これは、この Content Engine がトランザクションの相手側で、オリジン サーバの直前で動作するからです。

ACNS 5.x ソフトウェアは、次に示す 2 つのタイプのデバイスでトラフィックのリダイレクトまたは代行受信を可能にし、リバース プロキシ キャッシングを実行します。1 つは WCCP 対応ルータで、もう 1 つは Content Services Switch(CSS)11000 シリーズのスイッチなどのレイヤ 4 スイッチです。

WCCP に基づいたリバース プロキシ サービスの設定

図 6-1 に示す配置の場合、Content Engine は WCCP Version 2 を実行するルータと相互動作して、Web サーバ環境内でリバース プロキシ サービスを提供します。この配置では、インターネットに接続されているルータ インターフェイスの IP アドレスは 192.168.1.1 です。Web サーバ宛の HTTP 要求はすべて、172.16.21.1 のルータ インターフェイスにルーティングされます。このインターフェイスで HTTP 要求を受信すると、ルータはこの要求を透過的に代行受信し、IP アドレス 172.16.20.23 の Content Engine にリダイレクトします。このようにして、Content Engine は論理的に Web サーバの直前に存在し、Web サーバの HTTP トラフィックの負荷を軽減します。Content Engine は、要求されたコンテンツがキャッシュ内にない場合に限り、Web サーバに要求を送信します。

図 6-1 WCCP 対応ルータを使用したリバース プロキシ サービス

 

WCCP 対応ルータを経由したトラフィックのリダイレクトを行うリバース プロキシ キャッシングを設定するには、次の項を参照してください。

「Content Engine 上でのリバース プロキシ サービス設定」

「ルータ上の出力リダイレクトによるリバース プロキシ サービス設定」

「入力リダイレクトによるルータ上でのリバース プロキシ サービス設定」


ルータ上のリダイレクト リスト、または Content Engine 上の静的バイパス リストを使用すると、代行受信をバイパスするフローが可能になります。これらのリストは、送信元および宛先の IP アドレスに基づいた基準を使用します。


Content Engine 上でのリバース プロキシ サービス設定

ローカルに配置する Content Engine 上で WCCP リバース プロキシ サービスを設定する手順は、次のとおりです。

 

目的
コマンド

ステップ 1

WCCP Version 2 を Content Engine 上で使用可能にします。

ContentEngine(config)# wccp version 2

ステップ 2

ルータ リストを設定します。

ContentEngine(config)# wccp router-list 1 172.16.20.1

ステップ 3

WCCP リバース プロキシ サービスを実行するように Content Engine に指示します。

ContentEngine(config)# wccp reverse-proxy router-list-num 1

ステップ 4

グローバル設定モードを終了します。

ContentEngine(config)# exit

ルータ上の出力リダイレクトによるリバース プロキシ サービス設定

オリジン サーバ宛ての出力をリダイレクトすることによって、WCCP リバース プロキシ サービスをルータ上に設定する手順は、次のとおりです。

 

目的
コマンド

ステップ 1

WCCP リバース プロキシ サービスを実行するようにルータに指示します。リバース プロキシ サービスは、値 99 によって指定されます。

Router(config)# ip wccp 99
 

ステップ 2

設定するルータ インターフェイスを指定します。この場合、Ethernet 0/1 が Web サーバへのルータ インターフェイスです。

Router(config)# interface Ethernet 0/1
 

ステップ 3

指定されたインターフェイス宛ての TCP ポート 80 トラフィックを、リバース プロキシ サービスを受け入れる Content Engine にリダイレクトするようにルータに指示します。この場合、ルータは 1 つだけです。

Router(config-if)# ip wccp 99 redirect out
 

ステップ 4

グローバル設定モードを終了します。

Router(config)# exit

入力リダイレクトによるルータ上でのリバース プロキシ サービス設定

入力をローカルに配置する Content Engine へリダイレクトすることによって、WCCP リバース プロキシ サービスをルータ上に設定する手順は、次のとおりです。

 

目的
コマンド

ステップ 1

リバース プロキシ サービスを実行するようにルータに指示します。リバース プロキシ サービスは、値 99 によって指定されます。

Router(config)# ip wccp 99
 

ステップ 2

設定するルータ インターフェイスを指定します。この場合、s0/0 がインターネットへのルータ インターフェイスです。

Router(config)# interface s0/0
 

ステップ 3

指定されたインターフェイスで受信される TCP ポート 80 トラフィックを、リバース プロキシ サービスを受け入れる Content Engine にリダイレクトするようにルータに指示します。

Router(config-if)# ip wccp 99 redirect in
 

ステップ 4

インターフェイス設定モードを終了します。

Router(config-if)# exit

設定例:出力リダイレクトによるリバース プロキシ

ここでは、図 6-1 で示す配置に対する Content Engine とルータの設定を示します。リバース プロキシに関連するコマンドは、ボールド体で示されています。

Content Engine

!
hostname ContentEngine
!
interface ethernet 0
ip address 172.16.20.23 255.255.255.224
ip broadcast-address 10.0.0.255
exit
!
interface ethernet 1
exit
!
ip default-gateway 172.16.20.1
ip name-server 172.16.20.238
ip domain-name cisco.com
ip route 0.0.0.0 0.0.0.0 172.16.20.1
!
wccp router-list 1 172.16.20.1
wccp 99 reverse-proxy router-list-num 1
wccp version 2
!
end

WCCP 対応ルータ

Current configuration:
!
version 12.1
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname 2611-5
!
enable secret 5 $1$9VQ.$BTPbq8xlE2dsKwKPDDmpL/
!
!
ip subnet-zero
ip wccp 99
!
!
interface Ethernet0/0
no ip address
no ip redirects
!
interface Serial0/0
ip address 192.168.1.1 255.255.255.224
!
interface Ethernet0/1
ip address 172.16.21.1 255.255.255.224
ip wccp 99 redirect out
!
interface Ethernet1/0
ip address 172.16.20.1 255.255.255.224
!
interface Ethernet1/1
no ip address
shutdown
full-duplex
!
interface Ethernet1/2
no ip address
shutdown
!
. . .
ip classless
!
!
line con 0
transport input none
line aux 0
line vty 0 4
login
!
end

 

レイヤ 4 スイッチに基づいたリバース プロキシ サービスの設定

図 6-2 に示する配置では、Content Engine は、WCCP Version 2 と CSS 11000 シリーズ スイッチを実行するルータと相互動作して、Web サーバ環境内でリバース プロキシ サービスを実行します。この配置では、ユーザは要求を CSS スイッチの仮想 IP アドレスに送ります。Web サーバ宛ての HTTP 要求はすべて、CSS スイッチ インターフェイスにルーティングされます。このインターフェイスで要求を受信すると、CSS スイッチはこの要求を透過的に代行受信し、Content Engine にリダイレクトします。このようにして、Content Engine は論理的に Web サーバの直前に存在し、Web サーバの HTTP トラフィックの負荷を軽減します。Content Engine は、要求されたコンテンツがキャッシュ内にない場合に限り、Web サーバに要求を送信します。


) ここで示されているソリューション例は、特定の Web サーバおよび特定の構成でのみ機能します。これらのデバイスを設定する際に使用するトポロジーを示すネットワーク図については、図 6-2を参照してください。


図 6-2 リバース プロキシ キャッシングのネットワーク

 

Content Engine 上でのリバース プロキシ サービス設定

ローカルに配置する Content Engine 上で WCCP リバース プロキシ サービスを設定する手順は、次のとおりです。

 

目的
コマンド

ステップ 1

Content Engine で要求を処理するようにします(可能な場合)。

ContentEngine(config)# no bypass load enable

ステップ 2

レイヤ 4 スイッチを使用したトラフィックのリダイレクトを受け入れるように Content Engine を設定します。

ContentEngine(config)# http l4-switch enable
 

CSS スイッチのリバース プロキシ キャッシング設定

次に示す CLI コマンドを使用して、CSS スイッチにリバース プロキシ キャッシングを設定します。設定を変更するには、CSS スイッチを設定モードにする必要があります。


) 設定可能なすべてのサービスと必要なパラメータについては、「CSS スイッチへのリバース プロキシ キャッシング設定の出力例」を参照してください。CSS スイッチを使用したキャッシングに関する詳細は、『CSS Advanced Configuration Guide』を参照してください。


 

目的
コマンド

ステップ 1

CSS スイッチの所有者を指定します。

CS150(config)# owner cisco

ステップ 2

現在の所有者に対するリバース プロキシ ルールを作成します。

CS150(config-owner[cisco])# content RPCRule
Create content <RPCRule>, [y/n]: y

ステップ 3

リバース プロキシ ルールにサービスを追加します。この場合、Content Engine 1 がサービスとしてリバース プロキシ ルールに追加されます。

CS150(config-owner-content[RPCRule])# add service ce1
 

ステップ 4

リバース プロキシ ルールにサービスを追加します。この場合、Content Engine 2 がサービスとしてリバース プロキシ ルールに追加されます。

CS150(config-owner-content[RPCRule])# add service ce2
 

ステップ 5

仮想 IP アドレスを CSS スイッチに割り当てます。

CS150(config-owner-content[cisco-RPCRule])# vip address 172.16.0.0

ステップ 6

サービス プロトコルとして TCP を指定します。

CS150(config-owner-content[cisco-RPCRule])# protocol tcp

ステップ 7

トラフィックに対する要求をポート 80 に到達するように指定します。

CS150(config-owner-content[cisco-RPCRule])# port 80
 

ステップ 8

キャッシング可能なコンテンツを定義します。

CS150(config-owner-content[cisco-RPCRule])# url "/*" eql Cacheable

ステップ 9

CSS スイッチの設定モードを終了します。

CS150(config-owner-content[cisco-RPCRule])# exit

CSS スイッチへのリバース プロキシ キャッシング設定の出力例

次の例では、CSS スイッチの設定の一部を示しています。

!************************** SERVICE **************************
service webserver1
ip address <first_webserver_ip_address>
protocol tcp
port 80
active
 
service webserver2
ip address <second_webserver_ip_address>
protocol tcp
port 80
active
 
service cache1
protocol tcp
ip address <first_cache_ip_address>
port 80
type transparent-cache
no cache-bypass
active
 
service cache2
protocol tcp
ip address <second_cache_ip_address>
port 80
type transparent-cache
no cache-bypass
active
 
 
!**************************** EQL ****************************
eql cacheable
description "This EQL contains extensions of cacheable content"
extension pdf "Acrobat"
extension fdf "Acrobat Forms Document"
extension au "Sound audio/basic"
extension bmp "Bitmap Image"
extension z "Compressed data application/x-compress"
extension gif "GIF Image image/gif"
extension html "Hypertext Markup Language text/html"
extension htm
extension js "Java script application/x-javascript"
extension mocha
extension jpeg "JPEG image image/jpeg"
extension jpg
extension jpe
extension jfif
extension pjpeg
extension pjp
extension mp2 "MPEG Audio audio/x-mpeg"
extension mpa
extension abs
extension mpeg "MPEG Video video/mpeg"
extension mpg
extension mpe
extension mpv
extension vbs
extension m1v
extension pcx "PCX Image"
extension txt "Plain text text/plain"
extension text
extension mov "QuickTime video/quicktime"
extension tiff "TIFF Image image/tiff"
extension tar "Unix Tape Archive application/x-tar"
extension avi "Video for Windows video/x-msvideo"
extension wav "Wave File audio/x-wav"
extension gz "application/x-gzip"
extension zip "ZIP file application/x-zip-compressed"
 
!*************************** OWNER ***************************
owner www.site.com
 
content reverse_proxy_rule ! this rule is used to map in caches for static
vip address <published_vip> ! content.Since this rule is more specific
protocol tcp ! than "web_server_rule" (url match uses an
port 80 ! eql), this rule will be evaluated first.Only
url "/*" eql cacheable !'cacheable' traffic will be matched and sent
add service cache1 ! to the Caches.
add service cache2
active
 
 
content web_server_rule ! this rule is used to map in the web-servers
vip address <published_vip> ! for non-cacheable content.
protocol tcp
port 80
url "/*"
add service webserver1
add service webserver2
active
 
content cache_request_rule ! this rule is used for caches requesting
vip address <cache_miss_vip> ! content from the web-servers.This rule
protocol tcp ! should include the web servers only
port 80
add service webserver1
add service webserver2
active
 

リバース プロキシ モードでの IP スプーフィングの設定

一般的な透過キャッシングでは、ユーザは Web ブラウザから HTTP 要求を行います。この要求はサービス プロバイダーかデータ センターで透過的に代行受信され、WCCP 対応ルータにより Content Engine へリダイレクトされます。Content Engine はルータからの着信 TCP 接続を受け入れ、その要求がストレージに存在しないオブジェクトに対するものである(キャッシュ ミス)と判断し、このオブジェクトに対する要求をオリジン Web サーバに送ります。Content Engine がオリジン Web サーバと通信する際、Content Engine はクライアントの IP アドレスではなく、Content Engine 自体の IP アドレスを使用します。このとき Content Engine がクライアントの代行として要求を行います。

一方 IP スプーフィングを使用すると、透過リダイレクト プロセスでは、Content Engine が認証目的でクライアントの IP アドレスをオリジン Web サーバへ送信できます。IP スプーフィングを使用可能にするには、 wccp spoof-client-ip enable グローバル設定コマンドを使用します。IP スプーフィングを使用不可にするには、 no wccp spoof-client-ip enable コマンドを使用します。


) Content Engine 上で IP スプーフィングを使用可能にするには、事前に、クライアント、オリジン サーバ、および Content Engine を処理するルータ インターフェイスを設定しておく必要があります(「ルータの IP スプーフィング設定」を参照)。


IP スプーフィングは、次のような場合に推奨されます。

ユーザ IP アドレスのロギング

ユーザ IP アドレスに基づいたフィルタリング

一部のユーザに他のユーザよりもよいサービスを提供するためのポリシーベースのルーティング

WCCP 対応ルータを使用した通常の透過リダイレクトでは、ルータはクライアントから送信されたパケットだけを代行受信します。その後、このルータはその要求を Content Engine に転送します。IP スプーフィングを使用すると、ルータはクライアントの IP アドレス宛てのパケットをサーバからも代行受信し、それらのパケットを Content Engine にリダイレクトします。

ルータが送信元の IP アドレスをもつパケットを Content Engine に送り返すように試みるので、 ip wccp redirect exclude in コマンドを使用して Content Engine に接続されているルータ インターフェイスでトラフィックのリダイレクトを使用不可に設定し、ループバックを回避する必要があります。また、クライアントに接続されているルータ インターフェイス上で、トラフィックのリダイレクトを使用可能にする必要もあります。

IP スプーフィングの設定に必要な設定手順については、 「ルータの IP スプーフィング設定」 を参照してください。この設定例では、Content Engine と要求元のクライアントが図 6-3 に示されているように別々のサブネット上にあります。


図 6-3 で示されている例では、リバース プロキシ サービス、およびユーザが設定可能なサービス グループ番号 96 が使用されています。ユーザが設定可能なサービス グループ番号の範囲は、90 ~ 97 です。Content Engine 上で設定可能なサービス グループについては、付録 C「Web Cache Communication Protocol Version 2」を参照してください。


図 6-3 Content Engine とクライアントが別々のサブネットにある場合の IP スプーフィング

 

Content Engine の IP スプーフィング設定

ローカルに配置する Content Engine の IP スプーフィングを設定する手順は、次のとおりです。

 

目的
コマンド

ステップ 1

WCCP Version 2 を Content Engine で使用可能にします。

ContentEngine(config)# wccp version 2

ステップ 2

ルータ リストを設定します。

ContentEngine(config)# wccp router-list 1 10.10.20.1

ステップ 3

ポート 80 経由で WCCP サービス グループに関連付けられるポート リスト 1 を設定します。

ContentEngine(config)# wccp port-list 1 80

ステップ 4

サービス グループ番号 96 を設定し、ルータ リスト、ポート リスト 1、ハッシュ パラメータを宛先 IP アドレスと送信元ポートに関連付けます。

ContentEngine(config)# wccp service-number 96 router-list-num 1 port-list-num 1 application cache hash-destination-ip match-source-port

ステップ 5

Content Engine がリバース プロキシ サービスを受け入れることを、指定されたルータ リスト内のルータに知らせます。

ContentEngine(config)# wccp reverse-proxy router-list-num 1

ステップ 6

クライアントの IP スプーフィングを使用可能にします。

ContentEngine(config)# wccp spoof-client-ip enable

ステップ 7

グローバル設定モードを終了します。

ContentEngine(config)# exit

ステップ 8

実行中の設定を不揮発性メモリに書き込みます。

ContentEngine# write memory

) ユーザが Content Engine ファームを使用し、このファーム内に重み付け割り当てを使用する場合は、送信パケットと受信パケットの双方に対して IP スプーフィングに割り当てるサービス グループに対するこれらの重み付け割り当てが、すべての Content Engines 上で同じであることを確認し、TCP 接続での中断を避ける必要があります。必要に応じて、これらのサービス グループに対して重み付けを割り当てるには、wccp service-number servnumber router-list-num num port-list-num port application cache weight percentage コマンドを使用します。デフォルトでは、Content Engine ファームは、IP スプーフィングをオンにして適切なハッシュを行っており、サービス グループに対する重み付けの割り当ては不要です。


ルータの IP スプーフィング設定

ルータの IP スプーフィングを設定する手順は、次のとおりです。

 

目的
コマンド

ステップ 1

WCCP リバース プロキシ サービスを実行するようにルータに指示します。

Router(config)# ip wccp 99

ステップ 2

ルータ上でサービス グループ 96 を使用可能にします。

Router(config)# ip wccp 96

ステップ 3

宛先 IP アドレス上でハッシュするサービスを使用して、オリジン サーバに向かうインターフェイス上で WCCP リダイレクトをイネーブルにします(図 6-3 を参照)。

Router(config-if)# ip wccp 99 redirect out

ステップ 4

送信元 IP アドレス上でハッシュするサービスを使用して、クライアントに向かうインターフェイス上で WCCP リダイレクトをイネーブルにします(図 6-3 を参照)。

Router(config-if)# ip wccp 96 redirect out

ステップ 5

Content Engine に接続されているインターフェイス上で WCCP リダイレクトをディセーブルにします(図 6-3 を参照)。

Router(config-if)# ip wccp redirect exclude in

ステップ 6

グローバル設定モードを終了します。

Router(config-if)# exit