更新时间:2024-10-31 GMT+08:00

创建端口

功能介绍

创建端口。

URI

POST /v2.0/ports

请求参数

表1 请求参数

参数名称

类型

必选

说明

port

port object

port对象列表,参见表2

表2 port对象

属性

是否必选

类型

说明

name

String

端口的名称

network_id

String

  • 功能说明:端口所属网络的ID。
  • 约束:必须是存在的网络ID。
说明:

网络ID的获取方式:

  • 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。
  • 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表

admin_state_up

Boolean

管理状态

【使用说明】默认为true

fixed_ips

Array of fixed_ip objects

端口IP,参见表3。例如:"fixed_ips": [{"subnet_id": "4dc70db6-cb7f-4200-9790-a6a910776bba", "ip_address": "192.169.25.79"}],

"fixed_ips": [{"subnet_id": "1fd001aa-6946-4168-86d9-924c7d3ef8fb", "ip_address": "2a07:b980:4030:14::1"}]

security_groups

Array of strings

扩展属性:安全组的UUID,例如:"security_groups": ["a0608cbf-d047-4f54-8b28-cd7b59853fff"]

【使用说明】不支持更新为空。

allowed_address_pairs

Array of allowed_address_pairs objects

扩展属性:IP/Mac对列表,allow_address_pair参见表4

【使用说明】

  • IP地址不允许为 “0.0.0.0”
  • 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组
  • 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关
  • 硬件SDN环境不支持ip_address属性配置为CIDR格式
  • 为虚拟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,参见表5

binding:profile

Object

  • 功能说明:扩展属性,提供用户设置自定义信息。
  • 使用说明:
    • internal_elb字段,布尔类型,普通租户可见。只有在创建内网ELB的虚拟IP的网卡时设置为true。普通租户没有权限更改该字段,由系统维护。【举例】

      {"internal_elb": true}

    • disable_security_groups字段,布尔类型,普通租户可见。默认为false高性能通信场景下,允许指定为true普通租户可见。仅支持创建port和读取时指定。当前仅支持指定为true,不支持指定为false。

      【举例】

      {"disable_security_groups":true }

      当前仅支持指定为true,不支持指定为false,指定为true时,FWaaS功能不生效。

    • 仅对于“华北-北京二”:udp_srvports和tcp_srvports,字段,字符串类型,默认不设置udp_srvports和tcp_srvports字段。允许指定udp_srvports和tcp_srvports字段为端口号,表示这些端口的tcp报文和udp报文可支持高并发连接,但是此类报文不受ACL和安全组规则的限制。udp_srvports和tcp_srvports字段同时支持更新操作。

      【格式】

      {"tcp_srvports": "port1 port2 port3", "udp_srvports": "port1 port2 port3"}

      端口号之间以空格间隔,最多允许指定的端口号总共为15个,端口号范围是1到65535。

      【示例】

      {"tcp_srvports": "80 443", "udp_srvports": "53"}

      示例表示入方向目的端口为80或者443的tcp报文可支持高并发连接。入方向目的端口为53的udp报文可支持高并发连接。但是此类报文不受ACL和安全组规则的限制。

binding:vnic_type

String

绑定的vNIC类型

【使用说明】normal: 软交换

port_security_enabled

Boolean

端口安全使能标记。

取值范围:true,允许加入安全组和开启dhcp防欺骗;false,安全组和dhcp防欺骗不生效。

device_owner

String

功能说明:端口设备所属

取值范围:目前只支持指定""和"neutron:VIP_PORT";neutron:VIP_PORT表示创建的是VIP

表3 fixed_ip对象

属性

是否必选

类型

说明

subnet_id

String

所属子网ID

【使用说明】不支持更新

ip_address

String

端口IP地址

【使用说明】不支持更新

表4 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地址。

表5 extra_dhcp_opt对象

属性

是否必选

类型

说明

opt_name

String

Option名称

opt_value

