SDN(SoftwareDefinedNetwork)大家应该不陌生。SDN是一种新型的网络架构。其设计理念是将网络的控制平面与数据转发平面相分离,实现可编程控制。十多年前,美国斯坦福大学NickMckeown教授团队在研究中意识到传统网络存在的问题,提出了SDN的概念。开辟了软硬件分离之路,从而激发了网络产业的创新活力。如今,许多公司都在推出SDN产品和解决方案。但要在短时间内掌握其中的技术细节并不容易,因为SDN不仅是技术上的突破性变革,更是网络系统认知和方法上的变革。下面的文章暂时不对SDN进行过多的描述,只是用一些相关的“关键词”来反映网络行业的新趋势。抽象我们暂时抛开概念,想象一下汽车。我们都知道汽车的系统有多么复杂:刹车系统、动力系统、气缸、压缩、排气、润滑、冷却……然而,驾驶者并不需要知道详细的结构,只需要知道变速杆、刹车踏板,只需油门、方向盘、控制屏等少数工具,即可轻松驾驶汽车。因为汽车把一切都“抽象”了,底层所有复杂的部件都被抽象成了顶层的简单工具。简而言之,汽车可以被认为是一个抽象的实体!让我们再举一个简单的例子。假设A公司要求CEO的计算机必须具有最佳的Internet访问权限。为了满足这个需求,工程师必须检查CEO的电脑连接了哪些设备,分配了多少IP,经过了哪些路由器,是否有防火墙策略……也就是说,工程师必须是非常清楚实现这个简单需求的网络结构和模型。如果一个司机想要汽车转弯,他需要做的就是转动方向盘,而一个想要“驾驶”网络的工程师必须对“网络基础设施”有透彻的了解才能工作。在复杂的网络和IT系统基础设施中,没有抽象操作的“方向盘”,这对IT基础设施运营来说是一个挑战。Underlay/Overlay相信网络工程师对这个名词应该非常熟悉。Underlay是由以太网协议、路由协议和VLAN协议驱动的由交换机、路由器等设备组成的物理网络。Overlay是一种虚拟网络,它使用网络虚拟化在物理基础设施之上创建逻辑连接网络。常见的overlay协议有VXLAN、NVGRE、GRE、OTV、OMP、mVPN……Overlay实现了控制面和转发面的分离,这也是SDN的核心理念。大多数SDN解决方案都需要底层网络基础设施作为Underlay,然后将Overlay虚拟化。这是为了帮助“抽象”网络系统,使其易于管理和操作、易于扩展以及易于执行网络策略。以前的Overlay协议是为了解决网络中某一部分的问题,尤其是VPN,后来的Overlay协议是为了给校园网、广域网或者数据中心创建一个Fabric。Fabric了解Fabric对于理解如何构建SDN有很大的帮助。Fabric有很多不同的含义:首先,Fabric是指网络系统作为一个单一的实体,不管内部是路由器、交换机、防火墙,还是策略、路由、安全等。Fabric网络可以大致理解为一个核心交换机集群,为计算基础设施、物联网基础设施、终端设备和用户提供连接。Fabric的第二个含义是Overlay网络。例如,SD-WAN网络由多个路由器组成,这些路由器通过Internet将VPN连接在一起,从而创建一个Fabric网络。第三,Fabric也指具有强大处理能力和拓扑同步的网络系统。在三层网络架构(核心网/分布网/接入网)中,增加一个网络节点需要考虑备份、上层设备容量和上行带宽。对于Fabric,增加网络节点有助于提高整个系统的处理能力和带宽。数据中心的Leaf/Spine模型就是一个例子。可见性可见性对于在SDN中执行策略非常有帮助。假设公司A的用户遇到网络连接速度慢的连接问题。当IT部门检查和测试连接时,似乎没有问题,所以他们不知道问题出在哪里。B公司也有类似情况。IT部门经过排查,确定是由于网络拥塞导致连接阻塞,发现X应用占用带宽造成拥塞。此外,该应用程序从计算机1连接到服务器2并由用户Y使用...因此我们可以说公司A在网络系统上的可见性较低,而公司B在网络系统上的可见性较高。可见性可以理解为4W1H——谁、什么、哪里、何时以及如何。SDN网络具有非常高的可见性,可以通过定义新技术、新协议、新属性来实现简单、快速、安全的策略。网络可编程性网络可编程性可以理解为网络系统像软件一样的互操作性。例如:A公司有一个非常庞大的网络系统,但已经运行了很长时间,IT部门需要对系统运行过程中出现的冗余配置进行审查和删除。因此,要求网络工程师执行以下操作:“关闭交换机上超过一个月未工作的端口”。如果网络系统有上百台交换机,这项工作会耗费大量时间,而且容易出错。网络工程师将执行的工作可能包括以下步骤:1)系统中所有交换机的统计。2)登录各个交换机,显示各个端口的状态以供查看。3)如果一个端口宕机,并且超过1个月没有相关日志,将采取以下操作:关闭端口记下端口描述4)对交换机上的所有端口连续执行此操作。用编程语言执行上述操作可以表示为:forswitchinmy_network:forinterfaceinswitch:ifinterface.is_down()andinterface.last_change()>thiry_days:interface.shutdown()interface.set_description(“InterfacedisabledperPolicy”)只需一个简短的命令就可以解决耗时的工作,更重要的是,它具有很高的准确性,不会出现人为错误。但是执行上述操作(以及许多其他自动化工作)需要更改网络架构以创建可互操作的可编程网络系统。构建SDN网络的目标之一是网络可编程性。目前,网络正朝着处理能力强大、易于管理和扩展的方向发展。SDN对控制器进行集中管理和决策,以全新的方式重构网络,满足网络可编程性,实现网络自动化。.本文希望通过一些关键词的解释,让读者对互联网行业的趋势有一个大概的了解。
