孙祥安
(上海宽带技术及应用工程研究中心,上海 200436)
互联网服务提供商面临流量需求日益增长的挑战,高级流量工程(Traffic Engineering,TE)技术是克服这一挑战的有效方法。分段路由(Segment Routing,SR)是实现TE的一种相对较新方法,文献[1]对SR在运营商网络中的应用做了深入研究。软件定义网络(Software-defined Network,SDN)是一种新的网络架构,采用控制面与数据面分离的方式对网络流量进行灵活调度,结合SDN与SR技术可以对网络进行更为细粒度的灵活调度[2]。网络研究与运维人员研究这一新技术,往往受限于硬件设备及网络环境,因此一个功能全面、简单易用以及贴合实际的网络仿真环境至关重要。本文尝试以下一代仿真虚拟环境(Emulated Virtual Environment-Next Generation,EVENG)作为仿真平台,对SR-TE和SDN技术进行实验,提供一个完整的配置、测试方案。
EVE-NG继承了Dynamips、IOL以及KVM且兼容许多厂家的各类网络设备,终端设备也可在上面通过QEMU以虚拟机的形式运行[3]。EVE-NG可以通过ISO镜像文件在物理机上安装部署,也可以部署在VMware等虚拟机上。部署完成后上传网络设备镜像,然后通过网页浏览器登录以拖拽的形式进行组网即可进行网络实验[4]。
基于边界网关协议的链路状态(Border Gateway Protocol Link-State,BGP-LS)是一种简单、高效的网络拓扑实时状态搜集方式,BGP-LS有3种路由类型,用于传递节点、链路及路由前缀信息,使用时将网络中的某一节配置为路由反射器与控制器建立会话,这样控制器可以很容易地还原出网络拓扑,还降低了控制器的计算需求[5]。SR-TE技术通过分段路由的标签列表来进行流量工程,具有SR Tunnel和SR Policy两种实现方式。隧道接口技术是对传统流量工程协议的一种继承,实现简单也能够满足大部分的业务需求,但是存在着引流、接口资源占用以及负载均衡等问题[6]。SR Policy通过三元组信息(头端、颜色、端点)来表示一个段列表,可以实现按需自动生成、自动引流及负载均衡等功能,SR Policy将网络能力与网络服务融为一体。路径计算单元通信协议(Path Computation Element Protocol,PCEP)是路径计算单元(Path Computation Element,PCE)和路径计算客户端(Path Computation Client,PCC)间的通信通道,从最初的资源预留协议(Resource ReSerVation Protocol,RSVP)添加了大量SR-TE的扩展,基于PCEP可以使得广域网以SDN的形式流量工程管理[7]。
Cisco XR流量控制器(XR Traffic Controller,XTC)可以认为是一种PCE服务器,通过思科XR系列的路由器操作系统实现,网络设备作为PCC向XTC控制器上报策略状态,XTC控制器根据全网信息下发段列表用于流量转发。OpenDaylight是一种开源SDN控制器,采用Java的开放服务网关协议技术(Open Service Gateway Initiative,OSGi)实现,使用Maven进行代码管理,易于扩展,拥有BGP-LS和PCEP等丰富的南向协议扩展插件,可以在上面很容易的开发、集成各类控制层业务应用,也易于开发和开放北向用户操作接口[8]。
参照SR技术的几种典型应用场景,设计实验网络拓扑如图1所示[9]。实验所选用的网络设备皆为思科设备,CE1和CE2使用Cisco IOS I86BI 15.4,PE1和PE2使用XR7.2.2,测试SR Tunnel场景使用6.3.1版本,P1和P2使用XR 6.3.1,SR控制器使用OpenDaylight 0.12.3,XTC控制器与PE节点保持一致。4个模拟核心网设备(两个PE、两个P设备)上配置ISIS路由协议进行路由通告。假设CE1和CE2两个设备是一个公司两个地方分部的接入设备,在PE1和PE2上创建VPN1,两个接入设备同属VPN1。在两PE设备间建立BGP会话传递两个接入设备的路由表信息,PE之间通过IBGP连接,PE与CE之间通过EBGP连接,路由相关配置可以参考文献[10]及XR路由器设备配置手册。完成上述配置工作后,重点讲解SR-TE实验过程,SR-TE转发技术试验在核心网完成,通过合理的引流策略为CE租户提供差异性的用户体验。
图1 SR-TE组网图
SR-TE有两种技术实现方式,分别为SR Tunnel和SR Policy,本文对这两种技术实现分别从路径建立和流量引入两个方面进行实验。
SR Tunnel的配置及使用方式与RSVP Tunnel一致,在PE1上配置一条严格显式路径PE1-P1-P2-PE2,然后通过建立隧道时候引用该路径,具体配置信息如图2所示。path-option中segment-routing选项标记代表是否使用SR技术,无则代表使用RSVP技术,采用自动路由宣告引流方式。
图2 Tunnel创建所需的关键配置
完成PE1的隧道配置之后在CE1设备上ping设备CE2,结果如图3所示。图左为通过RSVP Tunnel到达PE2,图右通过SR Tunnel到达PE2,通过每跳的IP地址可以确认两种的转发路径是一致的。但是基于标签的转发方式不同,RSVP Tunnel在每一节点需要进行标签交换,即每次都弹出上一跳标签再压入下一跳标签,SR Tunnel会在头结点压入整条链路标签,在下游节点进行逐条弹出然后转发。
图3 RSVP标签和SR标签引流对比
实验依然是让CE1网络联通CE2网络,通过PE2节点配置路由策略(图4),在BGP路由的传递过程中,将目的地为2.2.2.2的路由条目染色为1002。在PE1节点查看路由信息且配置SR策略(图5),可以查看目的地为2.2.2.2的路由条目携带color属性1002。SR策略配置过程与隧道接口配置类似,分为路径配置和路径引用两步,路径同样为PE1-P1-P2-PE2,但是这里使用节点标签来定义标签路径。
图4 通过Route policy进行路由染色配置命令
图5 通过SR Policy进行因引流配置命令
SR Policy基于业务路由进行自动引流,无需额外配置且对转发性能没有影响,采用Wireshark进行抓包测试,测试在CE1与CE2的连通性来查看报文封装情况(在CE1执行ping 2.2.2.2 source 2.2.2.1),在PE1节点的G0口抓包,结果如图6所示,其中框出来的报文信息为逐跳标签值。
图6 SR Policy引流数据包封装
利用SR-TE的SDN特性,可以使用控制器进行灵活的网络流量管控,实现应用驱动的网络管理,本节使用开源OpenDaylight控制器和XTC控制器分别进行SR-TE试验,设备与控制器之间通过PCEP协议通信。
这里仅对控制器主动下发SR Tunnel场景进行测试,利用OpenDaylight作为PCE端,网络设备作为PCC端,设备的配置信息及隧道创建消息如图7所示,通过PCEP的Initiate消息(消息号12)创建路径[11]。报文中的END-POINT对象填充了路径的首尾地址分别为11.1.1.1和22.2.2.2,ERO对象是整条报文最重要的对象,指明了隧道路径以及对应的标签(已在图7中用粗下划线标出),创建之后的信息查看命令与手动创建的隧道查看命令一致。
图7 PCEP配置及通过PCEP主动创建隧道
思科的路由器设备既可作为网络设备进行流量转发,也可以作为控制器来计算路径和管理链路状态,使用XTC控制器分别对SR Tunnel和SR Policy进行试验。图8中的配置分别为控制器和设备侧的相关配置,PCC侧隧道不再引用显式路径,而是指定PCE进行动态算路。报文为隧道状态报文,框出来的5个部分为隧道五元组信息。
图8 XTC控制器通过PCEP建立SR Tunnel过程
通过按需下一跳(On Demand Next-hop,ODN)配置进行SR Policy实验,在ODN模板中指定使用PCEP进行动态算路,即可使用XTC控制器进行路径创建更新(图9),报文粗线框标出的是PCEP报文,内部细线框标出是更新路径的节点地址。
图9 XTC控制器通过PCEP建立SR Policy过程
SR-TE是一种高级流量工程技术,通过计算和建立不同虚拟路径传输不同网络业务流量来优化网络性能,在设备和网络等条件受限的情况下,可以通过虚拟化环境进行测试及研究。文中通过详细的组网及配置过程演示了SR-TE的使用方法,PCEP服务器通过BGP-LS等协议搜集网络的全局信息,从而可以SDN形式对网络资源进行最佳管理和使用。下一步工作利用优先级、带宽、度量值以及亲和力等属性开发控制器,在网元设备与控制器之间建立更好的通信与管理机制,研究设备功能的同时进行控制器的业务应用开发。