String

Option值

请求示例

创建端口,所在network id为00ae08c5-f727-49ab-ad4b-b069398aa171,命名为port-test。

POST https://{Endpoint}/v2.0/ports

{
    "port": {
       "admin_state_up": true,
        "network_id": "00ae08c5-f727-49ab-ad4b-b069398aa171",
        "name": "port-test"
    }
}

响应参数

表6 响应参数

参数名称

类型

说明

port

port object

ports信息,参见表7

表7 port对象

属性

类型

说明

id

String

端口的ID,最大长度不超过255

【使用说明】在查询端口列表时非必选

name

String

端口的名称

network_id

String

所属网络的ID

admin_state_up

Boolean

管理状态

【使用说明】默认为true

mac_address

String

端口MAC地址,例如:"mac_address": "fa:16:3e:9e:ff:55"

【使用说明】只支持系统动态分配,不支持指定

fixed_ips

Array of fixed_ip objects

端口IP,参见表8。例如:"fixed_ips": [{"subnet_id": "4dc70db6-cb7f-4200-9790-a6a910776bba", "ip_address": "192.169.25.79"}],

"fixed_ips": [{"subnet_id": "1fd001aa-6946-4168-86d9-924c7d3ef8fb", "ip_address": "2a07:b980:4030:14::1"}]

device_id

String

设备ID

【使用说明】不支持设置和更新,由系统自动维护,该字段非空的端口不允许删除

device_owner

String

设备所属(DHCP/Router/ Nova等)

【取值范围】network:dhcp,network:router_interface_distributed,compute:xxx(xxx对应具体的可用区名称,例如compute:aa-bb-cc表示是被可用区aa-bb-cc上的ECS使用),neutron:VIP_PORT,neutron:LOADBALANCERV2,neutron:LOADBALANCERV3,network:endpoint_interface,network:nat_gateway, network:ucmp

【使用说明】不支持更新,只允许用户在创建虚拟IP端口时,为虚拟IP端口设置device_owner为neutron:VIP_PORT,当端口的该字段不为空时,仅支持该字段为neutron:VIP_PORT时的端口删除。

该字段非空的端口不允许删除。

tenant_id

String

项目ID

status

String

端口状态,可以为ACTIVE,BUILD,DOWN;

【使用说明】Hana硬直通虚拟机端口状态总为DOWN

security_groups

Array of strings

扩展属性:安全组的UUID,例如:"security_groups": ["a0608cbf-d047-4f54-8b28-cd7b59853fff"]

【使用说明】不支持更新为空。

allowed_address_pairs

Array of allowed_address_pairs objects

扩展属性:IP/Mac对列表,allow_address_pair参见表9

【使用说明】

  • IP地址不允许为 “0.0.0.0”
  • 如果allowed_address_pairs配置地址池较大的CIDR(掩码小于24位),建议为该port配置一个单独的安全组
  • 如果allowed_address_pairs的IP地址为“1.1.1.1/0”,表示关闭源目的地址检查开关
  • 硬件SDN环境不支持ip_address属性配置为CIDR格式
  • 为虚拟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,参见表10

binding:vif_details

binding:vif_details object

vif的详细信息,参见表11

binding:profile

