主流公有云外网IP实现调研

因工作需要, 尝试分析主流公有云外网IP是否具有较好的隔离性,以下记录下分析结果。 主流厂商方案调研 aws aws的实例可获得一个动态的public ip(重启后会变)以及不变的elastic ip,这两种ip官方文档上明确给出是属于1:1 NAT,在vm内部仍只能看到私有网地址,使vm只能访问内网及外网,不能向同外网子网的机器注入广播报文,具有较好的隔离安全性。 aws的私有网(即EC2-VPC)做了较多的限制,在FAQ中明确给出不支持组播及广播,在网络上也看到有其他基于第三方软件规避此问题的方案。 aws的网络实现经由了EC2-Classic到EC2-VPC的转变,目前主推EC2-VPC,提供虚拟子网功能。 相关资料: https://aws.amazon.com/articles/1346 https://aws.amazon.com/vpc/faqs/?nc1=h_ls https://www.ravellosystems.com/blog/advanced-enterprise-networking-in-aws-ec2/ https://www.lisenet.com/2014/create-and-attach-a-second-elastic-network-interface-with-eip-to-ec2-vpc-instance/ microsoft azure azure具有两种创建虚拟机模式,注册了试用账号,并结合文档,总结外网在不同模式下实现如下: Azure Resource Manager(v2版本,以资源方式管理一组vm): 默认动态外网ip,可配置成静态外网ip(需关机重开机) ;此种模式下无法动态或静态ip,在内部只能看到一个内网ip的接口。 Azure Service Management(v1版本,称为classic deployment,以服务方式管理一组vm):默认无外网ip,需通过service的vip对外呈现,需要手工打开vip端口,并关联后端vm dip端口;可设置实例级别的外网ip,称为ilpip,vip本身在vm内部无网卡,ilpip也同样无网卡。 也即无论是v1/v2版本的部署模式,无论是共享的vip还是独立的public ip或ilpip,在vm内部均不可见,类似于floating ip技术,即vm只能访问内网及外网,不能向同外网子网的机器注入广播报文,具有较好的隔离安全性。 而对于私有网,二层做了大量的限制,比如收方向收不到不是到自己地址的报文(含L2/L3过滤),对ARP及DHCP进行了速率限制且做了spoofing处理,组网、广播、udp组播明确表明不支持(详见下附资料)。 相关资料: https://azure.microsoft.com/en-us/documentation/articles/virtual-network-ip-addresses-overview-arm/ https://azure.microsoft.com/en-in/documentation/articles/virtual-networks-faq/ https://blogs.msdn.microsoft.com/igorpag/2014/09/28/my-personal-azure-faq-on-azure-networking-slas-bandwidth-latency-performance-slb-dns-dmz-vnet-ipv6-and-much-more/ https://blogs.msdn.microsoft.com/mast/2016/02/04/azure-networking-public-ip-addresses-in-classic-vs-arm/ google cloud engine 从GCE的官方文档来看,其实例的external public ip基于NAT实现,即vm只能访问内网及外网,不能向同外网子网的机器注入广播报文,具有较好的隔离安全性。 其子网仅支持IPv4单播,不支持IPv4组播及广播,而其资料上提到子网内ARP通过代理予以回复,综合来看,二层组播及广播显然不支持,且在其网络中,也不会存在未知单播的情况。 GCE的网络实现与AWS类似,经由了legacy network到subnet network的变化。 相关资料: https://cloud.google.com/compute/docs/networking aliyun 根据资料及试用结果,aliyun classical network中云主机具有两个接口,外网接口(/22)直接暴露给用户,通过tcpdump可以监听到来自于其他节点及网关的ARP请求,说明未做了隔离,而VPC网络则进行了改进,云主机只有一个接口,外网采用1:1 NAT实现,在vm内部仍只能看到私有网地址,使vm只能访问内网及外网,不能向同外网子网的机器注入广播报文,具有较好的隔离安全性 aliyun同样经过了classic network到VPC网络的改进。 相关资料: http://docs-aliyun-com-cn-b.oss-cn-hangzhou.aliyuncs.com/vpc/pdf/vpc_faq.pdf http://blog.chinaunix.net/uid-28212952-id-5153991.html ucloud 根据上次在为上海客户基于ucloud临时搭建的操作经历,以及Ucloud所公开的设计细节,其EIP同样采用1:1 NAT实现,在vm内部仍只能看到私有网地址,使vm只能访问内网及外网,不能向同外网子网的机器注入广播报文,具有较好的隔离安全性。 相关资料: http://www.infoq.com/cn/articles/UCloud-Sixshot-1 tencent cloud 根据在腾讯云主机的实际验证,linux云主机内部仅有一个接口,具有一个/18子网的内网地址(10.X.X.X),且根据其资料所示,腾读云方外网IP同样采用1:1实现,使vm只能访问内网及外网,不能向同外网子网的机器注入广播报文,具有较好的隔离安全性。 腾讯云EIP 15年底发布,之前与aliyun一样,仍是实例级的额外接口配置公网IP,相当于经过了优化。 相关资料: ...

August 25, 2016 · 1 min · fortitude.zhang