如何创建公有网络并加载网络服务
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调用流程概览:
- 登录云平台
- 创建公有网络
- 加载网络服务到公有网络
- 向公有网络添加DNS
- 添加IP地址范围
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" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d'{"params":{"name":"PubNetwork1","type":"L3BasicNetwork","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","category":"Public","system":false}}' \ http://localhost:8080/zstack/v1/l3-networks- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks
- name:必填项,设置公有网络名称
- l2NetworkUuid:必填项,指定二层网络UUID
- category:必填项,指定网络类别,支持指定Public、Private、和System,本场景创建公有网络,需设置为Public
- type:创建公有网络时为必填项,指定网络类型,可选值为L3BasicNetwork
- system:创建公有网络时为必填项,可选值为false
返回结果:
其中:{"inventory":{"uuid":"f96c7f7fe73440478ebdb22fe5e0371f","name":"PubNetwork1","type":"L3BasicNetwork","zoneUuid":"7e63ce956d5b41598a53cf79b59ce967","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","state":"Enabled","system":false,"category":"Public","ipVersion":4,"createDate":"Jul 22, 2022 2:05:28 PM","lastOpDate":"Jul 22, 2022 2:05:28 PM","ipRanges":[],"networkServices":[],"hostRoute":[]},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"6af2168245f1457382b6ccd7bbc4074e","success":true,"id":"8b883194d8d44e12a8592d1f9ea0f8dc","createdTime":1658469928805}- uuid字段即为所创建成功的公有网络的UUID
- 挂载网络服务到三层网络:
其中:curl -H "Content-Type: application/json" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d'{"params":{"networkServices":{"c6953edcffdd4481aaac5f4966f6ea92":["Userdata","DHCP","HostRoute"],"3cda74aba607461680e476892928981a":["SecurityGroup"]}}}' \ http://localhost:8080/zstack/v1/l3-networks/f96c7f7fe73440478ebdb22fe5e0371f/network-services- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks/l3NetworkUuid/network-services
- l3NetworkUuid:必填项,指定三层网络UUID
- networkServices:必填项,设置要加载的网络服务
返回结果:{"inventory":{"uuid":"f96c7f7fe73440478ebdb22fe5e0371f","name":"PubNetwork1","type":"L3BasicNetwork","zoneUuid":"7e63ce956d5b41598a53cf79b59ce967","l2NetworkUuid":"3f50451988a1485bb47d6830abd6c17e","state":"Enabled","system":false,"category":"Public","ipVersion":4,"createDate":"Jul 22, 2022 2:05:28 PM","lastOpDate":"Jul 22, 2022 2:05:28 PM","ipRanges":[],"networkServices":[{"l3NetworkUuid":"f96c7f7fe73440478ebdb22fe5e0371f","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"HostRoute"},{"l3NetworkUuid":"f96c7f7fe73440478ebdb22fe5e0371f","networkServiceProviderUuid":"3cda74aba607461680e476892928981a","networkServiceType":"SecurityGroup"},{"l3NetworkUuid":"f96c7f7fe73440478ebdb22fe5e0371f","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"DHCP"},{"l3NetworkUuid":"f96c7f7fe73440478ebdb22fe5e0371f","networkServiceProviderUuid":"c6953edcffdd4481aaac5f4966f6ea92","networkServiceType":"Userdata"}],"hostRoute":[]},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"17b88bb9d0f44ce0a54725aee51785f9","success":true,"id":"61cdd22fa4c34941b366aaa432fbe858","createdTime":1658470345475} - 添加IP地址段:云平台支持通过添加IP地址段或CIDR的方式为三层网络添加IP范围。本次选择通过IP地址段进行添加。
其中:curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth 155dbbe8193344a5913c412f2732c0d7" \ -X POST -d'{"params":{"name":"PubNetIP-Range","startIp":"192.168.72.10","endIp":"192.168.72.250","netmask":"255.255.255.0","gateway":"192.168.72.1","ipRangeType":"Normal"}}' \ http://localhost:8080/zstack/v1/l3-networks/f96c7f7fe73440478ebdb22fe5e0371f/ip-ranges- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks/l3NetworkUuid/ip-ranges
- l3NetworkUuid:必填项,指定公有网络UUID
- name:必填项,指定三层网络IP地址段名称
- startIp:必填项,指定IP地址段的起始地址
- endIp:必填项,指定IP地址段的结束地址
- netmask:必填项,指定IP地址段的网络掩码
- gateway:必填项,指定IP地址段的网关
- ipRangeType :选填项,指定IP地址段类型,包括普通地址段(Normal)和地址池(AddressPool)
返回结果:{"inventory":{"uuid":"ac7dcbc1f57943e2939c9d5c8fe8144d","l3NetworkUuid":"f96c7f7fe73440478ebdb22fe5e0371f","name":"PubNetIP-Range","startIp":"192.168.72.10","endIp":"192.168.72.250","netmask":"255.255.255.0","gateway":"192.168.72.1","networkCidr":"192.168.72.0/24","ipVersion":4,"prefixLen":24,"ipRangeType":"Normal","createDate":"Jul 22, 2022 2:18:28 PM","lastOpDate":"Jul 22, 2022 2:18:28 PM"},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"bb7e99c82a754d5ab3fc81e07b9e8f0a","success":true,"id":"8eeda23fe1ca4d5fb598e6983afc3e81","createdTime":1658470708662} - 向公有网络添加DNS:
其中:curl -H "Content-Type: application/json" -H "Authorization: OAuth 8b0a7837e1fc4549982d739fabf2de9c" \ -X POST -d '{"params":{"dns":"223.5.5.5"}}' http://localhost:8080/zstack/v1/l3-networks/f96c7f7fe73440478ebdb22fe5e0371f/dns- Authorization字段需填入登录云平台时获取的Session ID
- HTTP请求URL为:http://localhost:8080/zstack/v1/l3-networks/l3NetworkUuid/dns
- l3NetworkUuid:必填项,指定公有网络UUID
- dns:必填项,指定DNS地址
返回结果:{"inventory":{"uuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","name":"Test-L3Network","type":"L3VpcNetwork","zoneUuid":"90113f41716c428994c335a359658cd8","l2NetworkUuid":"473fc24161fc4ffa88a8e77efe155584","state":"Enabled","system":false,"category":"Private","ipVersion":4,"createDate":"Apr 19, 2022 12:37:16 AM","lastOpDate":"Apr 19, 2022 12:37:16 AM","dns":["223.5.5.5"],"ipRanges":[{"uuid":"d0a66a72bc834345b40d165c585ca1cb","l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","name":"Test-IP-Range","startIp":"192.168.70.10","endIp":"192.168.70.250","netmask":"255.255.255.0","gateway":"192.168.70.1","networkCidr":"192.168.70.0/24","ipVersion":4,"prefixLen":24,"createDate":"Apr 19, 2022 12:47:26 AM","lastOpDate":"Apr 19, 2022 12:47:26 AM"}],"networkServices":[{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"3996dab6bcd34ab1891b8024742aa963","networkServiceType":"DHCP"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"LoadBalancer"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"3996dab6bcd34ab1891b8024742aa963","networkServiceType":"Userdata"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"PortForwarding"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"IPsec"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"VRouterRoute"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"DNS"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"VipQos"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"SNAT"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"Eip"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"89a9deba669d42af9a3fe1b503480e54","networkServiceType":"CentralizedDNS"},{"l3NetworkUuid":"f4c5dc15ae5c4e2b9eefc1197d406d8d","networkServiceProviderUuid":"e9557354f98645368dd1a6a67b72a828","networkServiceType":"SecurityGroup"}],"hostRoute":[]},"type":{"_name":"key.event.API.API_EVENT"},"apiId":"e9e3a64077604369bfc14f7a4cfd1c57","success":true,"id":"8af4586d144649879173bcc1d144db3b","createdTime":1650300553408}
