21-SDWAN
本文大部分自翻于思科的《Cisco SD-WAN Design Guide》2020年9月版本
SD-WAN概述
SD-WAN是什么
SD-WAN(Software Defined Wide Area Network )的中文是软件定义的广域网。WAN(Wide Area Network)表示广域网,是使得多个局域网(Local Area networks,LANs)相连的连接,一般这些局域网之间的距离为几公里到几千公里;Software-defined中文为软件定义,表示WAN(广域网)采用软件编程的方式配置和管理,因此网络可以根据需求快速的进行改变。SDWAN是一种虚拟化的服务,在很远的地理距离上,连接和扩展企业网络。WAN通常使用MPLS(Multiprotocol Label Switching)、无线、宽带、虚拟专用网络(VPN,Virtual Private Networks)等方式让远程办公的用户不受地域的限制,能够访问企业的应用程序、各种服务和资源。SDWAN能够实时监控、管理WAN广域网连接的质量,使得流量保持高速并优化连接。
SD-WAN和传统WAN的区别
传统架构的WAN依赖于物理路由器将远程分支站点或远程用户连接到数据中心,使远程用户能够使用部署于数据中心中的各种程序。这些物理路由器有着独立的数据层面,数据层面中存储着信息和控制层面(告诉数据向哪里传输),数据传输的路径通常由网络管理员手工配置的规则或策略决定。这个决定的过程对于每一台路由器来说,都会耗费时间并可能会出错。
SD-WAN将控制和管理这两个流程与底层网络硬件分离(也就是常说的管控分离),使得两者能够被软件所配置和部署。中心化控制面板意味着网络管理员可以将新的策略或规则一次性在全网设备上部署。
为什么需要SD-WAN
这是一个当前企业典型的传统网络拓扑图,设计的初衷是既希望保障客户访问云服务的质量,也希望能够保证云的安全性。所有分支机构的流量通过主用的MPLS链路回传到总部的数据中心(Internet线路为备用线路),再由数据中心访问云端的应用。这么设计的好处有两点:
- MPLS线路作为主用,线路的质量比较好;
- 由于分支机构往往没有强大的安全设备,由分支机构直接访问云端服务可能存在安全隐患,因此要求分支机构的流量经由MPLS线路到达总部的数据中心,由数据中心做一系列安全的控制、策略后,流量再由数据中心连接云服务。总部的数据中心一般都会有完备的防火墙设备及相关策略配置。
但这种网络设计也存在一些不足:
- 分支机构的流量无法直接到达云服务供应商;
- 加大了MPLS带宽的压力,流量经过绕行数据中心后,会明显的增加MPLS线路的延迟;
- MPLS带宽价格比较贵,如果业务流量增加需要加大MPLS带宽,成本会比较高,而且MPLS设计的初衷也不是为了应对SAAS(Software-as-a-service,软件即服务)应用和云服务的流量。比如中国电信2M的MPLS线路每个月价格为11500;
- 传统技术无法高效实时的在主用、备用链路之间切换,导致无法有效的利用两条链路;
和传统的WAN相比,SD-WAN能够处理包括MPLS、宽带、LTE(Long Term Evolution,和数值的GSM,CMDA一样,是一种手机使用的网络制式)在内的多种连接方式,也能支持私有云、公有云、数据中心部署,SAAS(Software-as-a-service,软件即服务)等服务。SD-WAN还能实时的路由这些软件的数据,使它们选择最优的路由路径。在云部署的情况下,SD-WAN能够将互联网和云服务流量直接转发到分支结构,而无需回到总部的数据中心中。
SD-WAN的优势
- 简洁:因为每个设备都是集中管理的,所以每个设备没有单独的路由表,而是有统一的路由表,使得管理路由更为方便。路由基于应用所采用的策略,网络管理员能够实时的创建、更新安全规则,以应对网络变化;当SD-WAN和ZTP(Zero Touch Provisioning,零配置部署,是指新出厂或空配置设备上电启动时采用的一种自动加载开局文件<包括系统软件、补丁文件、配置文件等>的功能。设备运行ZTP功能,可以自动获取并自动加载开局文件,实现设备的免现场配置和部署,从而降低人力成本,提升部署效率。)相结合以后,企业能够进一步降低新建站点所需的复杂性、资源和运营成本;
- 增强性能:分支站点的流量可以直接访问云服务,而无需绕行总部数据中心,降低延迟,获得更好的用户体验;
- 降低成本:网络管理员能够利用宽带去替代或作为MPLS的补充,降低MPLS费用;
- 多接入:可以使用传统的Internet、4G或MPLS等多种接入方式,因此接入具体采用什么技术,显得无关紧要;
适用场景
Secure Automated WAN
安全自动的广域网。替代了传统的MPLS为主用、互联网IPSec为备用的方式。
- Automated Zero-Touch Provisioning:零接触上线。是指新出厂或空配置设备上电启动时采取的一种自动加载开局文件(包括系统软件、补丁文件、配置文件等)的功能。设备运行ZTP功能,可以自动获取并自动加载开局文件,实现设备的免现场配置和部署,从而降低人力成本,提升部署效率。在vEdge上,指的是Edge路由器自动发现它的控制器并进行认证,在和网络其他设备建立IPSec tunnel之前,自动下载预设的配置。ZTP在vEdge上的配置步骤流程图如下:
- Bandwidth Augmentation:带宽汇聚。允许用户使用所有可用的广域网(WAN)的连接方式(包括4G、5G、MPLS、普通Internet等)和路由效能(通过路由,控制流量走哪条WAN链路),来增加广域网带宽,借助增加的带宽以主动\主动方式将数据流量分布到所有可用的广域网路径上。流量可以从MPLS这种高质量、更昂贵的线路,转移到普通宽带线路上,普通宽带线路可以实现和MPLS这种昂贵线路相同的可用性和性能,但价格只有MPLS线路的几分之一。通过性能监控以及主动的路由重计算(使数据绕过故障区域),应用的性能可以得到最大限度的提高。
- VPN Segmentation:将流量隔离是任何安全策略的关键。进入路由器的流量被分配给到一个VPN中,这样做不仅将用户的流量分离开,也将路由表分离开。这样确保了一个VPN中的用户无法传输数据给另一个VPN,除非有意这么做并进行了相关配置。当流量在广域网(WAN)中传输时,在ESP报头的后面会插入一个标签,当数据到达远端站点时,这个标签用来确定用户的流量属于哪一个VPN。
- Centralized Management:中心化管理。vManage提供了故障、配置、计费、性能和安全的中心化管理界面,该中心化管理界面可以在day0、1、2天部署设备时使用。vManage有大量可迅速部署的策略及模板,通过这些策略和模板可以提供操作上的简洁以及部署时的便利,以达到减少变更配置及部署的时间。关于day0、day1、day2,简单来说说,day-1就是在设备上架之前,day0就是设备上架并通过ZTP等方式进行简单配置,day1是设备上架后对服务进行具体配置,day2….N是设备运行中的配置,具体的说明如下:
Application Performance Optimization
应用性能优化。提供了更好的基于应用的实时的优化,对链路实时监控,找到并切换到满足应用需求的链路上。
现网中存在着各式各样的网络问题,比如丢包、广域网链路拥塞、广域网链路的高延迟以及广域网链路选择了次优路径,这些网络问题影响着终端用户的软件体验。优化软件体验对于保持高效生产至关重要。思科SD-WAN解决方案能最小化网络的丢包、延迟和抖动,能够消除广域网延迟以及传输错误所带来的不利影响,优化软件性能。下面几个组件能够达成这个目标:
- Application-Aware Routing:可感知应用的路由。应用感知路由允许为流量创建定制的SLA策略,并通过BFD探针(Bidirectional Forwarding Detection probe)检测实时性能。应用的流量被引导到支持该SLA的广域网链路,如果出现性能下降且超过了设定值,流量可以被分配到其他性能更好的路径。上图中,远端站点到达数据中心共有三条路径,SD-WAN能够实时计算链路质量,确定应用的SLA能否被满足,从图中可以看到链路2不满足设定的参数,SD-WAN将不使用链路2传输应用的流量。
- QoS:Quality of Service,服务质量包括对WAN路由器接口上的流量进行分类、调度、排序、整形和监督。以上这些使得QOS能够最大限度的减少关键应用数据流的延迟、抖动和丢包。
- FEC and Packet Duplication:Forward Error Correction(FEC,转发错误纠正)和数据包复制都是用来降低丢包的。使用FEC,发送端的广域网Edge路由器会在每四个数据包中插入一个奇偶校验数据包,接收端广域网Edge路由器能够根据这个奇偶校验数据包来恢复\重建丢失的数据包;使用数据包复制这个特性,发送端的广域网Edge路由器会将选定的重要应用的所有数据包进行复制,并将复制的数据包同时在两个隧道上进行传输,接收端的广域网Edge路由器重建该重要应用的数据流并丢弃重复的数据包。
- TCP optimization and Session Persistence:TCP优化和会话持久性,该特性能够为长距离或高延迟链路解决高延迟和低吞吐量的问题,有了TCP优化,广域网的Edge路由器可以在客户端和服务器之间起到TCP代理的作用;有了会话保持特性,一个TCP连接可以用来发送和接收多个TCP的请求和响应(request and responses),而不用像之前那样,每个TCP请求和会话都需要建立单独的会话来保持。
Secure Direct Internet Access
安全的互联网直接访问。在保证安全的前提下,分支结构直接通过互联网访问云端资源,而无需绕行总部的数据中心。
在传统的广域网构架下,分支机构的互联网流量会先折回到中心站点的数据中心,在数据中心,分支机构的流量能够被数据中心布置的多重安全设备保护,而后流量再回到分支机构。随着时间的推移,越来越多的公司使用了云服务上的应用,并且越来越多的应用都是基于互联网的云服务,导致分支机构的互联网流量越来越大,由于流量要先绕行数据中心,所以对带宽的需求越来越大,传输的延迟也越来越高,影响了应用的性能。
思科的SDWAN构架,在边缘上使用IOS XE上成熟的安全特性来保证分支机构访问互联网流量的安全,而且思科的Umbrella服务能够提供基于云的安全服务。使用Umbrella服务之前,不管是总部还是远端分支机构,都需要分别部署防火墙并且分别配置安全策略来保证数据的安全,但有了Umbrella以后,所有的流量都会先汇聚到SD-WAN上来,在SD-WAN的云端会挂一些防火墙服务,不管是分支还是总部的数据都先通过云端的防火墙后,再发送到互联网的目的地去,SDWAN相当于把总部和各个分支的流量汇聚到云端的安全服务上来过滤,而后再发送给本来流量的目的地。这样做的好处就是,只需要在云端部署一个统一策略的云防火墙即可,各个分支和总部都不需要再单独部署防火墙。
Multicloud Connectivity
多云连接。不仅能连接传统的站点,而且能够连接多个云服务。
laaS\PaaS\Saas
综述
任何一个在互联网上提供其服务的公司都可以叫云计算公司,但云服务也是分层的,分别是Infarstructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。网上流传着一个吃披萨的例子,很简单明了的阐述了LaaS\PaaS\SaaS三者之间的区别:
对于LaaS来说,就是你有一个所有材料都搭配好的生披萨,你只需要把这个披萨拿到供应商店里烤出来即可,这个过程中,厨房、烤箱、煤气等是供应商提供的,你需要自备披萨面团、番茄酱、配料、奶酪等原材料。
而PaaS简单多了,除了厨房、烤箱等基础设施,别人把披萨饼都准备好了,你需要做的是把自己的配料撒到披萨饼上,然后在供应商平台上烤出来即可。这个过程中,你需要的是搭配配方(产品)、掌握火候(营销推广),他人提供平台来给你实现。
SaaS则是所有东西都是别人的,交给你的时候已经是一个成品,换到现在的话来说就是,贴上自己的Logo,你需要做的工作就是把产品卖出去即可。
laaS
全称为Infrastructure-as-a-Service,也就是基础设施即服务,有时候也叫Hardware-as-a-Service,在实际应用中,简单来说就是laaS公司会提供场外服务器,存储和网络硬件,你可以租用。节省了维护成本和办公场地,公司可以在任何时候利用这些硬件来运行、推出其产品。laaS发展到今天,你甚至可以将硬件外包出去。
Microsoft、VMWare、Rackspace等公司就是典型的laaS公司。
PaaS
PaaS有时候也叫做中间件,也就是说客户所有的开发都在这一层开展,节省了时间和资源。
最典型的就是,PaaS在网上提供虚拟服务器,操作系统等集研发和分发应用于一体的各种解决方案。节省了客户在硬件开发商的费用、时间,也让分散的办公室之间合作更加便捷。一般来说,PaaS服务大致包括网页应用管理、应用设计、应用虚拟主机、存储、安全以及应用开发协作工具等。
Google APP Engine、Heroku,Engine Yard就是典型的PaaS公司。
SaaS
SaaS其实更简单,意味着任何一个远程服务器上的应用都可以通过网络来运行,见得比较多的就是当下各种服务中提供的SDK、API甚至是H5等形式的快捷接口形式。
Citrix的GoToMeeting,Cisco的WebEx等产品都是典型的商务应用型SaaS服务。
技术构架
概述
思科SDWAN总体架构分为四个层次,Orchestration(编排),management(管理),control(控制)和data plan(数据层面)。
- 编排层(Orchestration),设备为vBond,帮助SDWAN路由器自动加入Overlay中;
- 管理层(Management),设备为vManage,负责集中配置以及集中监控;
- 控制层(Control),设备为vSmart,构筑并且维持网络拓扑,并且决定流量的走向;
- 数据层面(Data plan),设备为vEdge,基于控制层的路由决策来转发数据包。
相关概念
vManage
This is centralized network management system is software-based and provides a GUI interface to easily monitor, configure, and maintain all Cisco SD-WAN devices and their connected links in the underlay and overlay network. It provides a single pane of glass for Day 0, Day 1, and Day 2 operations.
vManage是一个中心化的网络管理系统,它基于软件,提供图形化界面来配置和维护所有思科的SDWAN设备以及这些设备所连接的Overlay、Underlay链路。它有统一的管理界面,用来实时Day0、Day1和Day2的操作配置。
vSmart controller
This software-based component is responsible for the centralized control plane of the SD-WAN network. It maintains a secure connection to each WAN Edge router and distributes routes and policy information via the Overlay Management Protocol (OMP), acting as a route reflector. It also orchestrates the secure data plane connectivity between the WAN Edge routers by reflecting crypto key information originating from WAN Edge routers, allowing for a very scalable, IKE-less architecture.
vSmart在控制层(control plane),它基于软件,负责SDWAN网络中的中心控制层。vSmart维护着每个edge路由器之间的连接,并且通过OMP协议(Overlay Management Protocol)分发路由及策略信息,vSmart充当着路由反射器的角色。vSmart通过反射来自edge路由器秘钥信息的方式,来协调\编排edge路由器之间的安全数据平面的连接,从而实现一个可扩展性极佳、无IKE的构架。
vBond orchestrator
This software-based component performs the initial authentication of WAN Edge devices and orchestrates vSmart, vManage, and WAN Edge connectivity. It also has an important role in enabling the communication between devices that sit behind Network Address Translation (NAT).
vBond在编排层(Orchestration plane),它基于软件,负责edge设备初始认证,以及编排\协调vSmart、vManage和edge设备之间的连接。它也在NAT后面那些设备之间的通讯方面,起到重要作用。
WAN Edge router
This device, available as either a hardware appliance or software-based router, sits at a physical site or in the cloud and provides secure data plane connectivity among the sites over one or more WAN transports. It is responsible for traffic forwarding, security, encryption, quality of service (QoS), routing protocols such as Border Gateway Protocol (BGP) and Open Shortest Path First (OSPF), and more.
Edge路由器可以是硬件的实体路由器,也可以是基于软件的路由器,它可以部署在实体的物理站点中,也可以部署在云上(亚马逊、微软云),通过一个或多个广域网传输提供站点之间的安全数据平面连接。它负责流量转发、安全、加密、质量服务(QOS)、路由协议(BGP、OSPF等)。
上图中的简单拓扑描述了两个WAN的Edge站点,每个Edge站点都连接了两条链路,私有MPLS链路和公有互联网链路。基于云服务的SDWAN控制器(两个vSmart控制器,vBond和vManage服务器)通过公有互联网直接连接。此外,拓扑也包括了连接到SaaS、laaS的云服务。
Edge路由器与vSmart控制器形成永久的DTLS(Datagram Transport Layer Security)或TLS(Transport Layer Security)控制连接。并通过两种连接方式(MPLS链路、公有互联网链路)与两个vSmart控制器建立了连接。路由器还与vManage服务器形成了永久的DTLS或TLS控制连接,但只通过其中一种连接方式传输。Edge路由器们通过每种连接方式(MPLS链路、公有互联网链路),使用IPSec隧道与其他广域网路由器进行安全通信。BFD(双向转发检测,Didirectional Forwarding Detection)协议默认启动并运行在每一个隧道上,检测丢包、延迟、抖动以及路径故障。
Site ID
A site ID is a unique identifier of a site in the SD-WAN overlay network with a numeric value 1 through 4294967295 (2^32-1) and it identifies the source location of an advertised prefix. This ID must be configured on every WAN Edge device, including the controllers, and must be the same for all WAN Edge devices that reside at the same site. A site could be a data center, a branch office, a campus, or something similar. By default, IPsec tunnels are not formed between WAN Edge routers within the same site which share the same site-id.
Site ID是一个独一无二的数字(从1到4294967295之间的),用来标识SDWAN overlay网络上的站点,并且Site ID还用来标识路由前缀的起源站点。这个Site ID必须在所有广域网的Edge设备上进行配置,包括控制器上也要配置Site ID,这些在同一个站点的所有广域网Edge设备上必须配置相同的Site ID。同一个站点可以是一个数据中心,一个分支机构,一个校园网或其他类似的。默认情况下,同一个站点中使用相同Site ID的广域网Edge设备之间不会形成IPSec隧道。
System IP
A System IP is a persistent, system-level IPv4 address that uniquely identifies the device independently of any interface addresses. It acts much like a router ID, so it doesn’t need to be advertised or known by the underlay. It is assigned to the system interface that resides in VPN 0 and is never advertised. A best practice, however, is to assign this system IP address to a loopback interface and advertise it in any service VPN. It can then be used as a source IP address for SNMP and logging, making it easier to correlate network events with vManage information.
System IP是一个固定的,系统级别的IPV4地址,这个地址唯一的标识着设备,使得它区别于其他接口的地址。System IP有点类似于Router ID,因此System IP不需要被宣告或者被underlay知道。system ip被分配给位于VPN0中的系统接口,不会被宣告。然而,最好将System IP分配给一个环回口,并且在所有VPN中宣告这个环回接口,它可以作为SNMP和系统日志的源地址,使得它能更好的将网络中发生的情况和vManage信息关联起来。
Organization Name
Organization Name is a name that is assigned to the SD-WAN overlay. It is case-sensitive and must match the organization name configured on all the SD-WAN devices in the overlay. It is used to define the Organization Unit (OU) field to match in the Certificate Authentication process when an SD-WAN device is brought into the overlay network.
组织名是分配给SDWAN overlay网络的,这个名字大小写敏感(也就是说大写的组织名和小写的组织名,并不是同一个名字),SDWAN的overlay网络中的所有设备的组织名必须一致。组织名用来定义Organization Unit(OU)字段,以便在SDWAN设备接入overlay网络时,在证书认证过程中进行匹配。
Private IP Address
On WAN Edge routers, the private IP address is the IP address assigned to the interface of the SD-WAN device. This is the pre-NAT address, and despite the name, can be a public address (publicly routable) or a private address (RFC 1918).
在广域网的边缘路由器上,那些分配给SDWAN设备接口的IP地址叫做私有IP地址。这些地址并没有经过NAT,尽管它们被叫做私有地址,但这些所谓的私有地址可以是真-公有地址(能够被路由的公有地址)或私有地址(符合RFC1918-Address Allocation for Private Internets规定的真-私有地址)
Public IP Address
The Post-NAT address detected by the vBond orchestrator. This address can be either a public address (publicly routable) or a private address (RFC 1918). In the absence of NAT, the private and public IP address of the SD-WAN device are the same.
那些经过NAT之后,被vBond编排器所检测到的地址,叫做公有IP地址。这些公有地址可以是真正意义上的真-公有地址(能够被路由的公有地址),也可以是私有地址(符合RFC1918-Address Allocation for Private Internets规定的真-私有地址)。由于没有经过NAT,SDWAN设备的私有IP地址和公有IP地址是相同的。
TLOC
A TLOC, or Transport Location, is the attachment point where a WAN Edge router connects to the WAN transport network. A TLOC is uniquely identified and represented by a three-tuple, consisting of system IP address, link color, and encapsulation (Generic Routing Encapsulation [GRE] or IPsec).
TLOC(Transport Location,传输位置),是关于王边缘路由器连接到广域网的连接点。一个TLOC由一个三元组定义并代表,这个三元组由system IP、Link color(链路颜色)和封装方式(GRE或IPSec)构成。
Color
The color attribute applies to WAN Edge routers or vManage and vSmart controllers and helps to identify an individual TLOC; different TLOCs are assigned different color labels. The example SD-WAN topology in figure 10 uses a public color called biz-internet for the Internet transport TLOC and a private color called mpls for the other transport TLOC. You cannot use the same color twice on a single WAN Edge router.
颜色,color属性用在广域网边缘路由器、vManage控制器或vSmart控制器上,用来帮助识别一个独立的TLOC,不同的color标签会分配给不同的TLOC。上图中的SDWAN拓扑中,使用名叫biz-internet的公有color来标识互联网TLOC链路,使用名叫mpls的私有color来标识其他的TLOC链路。在一个广域网边缘路由器上,不能使用相同的color两次。
OMP
Overlay Management Protocol.The OMP routing protocol, which has a structure similar to BGP, manages the SD-WAN overlay network. The protocol runs between vSmart controllers and between vSmart controllers and WAN Edge routers where control plane information, such as route prefixes, next-hop routes, crypto keys, and policy information, is exchanged over a secure DTLS or TLS connection. The vSmart controller acts similar to a BGP route reflector; it receives routes from WAN Edge routers, processes and applies any policy to them, and then advertises the routes to other WAN Edge routers in the overlay network.
OMP协议(Overlay 管理协议),用来管理SDWAN的overlay网络,它的构架看上去和BGP有些类似。它运行在vSmart和广域网边缘路由器之间,在vSmart和边缘路由器之间控制层面信息(例如路由前缀、下一跳路由、秘钥和策略信息)通过安全的DTLS或TLS连接进行交互。vSmart控制器的角色有点类似于BGP路由反射器,它从广域网边缘路由器上接收路由,处理且应用二者(vSmart和边缘路由器)之间的所有策略,然后宣告路由到其他的overlay网络中的边缘路由器上。
VPN
在SDWAN的overlay网络中,VPNs(Virtual Private Networks)提供了隔离功能,类似于VRFs(Virtual Routing and Forwarding instances)的功能。每个VPN和其他VPN分离开,并且每个VPN有它各自的转发表项,一个接口\子接口只能配置于一个VPN中,标签应用于OMP路由的属性中,以及数据包的封装中,用来标识数据包属于哪个VPN之中。
VPN号是一个范围在0-65535之间的,四字节整数,但有一些VPN号码要保留给内部使用,所以VPN号中,一共能用来给用户配置的数字为65527个。广域网边缘设备上和控制器上,有两个默认存在的VPN,VPN0和VPN512,要注意,VPN0和VPN512是唯一能配置在vManage和vSmart控制器上配置的VPN。对vBond这个编排器来说,虽然能配置更多的VPN,但只有VPN0和VPN512是有效的,而且只能使用这两个VPN。
- VPN0是传输VPN(Transport VPN)。它包含着所有连接到广域网链路的接口,与控制器的安全DTLS/TLS连接就是由这个VPN发起的。静态路由、默认路由或动态路由协议都需要配置在这个VPN中,以便能得到下一跳的路由信息,从而建立控制层面,使得IPSec隧道流量能够到达远程站点。
- VPN512是管理VPN,它承载着进出思科SDWAN设备的带外管理流量。这个VPN被OMP协议所忽略,不在overlay网络上传输。
除了已经定义的VPN之外,需要建立一个或多个服务端VPN,这些服务端VPN包含着连接本地端网络的接口,并且承载着用户数据的流量。通常建议选择1-511之间的数字作为VPN的名字,但也支持更高数字号码,只要这些号码和保留\默认VPN的数字不重复就行。可以为OSPF、BGP、VRRP(Virtual Redundancy Protocol)、QOS、流量整形或策略等功能启用服务VPN。通过将OMP路由(从站点的vSmart控制器收到的)重分布到服务端VPN使用的路由协议中的方式,可以将用户流量通过IPSec隧道引导到其他站点。反过来,本地站点的路由也可以通过宣告服务端VPN路由到OMP路由协议中的方式,被宣告到其他站点,OMP路由协议被发送到vSmart控制器并且重分布到网络中的其他广域网边缘路由器上。
当配置从vManage推送到运行了IOS XE系统的SDWAN路由器的时候,配置会自动的转换成IOS XE能识别的格式,其中一些区别包括:
- VPN关键词会被VRF的术语所代替;
- 用全局路由表来表示VPN0;
- VRF Mgmt-intf(The Gigabit Ethernet Management interface is automatically part of its own VRF. This VRF, which is named “Mgmt-intf,” is automatically configured on the Cisco ASR 1000 Series Router and is dedicated to the Management Ethernet interface; no other interfaces can join this VRF.)在管理接口上默认启用,被用来代表VPN512。
控制层面
控制连接
思科SDWAN的vManage和vSmart控制器最初会和vBond控制器进行通讯并对其身份进行认证,vManage和vSmart会和vBond形成永久的DTLS连接,随后vManage会和vSmart之间建立并维持永久的DTLS\TLS连接。广域网边缘路由器也采用类似的方式接入网络,但是边缘路由器会断开和vBond的短暂链接,边缘路由器会和vManage和vSmart控制器形成永久的DTLS\TLS连接,下面的图标说明了这一过程:
到vBond的连接永远是采用DTLS方式的,默认情况下,连接到vManage和vSmart的连接也是DTLS的,但也可以在设备上将连接方式改为TLS,在安全控制协议配置中进行更改。如果一个设备的连接方式改为TLS,另一个设备的连接方式为DTLS,那么这两个设备之间的控制连接方式将使用TLS。更推荐使用TLS的方式进行连接,因为TLS用的是TCP协议,TCP协议有ACK确认包,可靠性更高。TCP是面向连接的,因此防火墙可以保存维持TCP连接的状态,允许返回流量,不用显示配置策略允许返回流量。
如果vManage和vSmart有多个核心(core)的情况下,vManage和vSmart的每个核心(比如说vSmart有2个CPU,也就是vSmart有两个核心。最多支持8个核心,也就是8个CPU)会初始化,然后建立控制连接到vBond(vBond只有一个核心也就是一个CPU),vManage和vSmart之间只有一个连接。如果vSmart有两个CPU,也就是有两个核心(core),那么vSmart和vBond之间会建立并保持两个完全控制连接,每个核心一个连接。如果vManage有4个CPU,也就是4个核心,那么vBond和vManage之间就会保持着4个完全控制连接,一个核心一个连接。vSmart和vSmart之间,vManage和vManage之间都只有一个控制连接,冗余的vBond之间没有控制连接。
WAN edge控制连接
在默认情况下,广域网边缘路由器会尝试在所有可用的连接链路上建立控制连接,在和其他控制器建立连接之前,会先在每个连接链路上,尝试去连接vBond,如果链路上有多个vBond,那么每个链路上只会建立一个vBond控制连接。
- 每个vManage核心(core)和每个vBond核心(core)之间会建立持久的DTLS连接;
- vSmart和vManage之间会建立持久的TLS或DTLS连接;
- vSmart控制器之间会建立全互联(Full mesh)的TLS\DTLS连接(每对之间一个连接);
- vManage集群的实例之间会建立全互联(Full mesh)的TLS\DTLS连接(每对之间一个连接);
- 每个广域网边缘路由器和vManage实例之间会建立TLS\DTLS连接,每个链路(比如4G,MPLS或互联网)上只有一个连接;
- 默认情况下,每个广域网边缘路由器和两个vSmart控制器之间默认会建立TLS\DTLS连接,每个链路一个;
策略
配置中心化策略
当在vManage的图形化界面上配置中心化策略时,有三个主要的概念:
- list,列表。列表用来将相关联的对象进行分类,因此你可以将他们关联到一个组中进行使用。列表在应用策略时,或者在策略定义中的匹配或操作中使用。可以为应用、color、数据前缀、策略、站点、SLA类型、TLOCs和VPN创建列表。数据前缀在数据策略中用于定义数据前缀,前缀在控制策略中用于在路由前缀上匹配。
- policy definition。策略定义,策略定义控制着控制和转发的各个方面。在策略定义内可以创建策略规则,指定一系列的匹配行为,按照顺序进行匹配。可以定义以下集中类型的策略:应用-路由策略,cflowd模板,控制-策略,数据-策略以及VPN-成员策略。
- Policy application。应用策略,策略被应用于站点列表。
编排层面
edge路由器上线overlay
\1. Through a minimal bootstrap configuration or through the automated provisioning (ZTP or PnP) process, the WAN Edge router first attempts to authenticate with the vBond orchestrator through an encrypted DTLS connection. Once authenticated, the vBond orchestrator sends the WAN Edge router the IP addresses of the vManage network management system (NMS) and the vSmart controllers. The vBond orchestrator also informs the vSmart controllers and vManage of the new WAN Edge router wanting to join the domain.
\2. The WAN Edge router begins establishing secure DTLS or TLS sessions with the vManage and the vSmart controllers and tears down the session with the vBond orchestrator. Once the WAN Edge router authenticates with the vManage NMS, the vManage pushes the configuration to the WAN Edge router if available.
\3. The WAN Edge router attempts to establish DTLS/TLS connections to the vSmart controllers over each transport link. When it authenticates to a vSmart controller, it establishes an OMP session and then learns the routes, including prefixes, TLOCs, and service routes, encryption keys, and policies.
\4. The WAN Edge router attempts to establish BFD sessions to remote TLOCs over each transport using IPsec.
- 通过最小启动配置或者自动配置(ZTP,Zero Touch Provisioning,PnP,Plug and Play)的过程,广域网边缘路由器(edge router)首先开始尝试对vBond进行认证,认证是通过加密的DTLS连接进行的。一旦认证成功,vBond会将vManage网络管理系统(NMS)和vSmart的地址发送给edge路由器,vBond也会将新的edge路由器希望加入域的情况告知vSmart和vManage。
- edge路由器开始与vManage、vSmart建立安全的DTLS\TLS会话,并且结束和vBond的会话。一旦edge路由器和vManage NMS(Network Management System)完成了认证,vManage会将配置推送给edge路由器,如果vManage上有这个配置的话。
- edge路由器尝试在每条链路上(4G,MPLS,互联网等连接方式)和vSmart建立DTLS\TLS连接,当edge路由器和vSmart认证完毕后,edge路由器和vSmart建立OMP会话并且学习路由(包括路由前缀、TLOCs<Transport Location,传输位置>、服务端路由、秘钥和策略)。
- 得个路由器在每条链路上,使用IPSec尝试和远端TLOCs建立BFD(Bidirection Forwarding Detection,双向转发检测)会话。
数据层面
vBond作为NAT促进器
所有的控制器或SDWAN的路由器,都不知道它们位于NAT设备之后,知道从网络外界连接的IP地址和端口,对于在SDWAN网络中成功立管理和数据层的连接十分重要。vBond在这个过程中扮演了重要角色,它的角色是STUN(Session Traversal Utilities,是一种网络协议,它允许位于NAT<或多重NAT>后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间建立UDP通信。该协议由RFC 5389定义。)服务器的角色,使得其他控制器和SDWAN中的路由器能够发现它们映射\转换的IP地址和端口号。SDWAN设备宣告这些信息以及TLOCs信息,使得其他SDWAN中的设备能够知晓这些信息,从而成功建立连接。
数据层面隐私及加密
edge路由器使用IPSec以及秘钥用来加密和解密数据,这样能确保edge之间交互的数据流量的安全性。在传统的IPSec环境中,IKE(Internet Key Exchange)协议用来在peer路由器之间加速秘钥交换的速度。这样交换秘钥使得创建的秘钥都是成对出现的,也就是一次创建出两个秘钥,如果在全互联(Full mesh)的环境中,假设有N台设备,那么每台设备需要设备管理$N^2$个秘钥交换以及(N-1)个不同的秘钥。在思科SDWAN网络中,为了更便捷的扩展网络的规模,思科SDWAN不使用IKE协议交换秘钥,因为edge路由器之间的认证已经建立完毕(IKE交换秘钥就是为了进行认证),这也就是前面相关概念部分中vSmart概念中提到的‘allowing for a very scalable, IKE-less architecture’,也就是实现一个可扩展性极佳、无IKE的构架。控制层面(已经通过DTLS\TLS实现了认证,加密,防篡改)用来传输经过AES-256加密的对称秘钥。每个edge路由在每一个传输链路上,在每个TLOC上生成一个AES秘钥,将此秘钥信息通过OMP路由数据包传输给vSmart,vSmart再将这个秘钥信息传递到所有其他edge路由器上。
默认情况下,秘钥的持续时间为24小时,每隔12小时会生成新的秘钥,新秘钥被发送到vSmart上,由vSmart传递给其他edge路由器,这意味着任何时候都有两个秘钥。当edge路由器切换到使用新生成秘钥的时候,上一个旧的秘钥依旧会保留12小时,这时候,使用哪个秘钥的流量都可以被接收。如果到vSmart的OMP会话中断了,edge路由器会持续使用之前已知的信息(包括配置、策略、路由以及IPSec秘钥)最多12小时,这个12小时是OMP优雅重启计时器到期的时间。两个秘钥(旧秘钥和新秘钥)使得网络肯定能够支持OMP12小时的优雅重启计时器,因为谁也不知道OMP会话什么时候出现中断。
从vEdge版本19.2、IOS XE版本16.12.1b开始,可以配置成对的秘钥,成对秘钥使用AES256对称加密算法,SDWAN路由器并没有和其他overlay上所有的路由器共享同一个秘钥,而是和传输路径上的路由器共享一个特殊的TLOC秘钥。
为了加密传输数据流,会使用一个经过改良的ESP(Encapsulating Security Payload)版本来保护数据包的payload负载部分。加密的算法使用AES-256 GCM(Galois/Counter Mode)也可以根据需要回退到AES-256 CBC(Cipher Block Chaining,密码分组链接模式)加密算法(在有组播的情况下)。可以配置认证算法(验证了数据完整性和真实性),它包含在TLOC属性中,这个属性会与vSmart进行交互。默认情况下,会同时配置AH-SH1 HMAC和ESP HMAC-SHA1算法,当配置了多个认证方式时,会选择两种方式中最安全的方法(AH-SHA1 HMAC)。
TLOCs
TLOCs,全称为Transport Locators,中文翻译为传输定位器(?),是edge路由器连接到广域网链路(4G、MPLS、宽带互联网等)的连接点,一个TLOC是唯一的,它被三元组(固定的system IP,color和封装方式
在默认情况下,edge路由器会尝试在每一条链路上尝试去连接每个TLOC,其中也包括那些属于其他链路上标记为其他color的TLOC,当用户在不同的地点有不同的互联网链路时,这样操作会很有帮助,因为它们之间应该直接相互通信。为了防止这种行为,可以在配置的时候加上‘restrict’关键词,可以和tunnel的color一起设定。加上关键词restrict配置后,可以防止不同color之间去建立BFD会话,通常这种配置会用在私有链路上,用来防止私有链路和公有链路之间建立连接。
下面给出了关键词‘restrict’在BFD会话建立之时的影响。左边是没配置restrict的情况,右边是在MPLScolor上配置了restrict的情况,这时MPLS TLOCs只和其他的MPLS TLOCs建立会话。
Color
color属性用来标识在edge设备上终止的单个广域网传输链路的抽象概念。color是静态定义的关键字而不是动态自由格式的标签。color很重要,因为它们定义了单个传输链路是公有的还是私有的。当color为metro-Ethernet(城域网),MPLS,private1,private2,private3,private4,private5和private6的时候,为私有颜色,私有颜色用在私有网络,或者用在传输链路终端没有NAT的地方;公有color为3g,biz-internet,blue,bronze,custom1,custom2,custom3,default,gold,green,LTE,public-Internet,red和silver。它们被用在公有网络上或者用在传输链路终端经过NAT的地方,无论是本地还是经过NAT。color决定了在通过控制平面或数据平面进行通信时,使用私有IP地址还是公有IP地址。
在edge路由器上,每一个TLOC都会和《私有IP地址:公有IP地址》这个IP地址对儿相互关联。、
- 私有地址是分配给SDWAN设备接口的,这个地址没经过NAT转换并且即使它的名字是“私有地址”,但也可以是在公网上可路由的公有IP地址;
- 公有地址是经过NAT转换的,被vBond所知晓的地址,这个公有地址可以是公有可路由地址,也可以是私有地址,没有NAT的话,SDWAN的公有地址和私有地址都是一样的。
公有\私有color之间的通信
当SDWAN设备和vBond设备进行通信和认证时,vBond在交互信息时就知道了和它通信设备的“私有地址/端口”以及“公有地址/端口”这些设置信息。上面提到的私有地址是分配给接口的本地IP地址,如果涉及NAT的话,公有地址是指经过NAT的IP地址。
当两个SDWAN设备想和彼此通信时,它俩都会使用private color的接口来进行通信,两端的设备都会尝试和对方的私有IP地址进行通信。如果有一端或两段都采用public color时,那么两端都会使用公有IP地址和对端进行通信。
需要注意的是,如果两端的Site ID相同,但使用了public color时,会使用私有地址进行通信。这种情况可能发生在edge路由器试图与位于同一站点的内部vManage或vSmart进行通信时,亦或是与位于同一防火墙后面的内部控制器通信时。
- edge路由器使用IPSec和其他edge路由器通信;
- edge路由器和vManage\vSmart\edge路由器之间使用DTLS\TLS连接;
- edge路由器和vManage\vSmart之间使用DTLS\TLS进行连接
BFD
BFD全称是,Bidirectional Forwarding Detection,双向转发检测。在思科的edge路由器上,在对等体\邻居之间,BFD默认被开启且无法关闭。它跨越所有传输链路,在IPSec隧道封装的拓扑中的所有edge路由器之间运行。BFD在echo模式下使用,这模式下意味着当BFD数据包被edge路由器发送的时候,接收到这个BFD数据包的edge路由器会不经过任何处理而将它直接发回。这样做的目的是因为,BFD协议是用来检测链路是否处于通畅状态,它也可以用来为应用感知的路由执行链路质量检测,例如丢包、延迟和抖动。BFD可以用来检测长时间断电(Blackout)以及短时间断电(Brownout)
隧道活性
Tunnel Liveliness,隧道活性。BFD默认每1秒(原文是1000 milliseconds/1 second,其实就是1秒,奇葩的写法,凸)在所有Tunnel上发送一次hello包,用来检测IPSec隧道是否UP。默认的BFD最大计时器为7,意味着如果一个一个tunnel连续丢了7个Hello包,就会被认为该Tunnel已经down了。BFD的Hello包的间隔和最大计时器可以在一对color上同时修改。
NAT
在设计SDWAN网络时,要格外小心分支机构使用的NAT类型,因为NAT类型可以影响站点是否可以建立连接并直接与对方通信。
所有的NAT类型都能建立映射,映射内容是IP数据包中的源IP地址、源端口、目标IP地址、目标端口。在后文通常的例子里,源NAT是为了将数据包中的真私有IP地址(符合RFC1918规则,Address Allocation for Private Internets),也就是源IP地址A,变成一个公有且可路由的IP地址Z,以便让Host A能够和基于互联网的服务器,Host B,通信。当Host B回给Host A的回包经过NAT时,目标IP地址Z会映射回初始的IP地址A,并且数据包会发送给初始的主机,Host A。
四种不同类型的NAT有着不同的行为模式:
- Full-Cone NAT。直译成中文就是全锥形NAT,这种NAT类型也被称作“一对一NAT”,它是受限最小的NAT类型,它将一个本地IP地址、本地端口,映射到一个公有IP地址和公有端口上,一旦一个NAT转换出现或是一个静态的一对一NAT进行了配置,任何外部主机(比如下图中的HostC和HostB)都可以通过这个NAT映射的IP地址和端口,给这个内部的主机发送数据。
- Restricted-Cone NAT。直译成中文是受限锥形NAT。这种NAT和之前的全锥形NAT十分相似,但受到一些限制。一旦一个内部主机A给一个外部主机B发送数据包,那么NAT为这个内部的IP地址和端口提供了转换,但只有外部的HostB能够通过所有端口给本地的HostA发送数据。
- Port-Restricted-Con NAT。端口受限的锥形NAT。该类型NAT和上面的受限锥形NAT很像,但限制了通信的端口号。当内部主机Host A发送数据包给外部主机Host B的端口X时,并且本地IP地址和端口发生了NAT转换,那么只有外部主机B(仅限于主机B的端口X)可以通过映射的NAT IP地址和端口向本地主机A发送数据。
- Symmetric NAT。对称NAT。该类型是受限最多的NAT类型,和上面的端口限制锥形NAT类似,区别在于只有外部的主机B的源端口X能够给本地主机A,可以通过NAT存储的IP地址和端口来发送数据。对称NAT的不同之处在于,每次主机A要和不同的目的地通信时,都会使用一个独特的源端口。对称NAT会引起STUN服务器的问题,因为STUN服务器学到的IP地址/端口映射是对另一个主机的不同映射。
SDWAN路由
Underlay VS Overlay路由
思科SDWAN网络分为两个不同的部分,underlay和overlay。underlay网络时物理网络基础设施,它将网络设备(比如路由器、交换机)连接在一起,并使用传统的路由机制在设备之间路由流量。在SDWAN网络中,它通常由edge路由器与广域网传输链路的连接,以及广域网传输链路本身,这两者组成。连接到underlay的网络接口属于VPN0,也就是传输VPN。在广域网传输链路上,连接到运营商网关意味着要配置静态默认网关,或者要配置诸如BGP或OSPF之类的动态路由协议。这些位于underlay网络的路由过程只限于VPN0上。主要目的是为了与其他edge路由器的TLOC相连通,以便于建立IPSec隧道,组成overlay网络。
使用underlay网络,横穿站点到站点的IPSec隧道,有助于形成SDWAN的overlay网络。OMP协议(Overlay Management Protocol)是一种基于TCP的协议,它与BGP协议类似,OMP协议为overlay网络提供路由。OMP协议运行在vSmart和edge路由器之间,控制层的信息也在此通过安全的DTLS\TLS连接进行交互。vSmart控制器在这里扮演的角色类似于路由反射器,它收到edge路由器上的路由,该路由经过处理且应用二者(vSmart和边缘路由器)之间的所有策略后,宣告给其他overlay网络中的edge路由器。
OMP协议
OMP概述
OMP在edge路由器和vSmart之间运行,并且在vSmart之间形成全互联的关系。当DTLS\TLS的控制连接建立以后,OMP会自动形成。OMP邻居使用system IP建立,即使存在多个DTLS\TLS连接,也只能在edge路由器和vSmart控制器之间建立一个邻居会话。OMP协议交换路由前缀、下一跳路由、秘钥以及策略信息。
OMP宣告以下三种从WAN路由器到vSmart的路由:
- OMP路由或者叫vRouters。指的是从WAN的edge路由器的本地站点或服务端学到的前缀。这些前缀以静态路由或直连路由的形式出现,或者在OSPF、BGP或EIGRP协议中生成后重分布进OMP路由协议,因此它们可以在overlay中传播。OMP路由宣告的属性中包括TLOC信息, origin, origin metric, originator, preference, site ID, tag, and VPN,这个举动类似于BGP路由协议中的下一跳IP地址。一条OMP路由只有在它的目标TLOC处于活动状态时才会装载进转发表中。
- TLOC路由。TLOC路由不仅向WAN链路宣告TLOCs连接情况,还和其他属性,比如私有TLOC、公有IP地址、carrier, preference, site ID, tag, weight还有秘钥信息。
- 服务路由,service route。服务路由代表着连接到广域网edge本地站点网络的服务(firewall, IPS, application optimization, 诸如此类.),可以提供给其他站点用于服务插入(也就是在普通的网络上提供防火墙IPS这种服务)。此外,这些路由内包含着起源的system ip、TLOC和VPN-IDs,VPN标签随着这种路由类型的update包发送,告诉vSmart控制器,在远程站点提供哪些VPN服务。
在默认情况下,OMP只会宣告最佳路由或负载均衡情况下的路由。建议在vSmart控制器上激活send-backup-paths参数,这样配置会让OMP宣告一个特定前缀的其他可用但非最佳路径。除了促进路由收敛之外,这么做也让edge路由器基于TLOC可用性而做最佳路径选择。
此外,OMP只会宣告一个路由前缀的4条负载均衡路径,这样宣告可能在某些设计环境中不够用,比如一个站点使用了双edge路由器,每个路由器连接了两个互联网传输链路的情况下,4条负载均衡路径就不够用了。这种场景下,建议将vSmart控制器上将OMP配置上‘send-path-limit’参数或者将Number of Paths Advertised per Prefix设置到最大值,也就是16。‘send-path-limit’参数配置后,选高中包括了最佳路径以及所有备份路径。
要注意的是,默认情况下edge路由器只会加载四条负载均衡路径,如果想增加这个数字的话,在edge路由器上使用‘ecmp-limit’命令。其他类型的路由(包括外部OSPF路由在内)需要显示配置(explicitly configured)。对于vEdge路由器来说,OMP路由分配的管理距离是250,对于IOS SD-WAN路由器来说,管理距离是251,因此本地站点的路由优先。
优雅重启
如果一个OMP邻居消失了,OMP的优雅重启允许其他OMP邻居在短时间内继续工作。当edge路由器和vSmart失去连接后,edge路由器能够继续使用最后得到的路由信息来转发数据。默认的OMP优雅重启计时器的值为12小时,最大可以设置为604800秒,也就是168小时,也就是7天。IPSec密钥交换计时器默认设定的时间是24小时,尽管两个计时器都能自行进行设置,但IPSec的密钥交换计时器的数值,最小必须为OMP优雅重启计时器的两倍时长。因为vSmart控制器会将IPSec密钥分发给edge路由器,如果和vSmart的连接中断,任何在优雅重启计时器结束前的IPSec密钥交换都会导致丢包。