searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

可编程网络自动化

2023-05-24 02:19:05
43
0

可编程网络自动化

 

赵泽宇 广域云网产品线

 

关键字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》

 

0条评论
作者已关闭评论
赵****宇
1文章数
0粉丝数
赵****宇
1 文章 | 0 粉丝
赵****宇
1文章数
0粉丝数
赵****宇
1 文章 | 0 粉丝
原创

可编程网络自动化

2023-05-24 02:19:05
43
0

可编程网络自动化

 

赵泽宇 广域云网产品线

 

关键字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》

 

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0