云服务器绑定虚拟IP
使用工具
Postman或者JMeter。
涉及接口
涉及4个API接口的调用,具体如下:
序号 |
方法 |
URI |
说明 |
---|---|---|---|
1 |
POST |
/v3/auth/tokens |
获取Token |
2 |
POST |
/v2.0/ports |
创建VIP Port |
3 |
PUT |
/v2.0/ports/{port_id} |
将云服务器与虚拟IP绑定 |
4 |
GET |
/v2/{project_id}/servers/{server_id}/os-interface |
配置绑定了虚拟IP的云服务器网卡的allowed-address-pairs, |
操作步骤
- 获取token。
方法
POST
url
iam地址:端口/v3/auth/tokens
body体(样例)
{
"auth":{
"identity":{
"methods": ["password"],
"password":{
"user":{
"name": "user_name",
"domain":{
"name":"domain_name"
},
"password":"user_password"
}
}
},
"scope":{
"project":{
"name":"project_name"
}
}
}
}
- 在云服务器所在的VPC子网内,创建VIP Port。
要求VIP Port与云服务器同子网,并指定“device_owner”参数为“neutron:VIP_PORT”。
方法
POST
url
vpc地址:端口/v2.0/ports
body体(样例)
{
"port": {
"network_id": "a54e1b19-ce78-4b7e-b28b-d2d716cdc161",
"device_owner": "neutron:VIP_PORT",
"name": "vip_port_test"
}
}
说明
body体中的network_id为云服务器所在的网络ID
- 将云服务器与虚拟IP绑定。
更新vip port的allowed-address-pairs,指定ip_address为需要绑定的云服务器的网卡的IP地址。
方法
PUT
url
vpc地址:端口/v2.0/ports/{port_id}
body体(样例)
{
"port": {
"allowed_address_pairs": [
{"ip_address":"192.168.22.221"},
{"ip_address":"192.168.22.203"}
]
}
}
说明
- url中{port_id}是上一步中创建的vip port的ID
- body体中ip_address就是需要绑定的云服务器网卡的IP地址
- 配置绑定了虚拟IP的云服务器网卡的allowed-address-pairs。
- 获取绑定了虚拟IP的云服务器网卡信息port_id。
方法
GET
url
ecs地址:端口/v2/{tenant_id}/servers/{server_id}/os-interface
body体
不涉及
说明
url中{tenant_id}是项目ID,{server_id}是云服务器的ID
- 更新云服务器网卡的allowed-address-pairs为1.1.1.1/0,关闭源/目的检查。
方法
PUT
url
vpc地址:端口/v2.0/ports/{port_id}
body体
{
"port": {
"allowed_address_pairs": [
{"ip_address":"1.1.1.1/0"}
]
}
}
说明
url中{port_id}是绑定了虚拟IP的云服务器网卡的ID,可由a中获取。
- 获取绑定了虚拟IP的云服务器网卡信息port_id。