2.3. VDC网络服务

2.3.1. 概要

UOS VDC网络服务是基于 OpenStack Neutron 项目架构的,用于在云平台上快速建立传统数据中心所需要的网络基础设施,例如路由器、私有网络、VPN等服务,真正实现软件定义网络(SDN)。

2.3.2. 核心概念

正如UOS云主机服务对传统的物理服务器做了虚拟化一样,UOS VDC服务对传统数据中心的物理网络也做了虚拟化,抽象成如下几个主要概念:

2.3.2.1. 路由器 (Router)

路由器主要有两个作用:

  1. 作为公网与用户私有网络之间的通道 ,比如开启公网网关并绑定公网IP之后,便可以通过VPN或端口转发功能从外部访问VDC内部网络资源。
  2. 作为用户多个私有网络之间路由功能 ,比如开启公网网关并绑定公网IP之后,路由器内置的SNAT功能可以允许VDC内部共享一个互联网出口。

默认的,只要子网关联在同一个路由器上,多个子网之间便自动打通了三层路由,可以彼此互通了。

路由器主要功能和概念有:

2.3.2.1.1. VPN隧道

VPN允许用户从公司网络到私有网络之间建立VPN隧道,实现安全无缝访问。

2.3.2.1.2. 端口转发 (Port Forwarding)

端口转发是指将针对路由器公网IP地址的某个端口的请求转发到子网的某个云主机IP地址上,而不需要给每个云主机均绑定公网IP来访问,避免将VDC子网主机完全暴露在公网中。

2.3.2.1.3. 地址转发 (SNAT)

当路由器绑定公网IP之后,内置的SNAT [1] 功能允许多个子网上的云主机通过该路由器访问公网。

2.3.2.1.4. 公网网关

公网网关是VDC内部网络与外部公网网络之间的通道,如路由器关闭和开启公网网关效果如下:

  1. 关闭公网网关,路由器及相连的子网与外部互联网断开,不允许给该路由器绑定公网IP地址,也不允许给路由器相连的子网端口绑定公网IP地址。
  2. 开启公网网关,并且绑定公网IP之后,路由器及相连的子网才可以与外部互联网通信。

2.3.2.2. 私有网络 (Networks)

私有网络是一个隔离的二层网络广播域,在这个二层网络中,可以创建多个三层网络,即子网。在VDC网络服务中,私有网络主要作为子网容器。

Note

这里为了方便理解,我们将OpenStack Neutron服务中的Network一词的中文翻译定为“私有网络”,但是在API中仍然用Network这个名词。

2.3.2.3. 子网 (Subnet)

子网是私有网络中的一个三层网络,每个子网都有一个CIDR格式的私有网络 [2] IP地址段。属于同一个私有网络的子网IP地址段不能重叠,不同私有网络可以创建IP地址段相同或重叠的子网。

2.3.2.3.1. 子网网关

当子网关联了路由器,一般会将子网的第一个IP地址作为子网网关地址,并且通过DHCP服务器将这个网关地址推送到云主机,成为云主机默认网关。

Note

当一个云主机加入了2个或以上的子网,都会往该云主机推送网关。由于云主机只能有一个默认网关出口,一般来讲后加入的子网网关会成为新的默认网关。云主机可以手工更改默认网关,也配置多张路由表以实现多网络线路。

2.3.2.3.2. DHCP服务

创建子网时,默认均开启了DHCP服务,在该子网创建新云主机都将收到子网DHCP服务器发送的IP地址配置信息,比如IP地址、默认网关等信息。

2.3.2.4. 虚拟网卡 (Ports)

虚拟网卡是指是一个子网端口,可以挂载到私有网络中的任何一台云主机中,也可以从一台云主机中卸载,挂载到另一台云主机中。虚拟网卡是一个重要概念,对应OpenStack Neutron服务中的Port(端口)概念, 云主机与私有网络就是通过虚拟网卡而关联起来。一个虚拟网卡关联的资源有:

  1. 子网
  2. 私有网络
  3. 云主机
  4. 公网IP地址
  5. 安全组

Note

事实上,虚拟网卡这个词用得并不是特别准确,只是为了简化用户对于Port概念的理解而如此翻译的,另外,路由器中的网关、私有网络的DHCP服务器也分别使用了一个Port对象表达的,其IP地址就是网关的IP地址和DHCP地址。

2.3.2.5. 公网IP (Floating IP)

公网IP为云主机和路由器提供全球可直接访问的互联网地址,可以绑定到云主机的某个虚拟网卡,也可以直接绑定到路由器上,为路由器及挂载在路由器上的子网提供公网接入。

2.3.2.6. 安全组 (Security Group)

Security Group

安全组是云主机的虚拟网卡上行和下行流量的防火墙,如图所示,表示虚拟网卡的上行安全组规则。UOS的所有数据流量都是通过虚拟网卡进出的,安全组包含一组白名单安全组规则,一个安全组规则允许某一特定数据包流入、流出虚拟网卡。

Note

与一般的云平台不同,这里的安全组作为一个防火墙针对的是某一个虚拟网卡,而不是一个云主机,云主机如果有多个虚拟网卡,可以针对每个虚拟网卡来设置安全组。更加细粒度控制安全。

