弹性网卡支持私网多IP

今日头条

1142人已加入

描述

分配私网多IP

目前私网多IP功能只支持IPv4且白名单开放,白名单申请请提交工单。

您需要一台支持私网多IP的ECS。支持私网多IP的ECS规格可通过接口DescribeInstanceTypes查询。

为ECS的主网卡或辅助网卡分配私网多IP。分配私网多IP接口AssignPrivateIpAddresses。查询分配的IP地址接口DescribeNetworkInterfaces。

配置私网多IP。登录分配多IP的ECS,这时使用命令ifconfig不能看到分配的私网多IP,要使用ifconfig配置分配的IP之后才能看到。此时私网多IP配置完成,可以使用。

 

命令格式(此种配置方式重启失效):# ifconfig eth0:{new ip name} {your ip address} netmask {your netmask} upfor example:  # ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up

 

回收私网多IP

使用接口DescribeNetworkInterfaces查询分配的辅助IP地址。

使用接口UnassignPrivateIpAddresses回收私网多IP。

多IP使用注意事项

目前私网多IP功能只支持IPv4且白名单开放,白名单申请请提交工单。

状态限制:

网卡必须为 已绑定(InUse)或 可用(Available)状态。

主网卡分配回收私网多IP,其ECS必须为运行中(Running)或者 已停止(Stopped)状态

Quota限制,查询规格私网IP Quota途径:Helper文档,或者接口DescribeInstanceTypes

当网卡已经挂载到实例上,实例上每个网卡分配的私网IP(包括主私网IP)个数不能大于实例规格私网IP Quota。

当网卡为Available状态,最多能分配10个私网IP。

当网卡已经分配的私网IP数量大于要挂载实例规格私网IP Quota,不允许挂载。

当实例上网卡分配的私网IP数量大于目标规格支持的私网IP Quota,不允许变配。

安全组

一个安全组内最多2000个私网IP。

分配的辅助IP所属的安全组和其网卡一致。

只支持VPC实例,按照指定IP地址分配辅助IP时,指定的IP地址必须在网卡所属VPC内未被使用。

多IP分配回收代码示例

 

#  coding=utf-8# if the python sdk is not install using 'sudo pip install aliyun-python-sdk-ecs'# if the python sdk is install using 'sudo pip install --upgrade aliyun-python-sdk-ecs'# make sure the sdk version is 4.7.1, you can use command 'pip show aliyun-python-sdk-ecs' to checkimport jsonimport loggingfrom aliyunsdkcore import clientfrom aliyunsdkecs.request.v20140526.AssignPrivateIpAddressesRequest import AssignPrivateIpAddressesRequestfrom aliyunsdkecs.request.v20140526.UnassignPrivateIpAddressesRequest import UnassignPrivateIpAddressesRequest# configuration the log output formatter, if you want to save the output to file,# append ",filename='ecs_invoke.log'" after datefmt.logging.basicConfig(level=logging.INFO,                     format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',                     datefmt='%a, %d %b %Y %H:%M:%S')# send open api requestdef _send_request(request):     request.set_accept_format('json')    try:         response_str = clt.do_action(request)         logging.info(response_str)         response_detail = json.loads(response_str)        return response_detail    except Exception as e:         logging.error(e)# assign private ip addresses to enidef assign_private_ip_addresses(eniId, count, private_ip_address_list):     request = AssignPrivateIpAddressesRequest()     request.set_NetworkInterfaceId(eniId)    if (count != None):         request.set_SecondaryPrivateIpAddressCount(count)    if (private_ip_address_list != None):         request.set_PrivateIpAddresss(private_ip_address_list)     _send_request(request)# assign private ip addresses to eni by secondary private ip address countdef assign_private_ip_by_count(eniId, count):     assign_private_ip_addresses(eniId, count, None)# assign private ip addresses to eni by secondary private ip address listdef assign_private_ip_by_addresses(eniId, private_ip_address_list):     assign_private_ip_addresses(eniId, None, private_ip_address_list)# unassign private ip addresses by secondary private ip address listdef unassign_private_ip_addresses(eniId, private_ip_address_list):     request = UnassignPrivateIpAddressesRequest()     request.set_NetworkInterfaceId(eniId)     request.set_PrivateIpAddresss(private_ip_address_list)     _send_request(request)if __name__ == '__main__':    # client init     clt = client.AcsClient('Your Access Key Id', 'Your Access Key Secrect', 'cn-zhangjiakou')    # assign_private_ip_by_count("eni-id", 1)     #     # assign_private_ip_by_addresses("eni-id", ["192.168.1.1", "192.168.1.2"])     #     # unassign_private_ip_addresses("eni-id", ["192.168.1.1", "192.168.1.2"])

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分