软件定义网络在携程的运维实践

社区广播:运维派(Yunweipai.com)是国内最早成立的IT运维社区,欢迎大家投稿,让运维人不再孤寂的成长!

作者简介

郑升

携程网络高级工程师

大家好!今天由我来给大家分享一下软件定义网络在携程的运维实践。我讲的内容主要分为两块:

  • 软件定义网络在携程的来龙去脉
  • 软件定义网络在携程做了哪些事情

先来看一下携程数据中心网络的特点。

第一个特点它是一个传统网络。携程整个数据中心的架构都是已经使用了八、九年的网络,是一个非常传统的老的架构。用户在网络上的使用习惯,应用在网络上的部署模式以及网络上的这种安全的分区,还有网络对于携程整个流程系统的适应性都有点根深蒂固,你要轻易改变它是不容易的。而且携程不像一些大公司,经常会有一些新的项目出来、新的业务,那边20个机柜上到那边试一下,然后那20个机柜给你什么样的尝试,这种机会很少。所以我们这个网络是延续了传统的架构。

第二个特点是要求灵活敏捷。携程数据中心它对网络的灵活性要求很高,虽然数据中心数量不多,但是每个数据中心数量都非常大。

  • 首先,携程网络是以防火墙作为安全集中策略的,所以防火墙划分成很多的区域,不同的业务系统会有不同的安全区。
  • 其次,携程数据中心扩容是按需扩容,每个月都有采购、到库然后服务器上线,上线以后它会说我这个服务器是这个安全级别的服务器,那个服务器是那样的安全级别。甚至是有的服务器需要IDS模式或者是固容模式。这些服务器又散在不同的机柜当中,还会有虚拟机。所以网络这边不会因为你每一次上线要求而改变这个网络,所以我们要灵活性地适用。
  • 第三,是变更繁重,服务器到库,服务器的端口,服务器的应用发生变化,你要切换网络等有非常多的变更。而且这些变更时间非常紧,通常一个工作日,所以网络工程师的运维压力非常大。尤其是底层基础架构的变更,你做得多以后会出糗,做得大了还会影响挺大的。

运维实践

从上图来看,这就是三层的核心、汇聚、接入。针对以上三个特点,携程对于软件定义网络的需求特别迫切,携程对于软件定义网络的理解,我们把定义网络做成一个网络运维辅助工具,希望这一工具帮助我们完成两件事情:

  • 自动化,让它与携程历史久远的流程系统对接,把那些繁杂的劳动自动执行,把工程师从无聊的工作中解放出来,能够做一点有意义的事情。
  • 利用软件设计工具集,能够提供非常丰富的工具,让网络工程师在运维过程中有一个监管的工具、运维排障的工具。

首先我们对设计的要求是高效、准确、灵活。高效是要快很多,然后它必须是准确的,我们在这个工具里面设计了很多防呆、防错的机制,即使输入有错,也不会因为输入错误给网络下发了错误的参数而导致一级事故这种事情,我们是不能容忍的。然后它是灵活的工具,也许底层网络有变化,但是不能因为底层变化而重新买一些代码,它需要有一些灵活性。

对于工具具设计的要求是希望他们变成网络工程师的好榜首。这些工具都是网络工程师根据日常工作中的经验总结设计出的工具,我们的网络工程师非常行,他们在网络技术方面都很精。有些甚至具备自己码代码的能力,所以说由他们设计,按照自己设计出来的工具是适合的,功能非常强大,都是根据自己工作中总结出来的。然后它的界面是简单易用,最后一个是要准确可靠,网络工程师只需要关注自己输入的参数,需要关注底层的结构和数据校验的问题,这样网络工程师利用这些工具策略就会高很多。

工具具设计

这是我们的控制器,名字叫Netranger,结构是这样的,中间是控制器,向被是提供了用户界面,用户主要指网络工程师,在这个结构上进行网络变更和信息收集等操作。另外针对流程系统有一个API  接口,自动与流程系统(Remedy)交互,进行订单自动化。南下是协议,最主要使用的是Netconf和SNMP,90%的功能是由NETCONF完成,然后还与监控平台(Netcons、SNMP、Syslog)对接,帮助他们驱动我们的控制器来完成一些功能。

Netranger

Netranger系统功能,最主要的是信息采集。你要做网络要知道这个网络上发生了什么事情,我们测试了很多家的产品,大多数的控制器并不关心网络现在什么样子,只是定义网络。那种东西在网络工程师的角度是不可接受的,第二个是指令下发,如果它不能下发指令你也没办法控制网络。包括设备配置管理、业务流程对接、操作审计、统计报表。Netranger基于Python来开发的。

第二个Netranger主要功能介绍,它为我们做了什么事情。先介绍的第一个功能是服务器网络端口操作自动化,也就是工作当中最繁重的任务自动化。这是服务器上架上线的流程,具体的流程下一场服务器专家为大家介绍。我们这块与网络相关的两块工作,网络端口开启和生产网络的切换两项工作。

大家可以看到这个工作量是  巨大,一批服务器任务过来,网络工程师通常要在1—2个工作日完成这么大服务器上架工作,因为服务器有很多的网口,网络工程师要在一个工作日内完成成百上千的服务器交换机端口的开启,远程切换,甚至有时还有服务器下线,还要关闭端口,一个工作日完成这么多的事情,你要让做是不可能的。

服务器