2.3.2.7. 基础网络

基础网络 (Shared Network) 是UOS平台为用户创建的网络,简化了UOS网络拓扑和逻辑,新注册用户可以不需要做任何网络初始化工作,即可以立即开始使用云平台资源。基础网络有如下特点:

  • 基础网络是UOS平台提供的网络,不能使用用户自己创建的路由器
  • 基础网络上的云主机可以直接绑定公网IP
  • 用户云主机可以在基础网络与私有网络之间迁移

2.3.3. 常见操作

2.3.3.1. 云主机要访问公网

  • 如果您的云主机在基础网络,很简单,只需要给这台云主机绑定一个公网IP地址即可。
  • 如果云主机在私有网络,也很简单,这个云主机所在的子网需要连接到一个路由器上,并且这个路由器开启了公网网关,接下来你需要就是购买一个公网IP地址,直接绑定到云主机上即可以访问公网。
  • 如果您觉得云主机直接暴露在公网太不安全,也可以将这个宝贵的公网IP从云主机解绑,再绑定到路由器上,这时云主机便可以通过路由器访问公网了。并且还可以满足从公网访问云主机的需求,那便是通过端口转发或者VPN隧道。

2.3.3.2. VPN服务

如果您需要访问UOS的内部网络,你可以使用PPTP VPN与OpenVPN服务.

Note

为了保证VPN可用,需要您的路由器绑定一个公网IP并开启路由器的公网网关

1.PPTP VPN使用指南


  • 如果您使用的是Linux系统,以Ubuntu为例,可以按下图来配置,认证方法只需勾选MSCHAPv2,安全选项里不要忘了选择“使用MPPE”。
VPN on Ubuntu


  • 如果您使用的是Windows系统,以Windows8.1为例,可以按下图来配置,即可连接到VPN。
VPN on Windows


  • 如果您使用的是MAC系统,可以按下图步骤来配置,即可连接到VPN。
    • 创建一个PPTP VPN连接
VPN on MAC


  • 配置PPTP VPN连接的服务器IP地址、鉴定用的用户名和密码
VPN on MAC


  • 进行接入
VPN on MAC


2.OpenVPN使用指南

  • 首先您需要在一个router上开启OpenVPN服务,如下图,在test的路由器上创建了一个OpenVPN服务
Create OpenVPN


  • 创建完成后,点击下载证书,如下图:
Download OpenVPN CA and Config


下载完成后您会得到client-xxxxxx.zip的文件,将其解压,您会看到如下文件

  • ca.crt: UnitedStack的根证书
  • client-xxxxxx.crt: OpenVPN客户端证书
  • client-xxxxxx.key: OpenVPN客户端私钥
  • client-xxxxxta.key: OpenVPN TLS-AUTH 密钥
  • client-xxxxxx.windows.ovpn: Windows系统OpenVPN客户端配置文件
  • client-xxxxxx.linux.conf: Linux系统OpenVPN客户端配置文件
  • client-xxxxxx.mac.conf: MAC系统OpenVPN客户端配置文件
  • client-xxxxxx.android.conf: Android系统OpenVPN客户端配置文件

Windows系统OpenVPN使用方法:

  1. 您可以到 openvpn.se 下载OpenVPN客户端
  2. 将您下载的文件解压到OpenVPN客户端的安装路径的config目录下,一般为 C:\Program Files\OpenVPN\Config
  3. 点击client-xxxxxx.windows.ovpn文件即可成功连接

Linux系统OpenVPN使用方法:

  1. 这里以Ubuntu为例,首先使用命令 apt-get install openvpn 安装OpenVPN软件
  2. 将client-xxxxxx.zip解压到/etc/openvpn/目录下
  3. 使用命令 service openvpn start 启动openvpn,即可完成连接

MAC系统OpenVPN使用方法:

  1. 在MAC下一般使用 tunnelblick 客户端,安装tunnelblick
  2. 将解压后的client-xxxxxx.mac.conf文件名改为client-xxxxxx.tbl
  3. 双击client-xxxxxx.tblk 即可完成连接


2.3.4. 服务性能与限制

2.3.4.1. 网络带宽

云主机网络类型 带宽(Mbps)
基础网络 1000
同一虚拟网络子网 600
不同虚拟网络子网通过路由器互联 500

2.3.5. 服务限制

  1. 除了ARP/DHCP,不支持其他类型的广播或组播协议
  2. IPv6暂时不支持,未来计划支持
[1]SNAT全称:Source Network Address Translation,简单来讲,当云主机没有公网IP地址是,但又需要与某个公网IP地址通信,则通过改变源地址的方式与对方建立通信。更详细的解释见:http://en.wikipedia.org/wiki/Network_address_translation#SNAT
[2]私有网络是指遵守RFC 1918和RFC 4193规范,使用私有IP地址空间的网络。私有IP无法直接连接互联网,需要公网IP转发。与公网IP相比,私有IP是免费的,也节省了IP地址资源,适合在局域网使用。私有IP地址在internet中不会被分配。详见:http://en.wikipedia.org/wiki/Private_network