
Zen マスターの皆さん、こんにちは。この記事では、Zen Load Balancer API (ZAPI) を使用して、L4 (レイヤー 4) ファーム、いくつかのバックエンド (Web サーバー)、およびファーム ガーディアンを作成し、構成する方法を説明します。
L4xNATプロファイル
L4xNATファームプロファイルを使用すると、TCP、UDP、HTTPファームプロファイルなどのレイヤー4のロードバランサコアよりもはるかに高いパフォーマンスと同時接続数を備えたレイヤー7ファームを構築できます。このレイヤー4のパフォーマンス向上は、レイヤー7プロファイルが実現可能な高度なコンテンツ処理能力を相殺します。
さらに、L4xNATファームは、他のレイヤー7プロファイルで使用される4つの仮想ポートだけでなく、ポート範囲をバインドできます。LXNUMXxNATファームで仮想ポート範囲または特定の仮想ポートを選択できるようにするには、プロトコルタイプを選択する必要があります。プロトコルタイプを選択しない場合、ファームは仮想IPからのすべてのポートをリッスンすることになります。
ZAPIを初期化する
前回の記事で説明したように、ZAPI の使用を開始するには、zapi ユーザーを有効にし、キーとパスワードを設定する必要があります。
次の例では、次のパラメータが使用されます。
キー: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5 パスワード: admin Zen ロードバランサー IP: 192.168.101.25 Zen Web ポート: 444
ZAPI が設定されたら、始めましょう!
ZAPI を使って L4xNAT ファームを作成する方法
まず、対応するコマンドを使用して L4xNAT プロファイル ファームを作成する必要があります。
curl --tlsv1 -k -X POST -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"interface":"eth0","vip":"192.168.101.25","profile":"L4xNAT"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP 動詞: POST。ファーム、バックエンド、サービスなどの作成に使用されます。
JSON パラメータ: interface、vip、profile (L4xNAT プロファイルでは vport は必要ありません)。
URI パラメータ: farmname -> L4FARM、これはファームに選択された名前です。
このコマンドを起動すると、次の応答が表示されます。
{ "description" : "新しいファーム L4FARM", "params" : [ { "interface" : "eth0", "name" : "L4FARM", "profile" : "L4xNAT", "vip" : "192.168.101.25", "vport" : 0 } ] }
この応答は、ファームの主なパラメータを示しています。vport: 0 はどういう意味ですか?L4xNATファームが作成されると、デフォルトで仮想IPからのすべてのポートをリッスンするため、0または*が表示されます。
ZAPI で L4xNAT ファームを構成する方法
L4xNATファームを作成すると、ファームのパラメータを変更できるようになります。すべてのパラメータ、一部のパラメータ、またはXNUMXつのパラメータのみを変更することも可能です。
まず、GET リクエストでファームのパラメータを取得しましょう。
curl --tlsv1 -k -X GET -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP 動詞: GET、ファーム、バックエンド、サービスのパラメータを取得するために使用されます。
JSON パラメーター: なし。
URI パラメータ: ファーム名 -> L4FARM。
このコマンドを起動すると、次の応答が表示されます。
{ "backends" : [], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "dnat", "persistence" : "none", "protocol" : "all", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 0 } ] }
このレスポンスは、ファームの高度なパラメータを示しています。これらのパラメータはZAPIを使用して変更できます。いくつかのパラメータを変更してみましょう。
curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"protocol":"tcp","nattype":"nat","port":"80"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM
HTTP 動詞: PUT。ファーム、バックエンド、サービスのパラメータを変更するために使用されます。
JSON パラメータ: プロトコル、nattype、ポート。
URI パラメータ: ファーム名 -> L4FARM。
このコマンドを起動すると、次の応答が表示されます。
{ "description" : "ファーム L4FARM を変更する", "params" : [ { "protocol" : "tcp" }, { "port" : "80" }, { "nattype" : "nat" } ] }
別の GET リクエストを実行すると、応答には新しい変更が加えられたすべてのパラメータが表示されます。
{ "backends" : [], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "none", "protocol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }
nattype、ポート、プロトコルパラメータが正常に変更されました。
バックエンドの作成と変更方法
ZAPI 経由で L4xNAT ファームのバックエンドを作成および設定するにはどうすればよいでしょうか? curl コマンドをいくつか使用して、上記と同じ手順を実行するだけです。
curl --tlsv1 -k -X POST -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.34.160","port":"80","priority":"1","weight":"1"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends
HTTP 動詞: POST。ファーム、バックエンド、サービスなどの作成に使用されます。
JSON パラメータ: ip、port、priority、weight (すべてのパラメータが必須)。
URI パラメータ: farmname -> L4FARM、これはファームに選択された名前です。
このコマンドを起動すると、次の応答が表示されます。
{ "description" : "新しいバックエンド 0", "params" : [ { "id" : 0, "ip" : "46.120.34.160", "port" : 80, "priority" : 1, "weight" : 1 } ] }
この応答には、バックエンド パラメータとその ID が表示されます。
L4xNATファームのバックエンドをどのように変更すればよいでしょうか?curlでPUT HTTP動詞を使用します。
curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"ip":"46.120.101.65","port":"25","priority":"2","weight":"3"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/backends/0
HTTP 動詞: PUT。ファーム、バックエンド、サービスのパラメータを変更するために使用されます。
JSON パラメータ: ip、port、priority、weight。
URI パラメータ:
ファーム名 -> L4FARM。
バックエンドID -> 0。
このコマンドを起動すると、次の応答が表示されます。
{ "description" : "ファーム L0FARM のバックエンド 4 を変更する", "params" : [ { "ip" : "46.120.101.65" }, { "weight" : "3" }, { "priority" : "2" }, { "port" : "25" } ] }
別の GET リクエストを発行すると、応答には新しい変更が加えられたすべてのパラメータが表示されます。
{ "backends" : [ { "id" : 0, "ip" : "46.120.101.65", "port" : 25, "priority" : 2, "weight" : 3 } ], "description" : "List farm L4FARM", "params" : [ { "algorithm" : "weight", "fgenabled" : null, "fglog" : null, "fgscript" : null, "fgtimecheck" : 0, "nattype" : "nat", "persistence" : "none", "protocol" : "tcp", "ttl" : 120, "vip" : "192.168.101.25", "vport" : 80 } ] }
重み、優先度、ポートパラメータが正常に変更されました。
ファームガーディアンの設定方法
最後に、L4xNATファームのファームガーディアンを設定しましょう。curlコマンドで以下のリクエストを発行します。
curl --tlsv1 -k -X PUT -H 'Content-Type: text/json' -H "ZAPI_KEY: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5" -u zapi:admin -d '{"fgenabled":"true","fgscript":"check_tcp -w 10 -c 10 -H HOST -p PORT","fgtimecheck":"15","fglog":"false"}' https://192.168.101.25:444/zapi/v1/zapi.cgi/farms/L4FARM/fg
HTTP 動詞: PUT。ファーム、バックエンド、サービスのパラメータを変更するために使用されます。
JSON パラメーター: fgenabled、fgscript、fgtimecheck、fglog。
URI パラメータ: ファーム名 -> L4FARM。
このコマンドを起動すると、次の応答が表示されます。
{ "description" : "ファーム L4FARM を変更する", "params" : [ { "fglog" : "false" }, { "fgenabled" : "true" }, { "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT" }, { "fgtimecheck" : "15" } ] }
これらのパラメータは何をしますか? 'fgenabled' パラメータはファーム ガーディアンを有効にします。'fgtimecheck' パラメータはチェック間隔 (秒単位) です。'fglog' はファーム ガーディアン ログを有効にします。'fgscript' はチェックするコマンドです。
Zenチームを代表して、この記事を楽しんでいただけたなら幸いです。次回もお楽しみに!