第三个服务器网络端口操作自动化。设计非常简单,首先要和流程系统对接,因为所有的参数从系统过来,然后拿到参数做校验,检查端口当中每一个是否满足深线的要求。有些传过来是错误的,本来这个端口在线上还要上线,就会造成故障。校验完在合适的时间把这些配置下发到网络设备上,通过Netconf协议,这是我们工作中总结出来的,这样的话万一造成故障影响比较小,但是事实从来没有造成过。然后Netranger上线以后完成了这么大的操作,6万多的端口,然后这样大家就可以看到前面说的变更繁重什么概念,没有这个东西完全搞不定。

服务器网络端口

交换机上线自动化,保障交换机基准配置一致性。包括AAA、LOG、STP、PORT,运维过程中自动的高唤,最终也是最主要的,它要使工程师远程操作,而不是过去一个工程师跑到现场到交换机上打一堆标签说不能做,我们让它变成远程自动化的东西。

这是我们自动化上线的一个流程,首先有软件工程师在提供的NetrangerWeb  UI上面制订布线计划,分配设备参数,现场工程师按照布线计划完成设备上架布线,完成了计划和布线或者是参数,就会传递给Netranger,Netranger根据参数生成配置。现场的交换机上线,也会有交换机的完成和配置的获取这样一个工作。

当Netranger校验是正回的情况下,把上行的接口,包括上行的下一个接口打开进行运行。上线以后会通过收集一些信息核对你现在的沿线和你之前布线计划是否一致,如果不一致的话会报警或者是关闭不一致的接口。这样的一个工具帮助网络工程师在一个工作日完成大量的交换机上线,虽然我们没有尝试过多少,但是你随便两百台它是能完成的。

这个是我们上线的数量,不多,这不是我们上线设备不多,而是我们购买的某些厂商的产品由于某些特殊技术不需要我们这个系统,实际上我们的数量是非常大的。

运维

Netranger在网络管理与网络安全方面的。携程是只用防火墙集中安全策略部署的点。所以网络被它在逻辑上分成很多的安全区域,我们为了达到灵活性的问题。我们使用虚拟路由器,虚拟路由器与安全区域进行一一关联。

服务器上线只需要加入该虚拟路由器下的网端,就可以进入你所定义的那个安全的区域。我们设计的这一工具就要完成网络管理,虚拟机路由器管理,电子网的管理,还有防火墙安全区域和  VRF的关联,最终实现路由自动化部署和网络防火墙安全的自动化。

先看看网络我们做了什么,第一个是网络配置可视化,我们首先收集信息,现在数据中有一些什么样的网络配制包括vlan、接口、VRF信息。接下来就完成配置的自动化,网络工程师要给数据中心做配置,是基于每个数据中心来做的,如果我们要加一个Vlan,按照以前的做法,是跑到数据中心去打你的Vlan,现在通常携程是有400个机柜,你让网络工程师一个个去打,浪费时间不说,还不能保证一致性。

现在只要在Netranger界面上输入,可以保证每一个的配置是一致的。比如说包括Vlan的管理、VRF的管理,以及IP网关的管理。待网络的自动化完成,剩下的事情就很简单与网络安全的区域关联,只需要网络管理员在Web界面上将安全区域与VRF建立关联关系,剩下的接口、路由就可以完成关联。最主要的是下面张图,我在VRF创立一个新IP自动,在防火墙和其他关联路由器上,相关静态路由会被推上去。

网络安全

IP路径发现的一个工具。由于携程网络中大量使用VRF,导致实际的发生的路径与物理拓扑上的路径是不一致的。这样导致你排障时非常讨厌,某两台服务器之间有什么访问的故障,然后你去排障,在物理上你看不出什么,网络工程师是登录IP一个个去看,但是费时间。

所以我们做了这个工具让网络工程师一下子发现这个路径是什么样子,比如说是否穿过墙了?实际的方案是用Netranger从所有的防火墙和路由器上搜集建立表,网络工程师需要查的话只需要搜一下,然后Netranger搜索这样一个路径以图形的方式展现出来,所以网络多路径对它来说也不是问题。

这个工具帮助我们实现运维过程中排障的自动上线。实际上工程师还会知道路径防火墙上面,有没有防火墙策略与用户的需求相匹配。

IP路径

在Netranger当中有一个模块可以帮助我们完成SYSLOG的分析与告警。设备发出SYSLOG,然后有一份数据会给到,然后根据网络工程师定的策略,将不同优先集的报警以不同方式处理。一些会以短信的方式,一些以邮件的方式。

网络工程师收到邮件以后通过Wew界面转到Netranger上看就会发现很多的事情。这是我们的界面,网络工程师筛选不同级别的信息,可以调整时间显示所有时间段内的SYSLOG,在这里调整报警规则和屏蔽一些告知。

SYSLOG分析

最有趣的是知识库,根据我们SYSLOG的报警和排障的经验,当某些与知识库匹配的时候,网络工程师会点详情,知识库里的内容就会指导他下一步怎样做。上面是现有的功能,我们正在做的是Netranger上的可视化,我们要做网络性能分析。在性能分析的前提下,根据性能分析的结果对网络进行优化。

网络性能

我介绍了携程的这样一个产品叫Netranger,给大家看了它实现的功能、自动化、网络管理、网络排障工具和分析告警功能,以及我们还将进一步实现网络可视化。

文章出处:高效运维

网友评论comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注

  1. it说道:

    郑升,靠cisco的回扣养家的。还在大会上变相替cisco做广告。

Copyright © 2012-2017 YUNWEIPAI.COM - 运维派 - 粤ICP备14090526号-3
扫二维码
扫二维码
返回顶部