通望通过本文可以帮助大家了解扁平网络和EIP网络这两种不同的云网络环境。
用户在搭建IaaS前,***的问题就是该搭建哪种IaaS网络模型和在搭建该模型之前该如何在单机上准备必要的网络环境。今天我们来分析一下扁平网络和EIP网络分别在公有云和私有云中的应用场景。
1. 扁平网络
扁平网络是私有云环境中最常用、最简单的网络环境。用户的云主机和计算节点处于相同的网络层,用户的应用完全不会感知自己运行在云主机中、还是物理主机中。用户的应用会非常容易的从物理机迁移到扁平网络的云主机中。 在扁平网络中,假设用户设置的Public-L2的网卡设备为eth0,那么ZStack创建的云主机的IP地址将会和eth0所在的网络拥有相同的网段。 例如用户计算节点eth0的IP地址为192.168.0.2(网关为192.168.0.1,子网掩码为255.255.255.0),用户在Public-L3中设置的IP Range为 192.168.0.100~192.168.0.200。那么在创建在Public-L3网络上的云主机将会自动从ZStack获取192.168.0.100~192.168.0.200中的一个IP地址。
注意:用户在设置Public-L3的IP Range的时候需要避免和eth0网络上其他网络设备的IP地址冲突
用户在打算实施扁平网络私有云部署前,需要预先考虑如何优化公司网络配置。 原则上也很简单,就是用户可以准备一个全新的二层网络环境。给该二层网络环境配置一个网关和对应的IP CIDR,并且不配置任何的DHCP服务。
扁平网络也可以直接用于“公有云”业务,也就是每一个云主机都有一个互联网的独立IP地址。很多VPS提供商利用该模式提供服务。 需要注意的是,扁平网络的云主机之间没有二层网络隔离,网络安全需要通过三层的安全组(Security Group)提供。 用户在选择Public-L3网络服务的时候,需要选上Security Group。通常情况下,三层网络安全控制已经可以达到要求。
2. EIP 网络
EIP的网络模式(Port Forwarding的模式与EIP模式几乎类似)实际是经典的亚马逊AWS EC2模式。在该模式中,云主机会被设置上两个IP地址。 其中一个是私网IP地址,也就是在云主机中用ifconfig看到的IP地址。还有一个是公网IP地址(可以是互联网的IP地址,也可以是公司内部网络的IP地址)。 云主机的私网IP地址无法从外部直接连接(例如,无法从Internet上连接某公司内部一个IP为192.168.0.10的机器)。 用户通过公网IP地址可以登录该云主机,并进行相关的操作。由于该模式是经典的公有云模式,所以其他公有云也大多提供类似的模式。
以ZStack为例,在其EIP网络中,云主机的私网和公网之间是通过路由器(例如虚拟路由器)来隔离和中转的。虚拟路由器既承担了DHCP、DNS这样的服务, 也承担了网关和DNAT的服务。这种做法可以做到更有效的网络隔离,也可以在公网IP地址有限的情况下节省公网IP地址。 如果云主机提供的网络服务只供私网内的其他云主机使用,就不需要获得一个独立的公网IP地址。 在公有云业务中,每个独立的公网IP地址也都是需要收费的。
在EIP模式中,虚拟路由器至少需要拥有一个公网IP地址,用于私网内部云主机访问公网的中转。在没有给云主机配置EIP之前, 公网上的其他网络设备是无法透过虚拟路由器访问云主机的,但是云主机依然可以通过虚拟路由器访问公网(SNAT)。 而EIP相当于DNAT,相当于在虚拟路由器上假设了一个桥梁。
注意:在很多网络环境中,用户采用了EIP的网络架构,但是未必需要使用EIP功能。用户可能只用虚拟路由器的SNAT来分割内外网。
私有云是否会使用EIP网络模式呢?答案是根据用户的需求和网络环境来确定的。通常有两种私有云的情况会使用EIP模式:
一,提供网络服务的公司有一些不多的互联网IP地址。提供网络服务的云主机搭建在公司内网环境,用于连接数据库服务器和应用服务器。 通过EIP,可以让用户可以直接访问放置在公司内网的云主机。如果云主机需要迁移、升级、扩容,用户也可以把EIP在不同的云主机之间进行无缝迁移。 当需要使用负载均衡的时候,该EIP服务可以变身为负载均衡器,把来源于用户的网络访问分散到不同的云主机上。
二,公司的部门较多,有部门需要在公司内网环境里划分独立的私有网络,该私有网络可以访问公司内网,但是公司其他部门不能直接连接私有网络的机器。 这个场景中,云主机EIP的IP地址是公司内网IP地址。使用EIP网络拓扑可以给每个部门的私有网络分配不同的Vlan号以达到二层网络隔离。
注意:用户在设置Public-L3的IP Range的时候需要避免和eth0网络上其他网络设备的IP地址冲突。否则如果虚拟路由器可能会启动失败, 并报告IP地址被占用。