Object

  • 功能说明:扩展属性,提供用户设置自定义信息。
  • 使用说明:
    • internal_elb字段,布尔类型,普通租户可见。只有在创建内网ELB的虚拟IP的网卡时设置为true。普通租户没有权限更改该字段,由系统维护。【举例】

      {"internal_elb": true}

    • disable_security_groups字段,布尔类型,普通租户可见。默认为false高性能通信场景下,允许指定为true普通租户可见。仅支持创建port和读取时指定。当前仅支持指定为true,不支持指定为false。

      【举例】

      {"disable_security_groups":true }

      当前仅支持指定为true,不支持指定为false,指定为true时,FWaaS功能不生效。

    • 仅对于“华北-北京二”:udp_srvports和tcp_srvports,字段,字符串类型,默认不设置udp_srvports和tcp_srvports字段。允许指定udp_srvports和tcp_srvports字段为端口号,表示这些端口的tcp报文和udp报文可支持高并发连接,但是此类报文不受ACL和安全组规则的限制。udp_srvports和tcp_srvports字段同时支持更新操作。

      【格式】

      {"tcp_srvports": "port1 port2 port3", "udp_srvports": "port1 port2 port3"}

      端口号之间以空格间隔,最多允许指定的端口号总共为15个,端口号范围是1到65535。

      【示例】

      {"tcp_srvports": "80 443", "udp_srvports": "53"}

      示例表示入方向目的端口为80或者443的tcp报文可支持高并发连接。入方向目的端口为53的udp报文可支持高并发连接。但是此类报文不受ACL和安全组规则的限制。

binding:vnic_type

String

绑定的vNIC类型

normal: 软交换

port_security_enabled

Boolean

端口安全使能标记,如果不使能则安全组和dhcp防欺骗不生效

dns_assignment

Array of dns_assignment objects

扩展属性:主网卡默认内网域名信息

【使用说明】不支持设置和更新,由系统自动维护

  • hostname:与端口dns_name一致
  • ip_address:端口ipv4私有地址
  • fqdn:为端口创建默认内网fqdn

dns_name

String

扩展属性:主网卡默认内网DNS名称

【使用说明】不支持设置和更新,由系统自动维护,访问该默认内网域名前,请确保子网使用当前系统提供的DNS

project_id

String

项目ID,请参见获取项目ID

created_at

String

资源创建时间,UTC时间

格式yyyy-MM-ddTHH:mm:ss

updated_at

String

资源更新时间,UTC时间

格式yyyy-MM-ddTHH:mm:ss

表8 fixed_ip对象

属性

类型

说明

subnet_id

String

所属子网ID

【使用说明】不支持更新

ip_address

String

端口IP地址

【使用说明】不支持更新

表9 allowed_address_pairs对象

属性

类型

说明

ip_address

String

IP地址

【使用说明】不支持0.0.0.0

mac_address

String

MAC地址

表10 extra_dhcp_opt对象

属性

类型

说明

opt_name

String

Option名称

opt_value

String

Option值

表11 binding:vif_details对象

名称

参数类型

说明

primary_interface

Boolean

取值为true,表示是虚拟机的主网卡。

port_filter

Boolean

表示该网络服务提供端口过滤特性,如安全组和反MAC/IP欺骗。

ovs_hybrid_plug

Boolean

用于通知像nova这样的API消费者,应该使用OVS的混合插入策略。

表12 dns_assignment对象

名称

参数类型

说明

hostname

String

端口hostname。

ip_address

String

端口IP地址。

fqdn

String

端口内网fqdn。

响应示例

{
    "port": {
        "id": "a7d98f3c-b42f-460b-96a1-07601e145961",
        "name": "port-test",
        "status": "DOWN",
        "admin_state_up": true,
        "fixed_ips": [],
        "mac_address": "fa:16:3e:01:f7:90",
        "network_id": "00ae08c5-f727-49ab-ad4b-b069398aa171",
        "tenant_id": "db82c9e1415a464ea68048baa8acc6b8",
        "project_id": "db82c9e1415a464ea68048baa8acc6b8",
        "device_id": "",
        "device_owner": "",
        "security_groups": [
            "d0d58aa9-cda9-414c-9c52-6c3daf8534e6"
        ],
        "extra_dhcp_opts": [],
        "allowed_address_pairs": [],
        "binding:vnic_type": "normal",
        "binding:vif_details": {},
        "binding:profile": {},
        "port_security_enabled": true,
        "created_at": "2018-09-20T01:45:26",
        "updated_at": "2018-09-20T01:45:26"
    }
}

状态码

请参见状态码

错误码

请参见错误码