RealServer ロードバランス時の BIG-IP 設定方法 本ドキュメントは複数の RealServer をロードバランスする際の BIG-IP コントローラの設定方法を紹介するもので F5 Networks Japan K.K. と RealNetworks K.K. によって作成されました FTBU による BIG-IP の初期設定ご購入された BIG-IP の電源を入れ FTBU (First Time Boot Utility) を実行します FTBU では BIG-IP 自身の IP アドレスやアクセスパスワードなどを設定します FTBU を実行する方法は キーボード ディスプレイを BIG-IP に接続する方法 シリアル端末を接続する方法 初期 IP アドレスに SSH または SSL で接続する方法があります 詳細は製品付属のマニュアルをご参照ください RealServer のロードバランスここでは BIG-IP の内側インターフェイス側に存在する RealServer 群を private address(192.168.1.0/24) BIG-IP の外側インターフェース側を Global Address( 本文書では便宜上 192.168.2.0/24) とした設定について記述します BIG-IP のインターフェイスを 1 つだけ使用し BIG-IP と RealServer 群を両方 Global Address とする構成も可能です 設定するポート番号の把握及び GUI による BIG-IP の設定 RealServer をロードバランスするためには まず通信の際にどのポート番号を用いられるかをユーザの環境に応じて決定する必要があります 以下の記述を参考に使用するポート番号を決定後 それぞれのポートについてロードバランスを設定します RealPlayer から RealServer への通信ではポート 554 (RTSP),7070 (PNA),80 (HTTP) が使用されます (HTTP ポートが 80 か あるいは別のポート番号かは RealServer の設定によります ) また RealProxy から RealServer への通信では 3030(splitting request),7802,7878(realproxy requests) ポートが使用されます RealServer からクライアントへのストリームデータは通常 UDP で送出されます (6970-32000 ポート ) ( #1 ) 使用するポート番号を把握後 次の手順で BIG-IP を設定します 1. ロードバランス先 RealServer 群の IP アドレスとポート番号によりサーバ pool を作成する 2. HTTP( 例えば 80 ポート ) の pool について Simple Persistence の設定を行う 3. ユーザが実際にアクセスするアドレスで Virtual Server を作成し pool と結びつける 4. RealServer から送出されるストリームデータを通過させるため SNAT を設定する 5. ヘルスチェックの設定を行う 6. Reliable UDP ACK Packet を通過させるための設定を行う 7. 必要な場合は treaper の値を変更する 以下にそれぞれの手順について記述します F5 Networks Japan K.K. 1
1. サーバ pool の作成 ロードバランス先 RealServer 全ての IP アドレスと使用するポート番号によりサーバの pool を作成します ここでロー ドバランス方式も設定します ( 図 1 図 2) 図 1 pool の作成 (1) F5 Networks Japan K.K. 2
図 2 pool の作成 (2) 2. Simple Persistence の設定 HTTP(80) の pool について Simple Persistence の設定を行う HTTP により RTSP をカプセル化した場合 同じサーバに対して 2 回リクエストが発行されるためにこの設定が必要となります ( 図 3) F5 Networks Japan K.K. 3
図 3 Simple Persistence の作成 3.Virtual Server の作成 ユーザが実際にアクセスする実 IP アドレスとポート番号で Virtual Server を作成し 1. で作成した pool と結び付けま す ( 図 4 図 5) F5 Networks Japan K.K. 4
図 4 Virtual Server の作成 (1) F5 Networks Japan K.K. 5
図 5 Virtual Server の作成 (2) ここで注意点としては ストリームを UDP パケットで流したい場合は Virtual Service Properties の該当項目をチェッ クする必要はあります ( 図 5-1 ) F5 Networks Japan K.K. 6
図 5-1 UDP パケットを有効にする 4.SNAT の作成 RealServer からストリームデータを送出するため Virtual Server のアドレスと同一のアドレスで SNAT を作成します ( 図 6) このとき default SNAT で設定します F5 Networks Japan K.K. 7
図 6 SNAT の作成 5. ヘルスチェックの設定 BIG-IP は定期的に各サーバのヘルスチェックをおこない 応答しないサーバは DOWN とみなして以後そのサーバにリクエストを送りません サーバ DOWN 後もそのサーバへのヘルスチェックは継続し 応答が来次第 UP とみなして リクエストを送るようになります このヘルスチェックは 現在までの 1~4 の設定で デフォルトの各サーバ (192.168.1.101 192.168.1.102 192.168.1.103) への ICMP チェックになっています これを信頼性向上のため各ポートのヘルスチェックにするには GUI の Monitor の Basic Association の所で設定を行います ( 図 7) デフォルトの Node Address への ICMP チェックを削除 (Del をチェック ) して 各 Port への TCP チェックを追加 (Add をチェック ) し Apply ボタンを押します なお デフォルトでは 5 秒毎にヘルスチェックを行い 16 秒間応答がなければ DOWN とみなします この頻度やタイムアウト値は GUI から設定変更可能です F5 Networks Japan K.K. 8
図 7 ヘルスチェックの設定 6.Reliable UDP ACK Packet Reliable UDP ACK Packet を正しく通過させるために以下の 3 つの設定を行います A. ポート 0( 全てのポートを意味する ) で pool 及び Virtual Server を作成する ( 図 8 図 9) B. UDP トラフィックを許可するために図 5-1 で示した方法で ポート 0 に対して UDP パケットを通過させるようセットします C. "Allow Persistence Across All Ports For Each Virtual Address" をチェックする ( 図 10) これによりポートをまたいだパーシステンスが設定され RTSP などで接続していたサーバと同一サーバに Reliable UDP ACK Packet が送信されることになります なお A 及び B を設定することにより全ての TCP/UDP トラフィックがサーバに送られることになりますので サーバの セキュリティ確保のため BIG-IP の前に Firewall を設置することを推奨いたします Firewall の設定については #1 の ドキュメントをご参照ください F5 Networks Japan K.K. 9
図 8 Reliable UDP ACK Packet の設定 (1) F5 Networks Japan K.K. 10
図 9 Reliable UDP ACK Packet の設定 (2) F5 Networks Japan K.K. 11
図 10 Reliable UDP ACK Packet の設定 (3) 7.treaper の値を調整する BIG-IP には Virtual Server 上のアイドルコネクションを一定時間後に close する機能があります RTSP では動画再生中パケットが流れないので アイドルコネクションとみなされてしまう可能性があります この treaper の値はデフォルトで 1005 秒 (16 分 45 秒 ) ですが 送出する動画ファイルがこれよりも長い時間の再生時間を持つ場合は再生時間より多めの値に設定することを推奨します 図 11は treaper の値を 1800 とした例です F5 Networks Japan K.K. 12
図 11 Reliable UDP ACK Packet の設定 (3) 以上 1~7 の全ての設定を行った設定ファイル (/config/bigip.conf) が Appendix A. になります #1 - http://service.real.com/help/library/guides/proxy2/htmfiles/firewall.htm Appendix A. サンプル設定ファイル (/config/bigip.conf の抜粋 ) # services service 554 timeout tcp 1800 service 7070 timeout tcp 1800 service 80 timeout tcp 1800 service 3030 timeout tcp 1800 service 7802 timeout tcp 1800 service 7878 timeout tcp 1800 service * timeout udp 600 service 554 7070 80 3030 7802 7878 * tcp enable service 554 * udp enable # server pools pool real_554 { lb_method least_conn_member member 192.168.1.102:554 member 192.168.1.101:554 member 192.168.1.103:554 F5 Networks Japan K.K. 13
pool real_7070 { lb_method least_conn_member member 192.168.1.102:7070 member 192.168.1.101:7070 member 192.168.1.103:7070 pool real_80 { lb_method least_conn_member persist_mode none simple_timeout 120 simple_mask 255.255.128.0 member 192.168.1.101:http member 192.168.1.102:http member 192.168.1.103:http pool real_3030 { lb_method least_conn_member member 192.168.1.101:3030 member 192.168.1.102:3030 member 192.168.1.103:3030 pool real_7802 { lb_method least_conn_member member 192.168.1.102:7802 member 192.168.1.101:7802 member 192.168.1.103:7802 pool real_7878 { lb_method least_conn_member member 192.168.1.102:7878 member 192.168.1.101:7878 member 192.168.1.103:7878 pool real_ack { lb_method least_conn_member F5 Networks Japan K.K. 14
member 192.168.1.102:* member 192.168.1.101:* member 192.168.1.103:* # virtual servers virtual 192.168.2.100:554 unit 1 { use pool real_554 vlans internal disable virtual 192.168.2.100:7070 unit 1 { use pool real_7070 vlans internal disable virtual 192.168.2.100:http unit 1 { use pool real_80 vlans internal disable virtual 192.168.2.100:3030 unit 1 { use pool real_3030 vlans internal disable virtual 192.168.2.100:7802 unit 1 { use pool real_7802 vlans internal disable virtual 192.168.2.100:7878 unit 1 { use pool real_7878 vlans internal disable virtual 192.168.2.100:* unit 1 { use pool real_ack translate port disable vlans internal disable F5 Networks Japan K.K. 15
# snats snat map { default to 192.168.2.100 unit 1 vlans internal disable # monitors node * monitor use icmp node *:554 monitor use tcp node *:3030 monitor use tcp node *:7070 monitor use tcp node *:http monitor use tcp node *:7802 monitor use tcp node *:7878 monitor use tcp F5 Networks Japan K.K. 16