聊聊云计算:弹性IP是怎么回事?
在利用公有云服务部署我们的应用时,为了访问到我们的服务器,我们需要为我们的服务部署公网IP。公有云服务商除了可以为服务器提供固定的公网IP,也可以提供弹性IP。这篇文章,我们来弄清楚弹性IP是怎么回事。
弹性IP的技术基础:NAT
我们都知道搭建外网服务器的时候,需要给服务器分配一个外网可以访问的IP地址。那么弹性IP是什么呢?
在说明什么是弹性IP以前,我们先简单讲一下互联网的一个基础技术:网络地址转换(NAT: Network Address Translation)。网络地址转换技术,或者叫NAT技术,可以说是实现弹性IP的基础。
NAT技术最早提出是在1994年,主要解决一些专用网络的主机,与互联网主机之间通信的问题。专用网络的主机只有本地IP地址,没有互联网(公网)的IP地址。需要通过NAT技术来实现专用网主机的IP地址转换,转换成一个公网IP地址,然后就可以通信了。
解决办法就是在专用网连接到互联网的路由器上安装NAT软件,目前一般的路由器都支持NAT功能。
装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的公网IP地址。所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地IP地址转换成公网IP地址。
NAT技术将专用网的内网地址转换为以太网地址
根据手里公网IP资源的多少,有不同的NAT方案可以选择。
静态NAT:本地地址与公网地址之间一对一映射,即一台主机对应一个固定的公网IP。如果NAT路由器具有足够多的公网IP地址,那它有机会为每个专用网络的主机分配一个固定的公网IP,可以使用静态NAT。这种NAT方案用得很少。
动态NAT:需要一个地址池为内部用户提供公有IP地址,对于同时试图访问外网的每位用户,都从池子里分配一个公网IP地址,但每次分配的IP地址是不固定的。如果专用网络不是所有的主机都要同时访问外网,那么可以采用这种方案。以少量的公网IP,为大量的内网主机提供外网访问。
NAT重载:使用传输层端口号来标识本地主机,即端口地址转换(PAT:Port Address Translation),也称为端口映射。一般情况下,公网IP资源都很稀缺,可能只有一个公网IP,却有很多个本地IP要使用,那么可以使用端口映射方案。NAT路由器用不同的端口号映射到不同的本地IP地址和端口号上。
弹性公网IP
弹性公网IP是一种NAT IP。它实际位于云服务提供商的公网网关上,通过NAT方式映射到了被绑定的云主机实例的私网网卡上。因此,绑定了弹性公网IP的云主机可以直接使用这个IP进行公网通信,但是在它的私网网卡上并不能看到这个IP地址。
用户访问的永远是弹性IP地址,但不一定是同一个云主机
阿里云、腾讯云等云服务商都有提供弹性IP的服务。
阿里云的弹性公网IP(EIP: Elastic IP Address),是可以独立购买和持有的公网IP地址资源,能动态绑定到不同的ECS实例上,绑定和解绑时无需停机。
腾讯云的弹性公网IP可以分配给CVM实例,或者是黑石物理服务器。黑石弹性公网IP只能绑定黑石服务器和黑石私有网络的NAT网关,与云服务器的弹性公网IP不能共用。
使用弹性公网IP有什么好处?
对于云服务商来说,当然是帮助他们节约了公网IP资源。那么对于开发者来说,使用弹性IP有什么好处呢?
有的时候我们会根据项目运营的需要更换主机,比如换配置更高的主机。那么每次换云主机都会更换我们服务的IP地址,这样就需要我们重新做一次地址解析,把我们的域名解析到新的IP地址上。
如果我们使用了弹性IP,在更换主机以后,只需要把我们申请的弹性IP分配到新的主机上,就可以了,不需要在域名服务商那里重新解析域名。对于服务的稳定性,有一定的好处。
随着云计算业务的不断发展,云服务商手里的公网IP资源不够用的时候,有可能以后会强制所有的主机都使用公网IP。