如何创建扁平网络并加载网络服务
ZStack Cloud支持通过系统登录或第三方API工具(例如Postman)使用HTTP方式调用API,创建扁平网络并加载网络服务。本文主要以管理员身份(admin)登录管理节点系统,创建扁平网络并加载相应的网络服务。您也可以使用云平台其他已授权账户/用户身份登录系统创建。
调用API查看云主机内部监控数据前,需确保:
- 云平台已创建二层网络,若未创建二层网络,可参考二层网络资源相关接口进行创建。Note: 推荐二层网络和三层网络为一一对应的关系,即一个二层网络仅用于创建一个三层网络。
- 请提前规划好网络地址段,同一个扁平网络下的地址段不能重叠。
- 登录云平台管理节点,获取云平台NetworkSeriviceProvider
UUID:
zstack-cli admin >>>QueryNetworkServiceProvider { "inventories": [ { "attachedL2NetworkUuids": [ "3f50451988a1485bb47d6830abd6c17e" ], "createDate": "Jul 21, 2022 1:39:20 PM", "description": "zstack security group network service provider", "lastOpDate": "Jul 21, 2022 1:39:20 PM", "name": "SecurityGroup", "networkServiceTypes": [ "SecurityGroup" ], "type": "SecurityGroup", "uuid": "3cda74aba607461680e476892928981a" }, { "attachedL2NetworkUuids": [ "3f50451988a1485bb47d6830abd6c17e" ], "createDate": "Jul 21, 2022 1:39:20 PM", "description": "zstack vrouter network service provider", "lastOpDate": "Jul 21, 2022 1:39:20 PM", "name": "vrouter", "networkServiceTypes": [ "IPsec", "VRouterRoute", "CentralizedDNS", "VipQos", "DNS", "SNAT", "LoadBalancer", "PortForwarding", "Eip", "DHCP" ], "type": "vrouter", "uuid": "3d7f1619e20249809e65e6223b77907e" }, { "attachedL2NetworkUuids": [ "3f50451988a1485bb47d6830abd6c17e" ], "createDate": "Jul 21, 2022 1:39:19 PM", "description": "zstack virtual router network service provider", "lastOpDate": "Jul 21, 2022 1:39:19 PM", "name": "VirtualRouter", "networkServiceTypes": [ "DNS", "SNAT", "LoadBalancer", "PortForwarding", "Eip", "DHCP" ], "type": "VirtualRouter", "uuid": "7631a619b5254f6b83cb22b0c9fcdbc0" }, { "attachedL2NetworkUuids": [ "3f50451988a1485bb47d6830abd6c17e" ], "createDate": "Jul 21, 2022 1:39:19 PM", "description": "Flat Network Service Provider", "lastOpDate": "Jul 21, 2022 1:39:19 PM", "name": "Flat Network Service Provider", "networkServiceTypes": [ "VipQos", "DNS", "HostRoute", "Userdata", "Eip", "DHCP" ], "type": "Flat", "uuid": "c6953edcffdd4481aaac5f4966f6ea92" } ], "success": true }- NetworkSeriviceProvider为网络服务实现方式,ZStack Cloud提供以下四种网络服务实现方式,用户需基于创建的网络类型选择合适的实现方式:
网络服务实现方式 描述 支持的网络类型 支持的网络服务 vrouter 使用VPC路由器实现网络服务 VPC网络 - IPsec
- VRouterRoute
- CentralizedDNS
- VipQos
- DNS
- SNAT
- LoadBalancer
- PortForwarding
- Eip
- DHCP
Flat 在物理机上使用namespace实现网络服务 VPC网络、扁平网络、公有网络 - VipQos
- DNS
- HostRoute
- Userdata
- Eip
- DHCP
SecurityGroup 在物理机上使用iptables实现网络服务 VPC网络、扁平网络、公有网络 - SecurityGroup
VirtualRouter 不建议使用 不建议使用 不建议使用
- NetworkSeriviceProvider为网络服务实现方式,ZStack Cloud提供以下四种网络服务实现方式,用户需基于创建的网络类型选择合适的实现方式:
API调用流程概览:
- 登录云平台
- 创建扁平网络
- 添加IP地址段
- 加载网络服务到网络服务
- 向扁平网络添加DNS
API调用流程
API详细调用流程如下:
- 进入管理节点系统,发送以下Curl请求登录云平台以获取Session
ID:
其中:curl -H "Content-Type: application/json;charset=UTF-8" \ -X PUT -d '{"logInByAccount":{"accountName":"admin","password":"b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86" }}' \ http://localhost:8080/zstack/v1/accounts/login- password字段需填入经过SHA-512算法加密的密码
返回结果为:
其中:{"inventory":{"uuid":"155dbbe8193344a5913c412f2732c0d7","accountUuid":"36c27e8ff05c4780bf6d2fa65700f22e","userUuid":"36c27e8ff05c4780bf6d2fa65700f22e","expiredDate":"Apr 19, 2022 8:06:42 PM","createDate":"Apr 19, 2022 6:06:42 PM","noSessionEvaluation":false}}- uuid字段即为获取的本次Session的ID
- 创建扁平网络:
其中:curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d'{"params":{"name":"L3Network1","type":"L3BasicNetwork","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","category":"Private","system":false}}' \ http://localhost:8080/zstack/v1/l3-networks- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks
- name:必填项,设置三层网络名称
- type:必填项,指定三层网络类型,支持指定L3BasicNetwork和L3VpcNetwork,本场景创建扁平网络,需设置为L3BasicNetwork
- l2NetworkUuid:必填项,指定用于创建三层网络的二层网络UUID
- category:必填项,指定三层网络类别,支持指定Public、Private、和System,本场景创建扁平网络,需设置为Private
- system:创建扁平网络时为必填项,可选值为false
返回结果:
其中:{"inventory":{"uuid":"1abe265517d54df3b237c9bbb3023d3a","name":"L3Network1","type":"L3BasicNetwork","zoneUuid":"7e63ce956d5b41598a53cf79b59ce967","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","state":"Enabled","system":false,"category":"Private","ipVersion":4,"createDate":"Jul 22, 2022 12:06:51 PM","lastOpDate":"Jul 22, 2022 12:06:51 PM","ipRanges":[],"networkServices":[],"hostRoute":[]},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"44cb6abe04d14f74be7747ce6b9fb654","success":true,"id":"93a71b9c6f904fd18e2bd5514338755e","createdTime":1658462811774}- uuid字段即为所创建成功的扁平网络的UUID
- 添加IP地址段:云平台支持通过添加IP地址段或CIDR的方式为三层网络添加IP范围。本次选择通过IP地址段进行添加。
其中:curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d'{"params":{"name":"Test-IP-Range","startIp":"192.168.101.10","endIp":"192.168.101.250","netmask":"255.255.255.0","gateway":"192.168.101.1","ipRangeType":"Normal"}}' \ http://localhost:8080/zstack/v1/l3-networks/1abe265517d54df3b237c9bbb3023d3a/ip-ranges- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks/l3NetworkUuid/ip-ranges
- name:必填项,指定三层网络IP地址段名称
- startIp:必填项,指定IP地址段的起始地址
- endIp:必填项,指定IP地址段的结束地址
- netmask:必填项,指定IP地址段的网络掩码
- gateway:必填项,指定IP地址段的网关
- ipRangeType :选填项,指定IP地址段类型,包括普通地址段(Normal)和地址池(AddressPool)
返回结果:{"inventory":{"uuid":"3e387e4419914167b1e70b774785f632","l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","name":"Test-IP-Range","startIp":"192.168.101.10","endIp":"192.168.101.250","netmask":"255.255.255.0","gateway":"192.168.101.1","networkCidr":"192.168.101.0/24","ipVersion":4,"prefixLen":24,"ipRangeType":"Normal","createDate":"Jul 22, 2022 12:11:54 PM","lastOpDate":"Jul 22, 2022 12:11:54 PM"},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"745c8be45f824a7eb8f88ad8e339edf2","success":true,"id":"f0af35339c0443b8b5f916fb63b34a46","createdTime":1658463115088} - 加载网络服务到扁平网络:
其中:curl -H "Content-Type: application/json" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d'{"params":{"networkServices":{"c6953edcffdd4481aaac5f4966f6ea92":["VipQos","DNS","HostRoute","Userdata","Eip","DHCP"],"3d7f1619e20249809e65e6223b77907e":["LoadBalancer"],"3cda74aba607461680e476892928981a":["SecurityGroup"]}}}' \ http://localhost:8080/zstack/v1/l3-networks/1abe265517d54df3b237c9bbb3023d3a/network-services- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks/l3NetworkUuid/network-services
- networkServices:必填项,设置要加载的网络服务
- l3NetworkUuid:必填项,指定扁平网络UUID
返回结果:{"inventory":{"uuid":"1abe265517d54df3b237c9bbb3023d3a","name":"L3Network1","type":"L3BasicNetwork","zoneUuid":"7e63ce956d5b41598a53cf79b59ce967","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","state":"Enabled","system":false,"category":"Private","ipVersion":4,"createDate":"Jul 22, 2022 12:06:51 PM","lastOpDate":"Jul 22, 2022 12:06:51 PM","ipRanges":[{"uuid":"3e387e4419914167b1e70b774785f632","l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","name":"Test-IP-Range","startIp":"192.168.101.10","endIp":"192.168.101.250","netmask":"255.255.255.0","gateway":"192.168.101.1","networkCidr":"192.168.101.0/24","ipVersion":4,"prefixLen":24,"createDate":"Jul 22, 2022 12:11:54 PM","lastOpDate":"Jul 22, 2022 12:11:54 PM"}],"networkServices":[{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"VipQos"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"DNS"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"3cda74aba607461680e476892928981a","networkServiceType":"SecurityGroup"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"3d7f1619e20249809e65e6223b77907e","networkServiceType":"LoadBalancer"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"HostRoute"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"Eip"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"DHCP"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"Userdata"}],"hostRoute":[]},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"3cb72144a0494288ac17d0976cc1276e","success":true,"id":"40bf50edd78145baa3c9e5e75cc96e4e","createdTime":1658468176328} - 向扁平网络添加DNS:
其中:curl -H "Content-Type: application/json" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d '{"params":{"dns":"223.5.5.5"}}' http://localhost:8080/zstack/v1/l3-networks/1abe265517d54df3b237c9bbb3023d3a/dns- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks/l3NetworkUuid/dns
- l3NetworkUuid:必填项,指定扁平网络UUID
- dns:必填项,指定DNS地址
返回结果:{"inventory":{"uuid":"1abe265517d54df3b237c9bbb3023d3a","name":"L3Network1","type":"L3BasicNetwork","zoneUuid":"7e63ce956d5b41598a53cf79b59ce967","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","state":"Enabled","system":false,"category":"Private","ipVersion":4,"createDate":"Jul 22, 2022 12:06:51 PM","lastOpDate":"Jul 22, 2022 12:06:51 PM","dns":["223.5.5.5"],"ipRanges":[{"uuid":"3e387e4419914167b1e70b774785f632","l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","name":"Test-IP-Range","startIp":"192.168.101.10","endIp":"192.168.101.250","netmask":"255.255.255.0","gateway":"192.168.101.1","networkCidr":"192.168.101.0/24","ipVersion":4,"prefixLen":24,"createDate":"Jul 22, 2022 12:11:54 PM","lastOpDate":"Jul 22, 2022 12:11:54 PM"}],"networkServices":[{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"VipQos"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"3d7f1619e20249809e65e6223b77907e","networkServiceType":"LoadBalancer"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"DHCP"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"Eip"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"HostRoute"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"DNS"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"Userdata"},{"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","networkServiceProviderUuid":"3cda74aba607461680e476892928981a","networkServiceType":"SecurityGroup"}],"hostRoute":[{"id":1,"l3NetworkUuid":"1abe265517d54df3b237c9bbb3023d3a","prefix":"169.254.169.254/32","nexthop":"192.168.101.98","createDate":"Jul 22, 2022 1:51:45 PM","lastOpDate":"Jul 22, 2022 1:51:45 PM"}]},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"cb620a112fbd4485b8786c60c318b69f","success":true,"id":"a1d09587a36e4b4bbd070457d1131898","createdTime":1658469105684}
