可编程网络自动化
赵泽宇 广域云网产品线
关键字:SDN OpenFlow
1. 网络行业发展趋势
1.1. OpenFlow
OpenFlow是一种允许网络设备的控制平面与数据平面分离的协议。控制平面是网络设备的大脑,数据平面是起作用的硬件或者特定于应用程序的ASIC。
整个系统架构如下:
OpenFlow是一种底层协议,可以作为与HW之间的直接接口,指导设备如何转发流量。OpenFlow不与管理平面属性交互。OpenFlow支持更多目的地址,能够更精细地控制流量转发路径,并且性能不错。在过去二十多年间,网络管理技术远远落后其他技术,无法以更现代的方式管理大量的设备,过去从上个世纪90年代到这个世纪前10年,我们看到配置方式几乎没有变化。(变化就是从Telnet变成了SSH),这也许就是Martin Casado(OpenFlow作者)发明OpenFlow的原因。
1.2. 软件定义网络
那么OpenFlow就是软件定义网络吗?是,但不全是。想给软件定义网络下个定义似乎很难,就像云计算一样,我们不妨换个思路,看看一些被认为是软件定义网络(SDN)的技术和趋势。
➢ OpenFlow
使用OpenFlow协议带来的好处是控制平面和底层虚拟以及物理设备将独立于厂商,然而实际情况更加复杂,由于标准更新速度以及对独特增值功能的需求,实际使用OpenFlow的厂商都开发了OpenFlow的扩展,但是这些扩展是否未来能被纳入OpenFlow标准有待观察。使用OpenFlow,可以精细控制网络流量,比如google使用OpenFlow开发的B4将其广域网络效率提升到接近100%。但是对于大多数其他的公司,是否有能力做就很难说。
➢ 网络功能虚拟化
网络功能虚拟化(NFV)这个概念并不复杂,就是将传统用硬件实现的功能通过软件实现,比如防火墙、各类软件负载均衡器等等。将硬件设备拆分为软件(虚拟设备)更加方便管理、升级,而且基于软件的解决方案真正实现了用多少,付多少的横向扩展模式,降低了试错成本。
当然,带来好处的同时,也有一些困难,比如你要重新思考网络是如何架构的:如果有个一体化防火墙(FW),那么所有数据流都会经过这个FW,也就是说需要包括所有的应用程序和用户。如果不是所有,则需定义一个子集。在新的模型中,可以部署多个虚拟FW,就是一个应用程序或者租户就有一个FW,而不是以往的单个FW。这样,每个FW或是其他服务设备的错误域就会变得很小,如果需要做出修改或者发布新的应用程序,无须对其他应用程序或者租户的FW做出修改。
另外一个重要因素,很多厂商没有很积极地销售虚拟设备方案。因为厂商在此前的几年里一直有硬件业务,那么更换到以软件为主导的模型将是一个很大转变。因此,很多厂商会限制基于虚拟设备的技术的性能和特性。
➢ 虚拟交换机
如今市面上常见的包括VSS、VDS、Nexus 1000V、AVS以及OVS。它们都是基于软件的交换机(vSwitch),位于hypervisor内核,用于提供VM(现在包括容器)之间的本地网络连通性。vSwitch在网络行业前进的过程中是极其重要的。vSwitch在数据中心的内部创建了一个新的边界。网络边界不再是硬件定义的灵活性有限的TOR交换机。由于新的边缘是基于软件的,因此能够更轻松地在全网分发策略。
➢ 网络虚拟化
网络虚拟化指的是基于叠加的软件解决方案。比如VMware的NSX、Juniper的Contrail。这些解决方案的一个主要特点是基于叠加协议,比如用于建立基于hypervisor的VM之间连通的VxLAN。这种连通和隧道技术为位于不同物理主机的VM之间提供了独立于物理网络的2层邻接关系,也就是说物理网络可以是2层,也可以是3层,或者是两者的结合。其结果是一个与物理网络解耦的虚拟网络,旨在提供选择性和灵活性。
➢ 设备API
在过去的几年,厂商开始意识,CLI已经无法满足需要,而且CLI严重的拖累了运维。主要痛点在于设备无法返回结构数据。这意味着脚本从设备得到的数据都是原始文本格式,你得单独编写脚本解析文本,从中提取正常运行时间或者操作系统版本等属性。现在厂商已经逐渐向API驱动的网络设备迁移。有了 API,无须再去解析原始文本,因为网络设备返回的是结构数据,这大大减少了编写脚本所花费的时间。在网络场景中,最先流行起来的一个 API 是出自 Arista Networks的 eAPI,这是一套基于HTTP的API,使用JSON编码的数据。从Arista开始,我们看到Cisco已经在特定平台宣布了Nexus NX-API和NETCONF/RESTCONF。
2. 可编程网络自动化
2.1. 为什么要实现网络自动化
简化架构
确定性结果
业务敏捷性
2.2. 网络自动化类型
设备配给
数据采集
迁移
配置管理
合规性
报告
故障排除
2.3. 应用程序接口
SNMP
SSH/Telnet和CLI
NETCONF
RESTFULAPI
3. 参考
1.《Network Programmability and Automation Skills For The Next-Generation Network Engineer》