如何使用ZAPI v4创建和配置L1xNAT服务器场

发布者 Zevenet | 16十月,2015 | 技术

嗨Zen Masters,本文介绍如何通过我们的Zen Load Balancer API(ZAPI)创建和配置L4(图层4)服务器场,几个后端(Web服务器)和服务器场监护人。

L4xNAT个人资料
L4xNAT场配置文件允许您创建L4场,其具有非常高的性能和比7层中的负载平衡器核心(如TCP,UDP或HTTP场配置文件)更多的并发连接。 该层4性能改进抵消了7层配置文件可以管理的高级内容处理。

此外,L4xNAT服务器场可以绑定一系列端口,不仅绑定一个虚拟端口,还与其他第7层配置文件一起使用。 为了能够在L4xNAT服务器场中选择一系列虚拟端口或特定虚拟端口,必须选择协议类型。 在其他情况下,服务器场将监听虚拟IP的所有端口。

初始化ZAPI
正如我们在上一篇文章中讨论的那样,您必须启用zapi用户并设置密钥和密码才能开始使用我们的ZAPI。
对于以下示例,将使用以下参数:

Key: CiEuYlS4GtfSq3yrknv0YMnA7j5fhm4piVZh49yt5JcjQ0aDyxImz2Y7DAUhstce5
Password: admin
Zen Load Balancer IP: 192.168.101.25
Zen Web Port: 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" : "New farm L4FARM",
    "params" : [
        {
            "interface" : "eth0",
            "name" : "L4FARM",
            "profile" : "L4xNAT",
            "vip" : "192.168.101.25",
            "vport" : 0
        }
    ]
}

此响应显示主要场参数。 什么是vport:0是什么意思? 创建L4xNAT服务器场时,它默认侦听来自虚拟IP的所有端口,这将显示为0或*。

如何使用ZAPI配置L4xNAT服务器场

创建L4xNAT服务器场后,您将能够修改服务器场参数。 可以更改所有参数,几个或仅更改一个。
首先,让我们使用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" : "Modify farm 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" : "New backend 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。 端口,优先级和重量。
URI参数:
农场名称-> L4FARM。
后端ID-> 0。

启动此命令后,将显示以下响应:

{
    "description" : "Modify backend 0 in farm L4FARM",
    "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
        }
    ]
}

重量,优先级和端口参数已成功更改!

如何配置Farm Guardian
要关闭,请配置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" : "Modify farm L4FARM",
    "params" : [
        {
            "fglog" : "false"
        },
        {
            "fgenabled" : "true"
        },
        {
            "fgscript" : "check_tcp -w 10 -c 10 -H HOST -p PORT"
        },
        {
            "fgtimecheck" : "15"
        }
    ]
}

这些参数做什么? “ fgenabled”参数启用服务器场守护程序,“ fgtimecheck”参数是两次检查之间的时间(以秒为单位),“ fglog”启用服务器场守护程序日志,“ fgscript”是要检查的命令。

我们代表Zen团队真诚地希望您喜欢这篇文章。 在下一个见!

分享到:

相关博客

由 zenweb 发布 | 20 年 2022 月 XNUMX 日
网络运营中心 (NOC) 是组织中的 IT 团队监控网络性能的中心位置。 NOC 提供服务器、数据库、硬盘空间和……
12喜欢评论关闭 关于网络运营中心、定义和 4 大最佳实践
由 zenweb 发布 | 11 年 2022 月 XNUMX 日
简介 对于任何组织而言,实现和维护 PCI DSS 合规性的过程都不是一件容易的事。 无论是大型组织、中型公司还是小型公司,PCI DSS 都可以……
13喜欢评论关闭 关于 PCI DSS 合规需要哪些准备工作?
由 zenweb 发布 | 04 年 2022 月 XNUMX 日
多年来,网络安全的发展非常迅速,从 IT 问题发展为在企业中使用的问题。 已经证明,网络攻击可以...
10喜欢评论关闭 关于 5 年投资网络安全和 IT 解决方案的 2022 大好处