传统企业网络
传统企业网络是指企业在自己的数据中心等线下场所搭建的网络环境。按照企业规模的大小,所搭建的网络环境架构也有所不同。
一般来说,小型企业网络通常采用扁平网络结构,一般只需要一台路由器和少量几台交换机,以及一些网线、无线AP等,集成一些基本的安全功能,如防火墙、VPN、DHCP等,为网络提供一定的保护。扩展性和可靠性都比较弱。
大型企业网络往往采用层次化结构,分为核心层、汇聚层和接入层,实施了更多的策略控制,比如:虚拟局域网(VLAN)、访问控制列表(ACL)、负载均衡、流量监控、数据加密等,支持复杂的业务和部门结构,同时提供多层防护和安全检测,可靠性方面采用冗余设计和备份技术,避免单点故障。缺点是配置复杂以及维护昂贵等。
云上企业网络
企业级云上网络是指在云计算平台上,利用云网络产品和服务,构建一个支持多业务部署、安全、高可靠的网络环境,实现企业内部和外部的网络互通。
阿里云为企业提供了两种云上网络:经典网络和专有网络
经典网络是由阿里云为所有租户在云上构建的一张大网,包含小云在内的所有租户都从这张大网中获得地址,经典网络的安全性和私密性上需要用户做好各种措施,安全手段单一,网络分配不能自定义。目前在阿里云上,专有网络VPC是主要的网络使用方式,经典网络已经不支持新用户购买,用户旧有的经典网络也正在逐步迁移至专有网络。
专有网络,即VPC,为用户提供高度隔离的网络环境,配合安全组、网络ACL等其他安全手段,实现更为安全,更为灵活的网络管理方式。云上大部分的产品都需要放入到VPC中才能工作,都需要从VPC 中获得所需的IP地址,将云资源放入不同的VPC,将会获得不同网段的IP地址,并由于VPC的隔离特性,资源放入到不同的VPC之后,将无法互联互通,小云在使用云上产品时,一定要做好规划网络规划。
根据业务特点,选择不同的规划方式
单VPC
如果业务系统非常简单,只是需要一个简单的网络提供IP即可,不需要网络隔离,也不需要多地域部署业务,只使用一个VPC就可以了
单地域多VPC
如果希望某一部分业务和其他的业务要有网络隔离,此时就需要在云上规划多个VPC
多地域多VPC
如果打算把业务系统分布在不同的地域,此时就需要规划多个VPC
单个交换机
当构建测试、开发等非关键业务网络时,可以选择在VPC内使用单交换机,并在该交换机内创建ECS服务器,此时所有的业务都工作在单一的可用区中的单一交换机上,在可用区故障时,所有业务会失去访问能力。
多个交换机
当在云上构建复杂且关键的业务时,就需要选择使用多个交换机,每个交换机可以绑定不同的可用区,然后在多个交换机内部署多台ECS云服务器,且这些ECS云服务器都可以实现跨可用区的业务部署模式,规避单机房故障的风险。
当需要通过子网的网段来做业务分类,提升可管理性时,就需要多个交换机,例如A业务使用192.168.1.0/24子网,使用交换机A。B业务使用192.168.2.0/24子网,使用交换机B。
当需要某一部分服务器不能直接访问互联网,如有互联网需求时,需要通过NAT网关等网络服务代理上网,就需要多个交换机来实现,将不能直接访问公网的服务器单独放在一个交换机中。
保障云上网络中相关业务以及服务器的安全性,需要用到VPC访问控制。通常有两种做法:安全组和网络ACL
安全组
安全组是一种实例级别的虚拟防火墙,安全组必须与实例进行关联才能控制实例的出入站流量。安全组的入方向规则控制ECS云服务器的入站流量,出方向规则控制ECS云服务器的出站流量。由于安全组是有状态防火墙,用户只需要在入站方向设置允许或拒绝规则即可,例如只需要允许安全组入方向的TCP 协议的80端口,安全组会自动发现,出站的流量和入站的流量相关,会自动放通,不需要主动允许出方向的TCP协议的 80端口。
网络ACL
ACL(网络访问控制列表)是 VPC 中子网级别的虚拟防火墙,网络 ACL 必须与交换机进行关联才能对子网内的实例产生影响,实现对一个或多个子网流量的访问控制。网络ACL在入和出两个方向都可以自主设置允许和拒绝规则,其规则与安全组相似。网络 ACL 的规则是无状态的,设置入站规则允许某些请求后,需要同时设置相应的出站规则,否则可能会导致某些请求无法响应,必须同时设置入站和出站规则才能正常通信的情况,称为无状态流量管控。例如小云只在入方向设置了允许TCP协议的80端口通过,但是没有在出方向设置允许TCP协议的80端口通过, 此时外部将无法访问到小云的80端口。
安全组和网络ACL对比
安全组 | 网络ACL | |
---|---|---|
级别 | ECS等云资源实例级别管控 | 特定子网级别的流量管控 |
功能 | 支持允许规则和拒绝规则 | 支持允许规则和拒绝规则 |
是否有状态 | 有,返回数据流会被自动允许,不受任何规则影响 | 无,返回数据流必须被规则明确允许 |
何时生效 | 只有云资源绑定了安全组才会受到影响,可以为不同的实例绑定不同的安全组,实现更精细化配置 | 只要子网绑定了网络ACL,整个子网中的所有云资源都会受到影响 |
路由器、路由表、路由
路由器(vRouter)是专有网络的枢纽,它可以连接专有网络内的各个交换机,同时也是连接专有网络和其他网络的网关设备。每个专有网络创建成功后,系统会自动创建一个路由器。每个路由器至少关联一张路由表。
路由表是存储在路由器或联网计算机中的电子表。路由表存储着指向特定网络地址的路径(路由条目)。每一个路由条目包含目的网段地址 / 子网掩码、路由协议、出接口、下一跳 IP 地址、路由优先级和度量值等信息。路由表记录 IP 包在下一跳应该发给谁。
路由:是路由器根据 IP 地址对数据进行转发的操作。当路由器收到一个数据包时,它根据数据包的目的 IP 地址查询路由表,如果有匹配的路由条目,就根据查询结果将数据包转发出去,如果没有任何匹配的路由条目,则将数据包丢弃。
系统路由表
在创建专有网络VPC后,系统会默认创建一个路由表控制VPC的路由,所有VPC内的vSwitch默认使用该路由表。
可以通过访问专有网络VPC控制台,并点击左侧菜单中的路由表按钮查看已创建的路由表,路由表类型为系统的就是创建VPC后系统自动创建的默认路由表,同一个VPC内互联互通的秘密就在于路由表中的路由条目,VPC中所有交换机的网段默认都会自动添加至系统路由条目中,点击路由表实例ID可以看到路由表的详细信息,点击路由条目列表页签中的系统路由条目,可以看见系统自动创建的路由条目。
如上图所示:
自定义路由表
用户也可以创建自定义路由表,将其和vSwitch绑定,控制vSwitch的路由,更灵活的进行网络管理,称为“子网路由”。
VPC 天然提供了隔离性,不同的VPC之间,无论是否是同地域,默认都无法通信。
如果需要连通不同VPC中的业务,可以通过 VPC对等连接 在不同的VPC之间搭建桥梁,实现网络的互联互通。
VPC对等连接支持以下几种类型的VPC网络打通:同账号同地域、同账号跨地域、跨账号同地域、跨账号跨地域。
操作实例
同一账号下创建一个VPC对等连接连通杭州地域的VPC-HZ-1与北京地域的VPC-BJ-1
地域 | VPC名称 | VPC网段 | 交换机名称 | 交换机网段 |
---|---|---|---|---|
杭州 | VPC-HZ-1 | 192.168.0.0/16 | VSW-HZ-1 | 192.168.1.0/24 |
北京 | VPC-BJ-1 | 172.16.0.0/12 | VSW-BJ-1 | 172.16.1.0/24 |
具体操作步骤如下:
创建对等连接
访问VPC对等连接控制台,点击开通CDT功能权限,后点击旁边的刷新按钮,即可创建对等连接
填写创建配置
配置路由表
在完成创建对等连接后,还需要配置路由条目才可以联通不同VPC内的不同子网。点击左侧VPC对等连接,回到VPC对等连接的列表页面,找到刚刚创建的VPC对等连接,分别配置发起端和接收端的路由条目
ping
连接测试
小云所在公司的业务主要集中在杭州地区,公司决定将总部地点设在杭州。同时,公司为了更好地吸引北京各高校的科技人才,特在北京设立了远程研发中心。因此分别在北京和杭州的本地机房部署了开发环境和生产环境,具体环境描述如下:
思考:以上为小云目前在本地机房的业务逻辑,小云要如何基于本地业务架构设计云上网络架构?如何在阿里云上规划地域、交换机、VPC、安全组、网络ACL,小云应该如何规划云上路由走向,才能连通不同的企业网络环境?
小云根据现有业务情况,在阿里云上设计了如下图所示的网络架构:
其中网络架构为:
北京开发环境有一个VPC:VPC-DEV(172.16.0.0/16),该VPC下有一个开发环境交换机:VSW-DEV(172.16.1.0/24),交换机中部署了两台研发服务器ECS-DEV01、ECS-DEV02,互为主备,避免单点故障导致代码等重要文件丢失。
杭州生产环境有一个VPC:VPC-PRD(192.168.0.0/16),该VPC下有五个交换机,分别为:
杭州和北京两个VPC需要通过VPC对等连接完成网络打通,并手动添加路由完成从开发环境交换机VSW-DEV到文件服务器交换机VSW-FS的联通。
各个区域安全组访问权限控制:
访问控制资源 | 源/目标IP | 方向 | 访问权限 | 协议和端口 | 作用说明 |
北京开发安全组SG-DEV | VSW-FS(192.168.200.0/24) | 入方向 | 允许 | TCP 22端口 | 文件服务器可以从北京开发环境拉取文件 |
文件服务器安全组SG-FS | VSW-DEV(172.16.1.0/24) | 入方向 | 允许 | TCP 22端口 | 北京开发环境可以向文件服务器推送文件 |
VSW-WEB1(192.168.1.0/24)、VSW-WEB2(192.168.2.0/24) | 入方向 | 允许 | TCP 22端口 | WEB生产环境服务器可以从文件服务器拉取文件 | |
WEB服务安全组SG-WEB | 0.0.0.0/0 | 入方向 | 允许 | TCP 80端口 | 对外开放WEB服务(HTTP 80) |
VSW-FS(192.168.200.0/24) | 入方向 | 允许 | TCP 22端口 | 文件服务器可以向WEB生产环境服务器推送文件 | |
数据库服务安全组SG-DB01 | VSW-WEB1(192.168.1.0/24)、VSW-WEB2(192.168.2.0/24) | 入方向 | 允许 | TCP 3306端口 | WEB生产环境服务器可以从数据库服务器获取数据 |
数据库服务安全组SG-DB02 |
访问控制资源 | 源/目标IP | 方向 | 访问权限 | 协议和端口 | 作用说明 |
北京开发安全组SG-DEV | VSW-FS(192.168.200.0/24) | 入方向 | 允许 | TCP 22端口 | 文件服务器可以从北京开发环境拉取文件 |
文件服务器安全组SG-FS | VSW-DEV(172.16.1.0/24) | 入方向 | 允许 | TCP 22端口 | 北京开发环境可以向文件服务器推送文件 |
VSW-WEB1(192.168.1.0/24)、VSW-WEB2(192.168.2.0/24) | 入方向 | 允许 | TCP 22端口 | WEB生产环境服务器可以从文件服务器拉取文件 | |
WEB服务安全组SG-WEB | 0.0.0.0/0 | 入方向 | 允许 | TCP 80端口 | 对外开放WEB服务(HTTP 80) |
VSW-FS(192.168.200.0/24) | 入方向 | 允许 | TCP 22端口 | 文件服务器可以向WEB生产环境服务器推送文件 | |
数据库服务安全组SG-DB01 | VSW-WEB1(192.168.1.0/24)、VSW-WEB2(192.168.2.0/24) | 入方向 | 允许 | TCP 3306端口 | WEB生产环境服务器可以从数据库服务器获取数据 |
数据库服务安全组SG-DB02 |
数据库所在交换机的网络ACL规则配置如下:
出/入方向规则 | 优先级 | 策略 | 协议类型 | 源地址/目的地址 | 目的端口 |
---|---|---|---|---|---|
入方向 | 1 | 允许 | TCP | VSW-WEB1(192.168.1.0/24)、VSW-WEB2(192.168.2.0/24) | 3306/3306 |
入方向 | 2 | 拒绝 | ALL | 0.0.0.0/0 | -1/-1 |
出方向 | 1 | 允许 | TCP | VSW-WEB1(192.168.1.0/24)、VSW-WEB2(192.168.2.0/24) | 1/65535 |
出方向 | 2 | 拒绝 | ALL | 0.0.0.0/0 | -1/-1 |