虚拟网络内部的私有IP地址要通过虚拟路由器的NAT功能才能转换为公有IP地址。
假设你的VPC里面有三台服务器,每台服务器肯定都有自己的IP。那么同上一章提到的,你想你的服务器,通过虚拟路由器的公共IP对外部网络提供服务,那你服务器的真实IP肯定要在虚拟路由器那作一个转换,把服务器的私有IP转换为公共IP再对外提供服务。
至于NAT我还没细学过,这里先跳过了。到时候计网碰到再说。
第一种转换方式一般称为“IP伪装”(IP masquerade),即虚拟机实例在链接外部网络时共享虚拟路由器上的公有IP地址。
问题也很明显。如果ABC三个服务器都用的同一个公有IP。那外网怎么才能访问其中一个具体的服务器呢?相当于只能在VPC内服务器可以连接到外网,但是外网无法连接到内网的服务器。
另一种转换方式在AWS中称为“弹性IP”(elastic IP),在OpenStack中称为:“浮动IP”(floating IP)。这种方式会将某个公有IP地址分配给虚拟机实例。
有点像“域名-IP”的对照关系。只不过在弹性IP中变成了“IP-IP”。比如A服务器的IP是192.168.1.11,分配给它的弹性IP是192.168.1.12。那么外网的用户只能通过访问192.168.1.12来访问A服务器。
不过对于A服务器而言,它的IP仍然是192.168.1.11。外网要访问192.168.1.12的时候,会先在虚拟路由器将请求转换为192.168.1.11,再去VPS内部找到这个IP地址的服务器。