功能介绍
更新端口。比如,更新端口所属云服务资源的安全组,以及实现云服务器和虚拟IP的绑定等功能。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项 | 访问级别 | 资源类型(*为必须) | 条件键 | 别名 | 依赖的授权项 |
|---|
vpc:ports:update | Write | port * | | - vpc:vips:update
- vpc:vips:delete
| - |
URI
PUT /v1/{project_id}/ports/{port_id}
参数说明请参见
表1。
表1 参数说明 名称 | 是否必选 | 说明 |
|---|
port_id | 是 | 端口的唯一标识。 比如,此接口用于更改ECS的安全组时,port_id是ECS的网卡ID。 |
project_id | 是 | 项目ID,请参见获取项目ID。 |
请求参数
名称 | 是否必选 | 参数类型 | 说明 |
|---|
port | 是 | port object | 端口对象,请参见表2。 更新操作时至少指定一项属性。 |
表2 port字段说明 名称 | 是否必选 | 参数类型 | 说明 |
|---|
name | 否 | String | - 功能说明:端口名称。
- 取值范围:默认为空,最大长度不超过255。
|
security_groups | 否 | Array of strings | - 扩展属性:安全组的UUID。
- 约束:不支持更新为空,一个端口默认最多支持100个安全组。
|
allowed_address_pairs | 否 | Array of allowed_address_pairs objects | - 功能说明:IP/Mac对列表,allow_address_pair参见表3。
- 约束:IP地址不允许为 “0.0.0.0/0”,一个端口默认最多支持10个allowed_address_pairs。
- 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。
- 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关。
- 为虚拟IP配置后端ECS场景,allowed_address_pairs中配置的IP地址,必须为ECS网卡已有的IP地址,否则可能会导致虚拟IP通信异常。
- 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。
|
extra_dhcp_opts | 否 | Array of extra_dhcp_opt objects | DHCP的扩展Option(扩展属性),请参见表4。 |
表3 allowed_address_pairs对象 名称 | 是否必选 | 参数类型 | 说明 |
|---|
ip_address | 是 | String | - 功能说明:IP地址。
- 约束:不支持0.0.0.0/0。
- 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。
- 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关。
- 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。
- 如果填写allowed_address_pairs参数,则ip_address是必选参数。
|
mac_address | 否 | String | MAC地址。默认使用当前端口的MAC地址。 |
表4 extra_dhcp_opt对象 名称 | 是否必选 | 参数类型 | 说明 |
|---|
opt_name | 否 | String | DHCP选项名称,目前仅支持填写“51”,表示IPv4网卡DHCP租约时间;填写“651”,表示IPv6网卡DHCP租约时间。 |
opt_value | 否 | String | - 功能说明:DHCP选项的值。
- 当“opt_name”为“51”或“651”时,参数格式为“Xh”,表示DHCP租约时间为X小时。
- “X”的取值范围为1~175200或“-1”,“-1”表示DHCP租约时间无限长。
|
响应参数
表5 响应参数 名称 | 参数类型 | 说明 |
|---|
port | port object | 端口对象,请参见表6。 |
表6 port字段说明 名称 | 参数类型 | 说明 |
|---|
id | String | 端口唯一标识。 |
name | String | - 功能说明:端口名称。
- 取值:默认为空,最大长度不超过255。
|
network_id | String | - 功能说明:端口所属网络的ID。
- 约束:必须是存在的网络ID。
说明: 网络ID的获取方式: - 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。
- 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表
|
admin_state_up | Boolean | |
mac_address | String | - 功能说明:端口MAC地址。
- 约束:由系统分配,不支持指定。
|
fixed_ips | Array of fixed_ip objects | - 功能说明:端口IP,请参见表7。例如:"fixed_ips": [{"subnet_id": "4dc70db6-cb7f-4200-9790-a6a910776bba", "ip_address": "192.169.25.79"}]。
- 约束:ipv4场景下,一个端口只支持一个fixed_ip,且不支持更新。ipv6场景下,一个端口最多可以支持两个fixed_ip,且不支持更新。
|
device_id | String | - 功能说明:端口所属设备ID,表示使用子网内私有IP地址的云服务资源ID,比如云服务器的ID、ELB的ID。
|
device_owner | String | - 功能说明:端口所属的设备,表示使用子网内私有IP地址的云服务资源。
- 取值范围:
- network:dhcp表示DHCP服务
- network:router_interface_distributed表示子网网关地址
- compute:xxx表示云服务器网卡私有IP地址,其中XXX对应具体的可用区名称,例如compute:aa-bb-cc表示私有IP地址被可用区aa-bb-cc内的云服务器使用
- neutron:VIP_PORT表示虚拟IP地址
- neutron:LOADBALANCERV2表示共享型ELB
- neutron:LOADBALANCERV3表示独享型ELB
- network:endpoint_interface表示VPC终端节点
- network:nat_gateway表示NAT网关
- network:ucmp表示UCMP端口,为企业路由器服务所用
|
tenant_id | String | 项目ID。 |
status | String | - 功能说明:端口状态,Hana硬直通虚拟机端口状态总为DOWN。
- 取值范围:
- ACTIVE:端口处于活动状态,可以正常进行网络通信。
- BUILD:端口正在创建或配置中。
- DOWN:端口处于非活动状态,不能进行网络通信。Hana 硬直通虚拟机端口状态总为DOWN。
|
security_groups | Array of strings | 安全组的UUID(扩展属性)。 |
allowed_address_pairs | Array of allowed_address_pairs objects | - 功能说明:IP/Mac对列表,请参见表8。
- 约束:IP地址不允许为 “0.0.0.0/0”。
- 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。
- 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关。
- 如果allowed_address_pairs回显值为云服务器网卡IP地址,表示虚拟IP的端口处于绑定状态。
- 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。
|
extra_dhcp_opts | Array of extra_dhcp_opt objects | DHCP的扩展Option(扩展属性),请参见表9。 |
binding:vif_details | binding:vif_details object | vif的详细信息,参见表10。 |
binding:profile | Object | 扩展属性:提供用户设置自定义信息。 【使用说明】 |
binding:vnic_type | String | - 功能说明:绑定的vNIC类型。
- 取值范围:normal,软交换;direct,SRIOV硬直通(不支持)。
|
dns_assignment | Array of dns_assignment objects | - 功能说明:主网卡默认内网域名信息。
- 约束:不支持设置和更新,由系统自动维护。
|
dns_name | String | - 功能说明:主网卡默认内网DNS名称。
- 约束:不支持设置和更新,由系统自动维护。
|
instance_id | String | - 功能说明:端口所属实例ID,例如RDS实例ID。
- 约束:不支持设置和更新,由系统自动维护。
|
instance_type | String | - 功能说明:端口所属实例类型,例如“RDS”。
- 约束:不支持设置和更新,由系统自动维护。
|
port_security_enabled | Boolean | - 功能说明:端口安全使能标记,如果不使能则安全组和dhcp防欺骗不生效。
|
zone_id | String | 端口所属的可用分区。 |
enable_efi | Boolean | - 功能说明:是否使能efi,使能则表示端口支持vRoCE能力,默认为false。
|
ipv6_bandwidth_id | String | - 功能说明:IPv6网卡绑定的共享带宽ID。
- 约束:只有IPv6网卡绑定了共享带宽,才会显示此参数。
|
表7 fixed_ip对象 名称 | 参数类型 | 说明 |
|---|
subnet_id | String | |
ip_address | String | 端口IP地址。 |
表8 allowed_address_pairs对象 名称 | 参数类型 | 说明 |
|---|
ip_address | String | - 功能说明:IP地址。
- 约束:不支持0.0.0.0/0。
- 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组。
- 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关。
- 被绑定的云服务器网卡allowed_address_pairs的IP地址填“1.1.1.1/0”。
|
mac_address | String | MAC地址。默认使用本端口的MAC地址。 |
表9 extra_dhcp_opt对象 名称 | 参数类型 | 说明 |
|---|
opt_name | String | DHCP选项名称,目前仅支持填写“51”,表示IPv4网卡DHCP租约时间;填写“651”,表示IPv6网卡DHCP租约时间。 |
opt_value | String | - 功能说明:DHCP选项的值。
- 当“opt_name”为“51”或“651”时,参数格式为“Xh”,表示DHCP租约时间为X小时。
- “X”的取值范围为1~175200或“-1”,“-1”表示DHCP租约时间无限长。
|
表10 binding:vif_details对象 名称 | 参数类型 | 说明 |
|---|
primary_interface | Boolean | 取值为true,表示是虚拟机的主网卡。 |
port_filter | Boolean | 表示该网络服务提供端口过滤特性,如安全组和反MAC/IP欺骗。 |
ovs_hybrid_plug | Boolean | 用于通知像nova这样的API消费者,应该使用OVS的混合插入策略。 |
表11 dns_assignment对象 名称 | 参数类型 | 说明 |
|---|
hostname | String | 端口hostname。 |
ip_address | String | 端口IP地址。 |
fqdn | String | 端口内网fqdn。 |
响应示例
{
"port": {
"id": "7204e0da-40de-4207-a536-6f59b84f6f0e",
"name": "abc",
"status": "DOWN",
"admin_state_up": "true",
"fixed_ips": [
{
"subnet_id": "689156ca-038f-4478-b265-fd26aa8bbe31",
"ip_address": "192.168.0.9"
}
],
"mac_address": "fa:16:3e:d7:f2:6c",
"network_id": "b4152e98-e3af-4e49-bb7f-7766e2b5ec63",
"tenant_id": "caa6cf4337ea47fb823b15709ebe8591",
"device_id": "",
"device_owner": "",
"security_groups": [
"59b39002-e79b-4bac-8e27-aa884ab1beb6"
],
"extra_dhcp_opts": [],
"allowed_address_pairs": [],
"binding:vnic_type": "normal",
"enable_efi": false
}
}