
一、重点SDN接口协议原理OpenFlow协议介绍、NETCONF协议介绍、RESTful协议介绍、SNMP协议介绍Overlay技术网络虚拟化的发展、Overlay基础概念与分类、VXLAN技术基础BGP-EVPN协议EVPN技术的产生背景、EVPN技术原理、EVPN控制平面介绍、EVPN转发平面介绍SRv6协议简介SRv6技术背景、SRv6基本原理、IGP对SRv6的扩展、SRv6基本配置二、SDN与SDN接口协议简介1、SDN技术 --- 软件定义网络SDN技术背景网络发展迅速、流量爆炸性增长、传统网络架构固定限制、传统网络设备控制平面与转发平面紧耦合等引起运维管理难、业务部署慢、创新周期长系统复杂的问题理想中的未来网络设备应该秉持开放合作的精神在硬件和应用之间构建出对上和对下的标准接口从而实现网络的快速创新和发展SDN概念软件定义网络并非一个具体的技术而是一种网络的设计理念。这种设计理念将将网络规划成了各个组成部分包括软件、硬件、转发平面和控制平面以及各个部分之间的关联互动关系SDN技术的原理控制平面与转发平面分离由控制器集中掌握全网信息、统一算路通过南向接口协议给交换机/路由器下发转发规则上层通过北向API调用网络实现集中管控与可编程SDN特点控制平面与转发平面分离集中化的网络控制开放的可编程接口SDN集中控制器对网络设备使用标准协议接口对接对上层应用使用使用RESTful风格的API接口对接。这些RESTful API使得SDN控制器的功能被开放出来第三方可以通过调用API实现网络的定义和编排网络业务的自动化应用程序控制通过将网络设备的控制能力集中以及对上层云平台等应用的开放接口SDN控制器能够让网络具备业务的自动化部署和快速上线的能力SDN的体系架构最上层 --- 应用层又叫编排层专注于应用系统的层面在云计算数据中心中业务编排层和应用层一般由云平台以及更上层应用担任主要通过北向接口与SDN控制器对接通过SDN控制器申请和分配网络资源第二层 --- 控制层把传统硬件网络设备的控制能力抽离出来形成的一层主要由SDN控制器担当。控制器与转发层之间通过标准的南向接口协议对接如OpenFlow、NetconfSDN控制器特点控制平面是整个架构的核心一般由SDN控制器作为控制平面负责协议报文的处理、全网转发路径的计算和下发负责网络资源的抽象和对上层统一的网络服务在SDN网络中SDN控制器会给网络设备下发流表匹配某些类型的协议报文将报文上送至SDN控制器来处理设备通过openflow模块将协议报文封装至openflow packet in消息中发送给SDN控制器流表--- 在交换机上由匹配字段、优先级、计数器、指令、计时器、Cookie、标识组成匹配域定义这条流表项能够匹配哪些数据包输入端口、源目MAC、源目IP等指令定义当前数据包匹配成功后交换机需要执行的动作优先级决定流表项的匹配顺序越大越优计数器用于统计和监控流经这条流表项的流量计时器控制流表项的生命周期实现规则的自动管理Cookie流表标签方便控制器对自己下发的流表项进行批量管理和追踪标识用于标记流表项的各种属性和行为OFPFF_SEND_FLOW_REM当流表项被删除时向控制器发送通知信息OFPFF_CHECK_OVERLAP在添加路由表项时检查是否已有规则冲突最底层 --- 转发层由硬件网络设备承担的层面该层面主要负责底层数据报文的转发根据SDN控制器下发的控制平面信息生成二三层转发表项管理接口可以让网络操作人员在其网络中管理设备一个管理接口通常由两个关键要素协议和消息格式规范组成。管理接口分为南向接口和北向接口。2、南向接口协议 --- Openflow协议openflow协议开放网络流量管理协议--- 是SDN架构定义的一个控制器与转发层之间的通信接口标准其核心思想是分离控制平面和数据平面二者之间使用标准的协议通信数据平面采用基于流的方式进行转发。Openflow网络架构openflow网络由openflow网络设备和控制器组成两者之间通过openflow通道互相连接。每台openflow网络设备都会通过openflow通道与控制器建立连接openflow作为转发平面承载报文转发控制器作为控制平面。openflow控制器通过openflow通道协议向penflow交换机网络设备下发流表Openflow交换机根据流表做出转发行为。Openflow主要组件主要组件包括openflow控制器和openflow交换机两者通过openflow通道互连openflow交换机包含一个或多个流表、组表和meter表以及到控制器的openflow信道安全通道openflow连接的安全通道使用TCP进行连接默认TCP端口号为6633openflow流水线处理机制遵循标准OpenFlow 1.3流水线不是固定模板没有TTP表号可以在硬件上线内自由规划报文必须从 table 0 进入Goto-table只能够跳到更大的表号不能回跳不能乱跳两张核心机制Action-Set 每一级流表累积动作整条流水线跑完才一起执行Metadata 表与表之间传递内部标记不会发到链路上Table-miss没有匹配到默认上报控制器也可以配置丢弃或 goto 指定表流表项 overlap匹配重叠只看priority越大越优3、南向接口协议 --- NETCONF协议NETCONF概念NETCONF 网络配置协议--- 是一种基于XML的网络管理协议它提供了一种可编程的API、对网络设备进行配置和管理的方法XML是可扩展标记语言一种存/传数据的文本格式NETCONF采用基于TCP的SSHv2进行传输用户可以通过NETCONF协议设置参数、获取参数值、获取统计信息等NETCONF协议分层框架内容层主要用于描述网络管理所涉及的配置信息和状态信息操作层核心主要定义网络配置管理所需获取、修改等基本配置操作以及关闭会话、加锁、解锁等高级配置操作相比于SNMP只定义了5中基本操作NETCONF全面定义了9种基础操作功能主要包括四个方面 --- 取值操作get、配置操作config、锁操作lock、unlock和会话操作session锁操作是对设备进行操作时防止并法产生混乱的锁行为会话操作则是相对比较上层的操作用于结束一个会话操作消息层又称为RFC层提供了一种简单的不依赖于传输协议的RPC成帧机制。其主要作用是接收经过NETCONF传输层传递过来的XML格式的请求报文和回传响应报文进行对应的解析和封装。一个典型的RPC请求包括消息编号、操作类型、配置状态、操作对象四个部分RPC响应脑阔消息编号和操作结果两个部分传输层可以采用任何一种安全的面向连接的传输协议用于建立SDN控制器与网络设备之间的通信通道。传输层3种面向连接的通讯方式SSH、SOAP、BEEP其中SSH是协议要求强制实现的NETCONF协议报文的特点基于XML构建整个协议分为四层指定了对设备具体资源的具体操作4、北向接口协议 --- RESTful协议RESTful概念RESTful服务是基于REST架构开发的服务REST表征性状态转移是一组架构约束原则软件开发者可以基于这些原则设计以资源为中心的Web服务REST不是一种具体的协议或者系统架构而是一种软件架构风格REST的核心要素资源使用URI统一资源标识符来标识特定的资源URI包括URL定位和URN永久命名RESTful使用URI标识每一个资源RESTful API是SDN北向接口资源的表述是一段对于资源在某个特定时刻的状态的描述常见的有XML、HTML、TXT、FLASH等资源的状态转移在客户端与服务器之间转移资源表述的状态通过转移资源的表述来达到操作资源的目的。在REST中有PUT、POST、GET和DELETE等状态转移方法5、南向接口协议 --- SNMP协议SNMP概念SNMP是简单网络管理协议是传统网络设备的网管协议用于网管平台管理站和交换机、路由器等网络设备代理Agent之间采集设备运行状态、接收告警也可以修改少量配置SNMP基本架构网络管理站NMS网关软件主动发起查询监听UDP162端口接收SNMP Agent发送的Trap/告警信息代理器AgentSNMP Agent是驻留在被管理设备的一个软件模块它主要负责监听UDP161端口接收和处理来自NMS的请求报文并将处理结果返回给NMS。在一些紧急情况下SNMP Agent还会主动发送Trap告警报文给NMSSNMP协议 NMS与被管理设备之间的交互遵循SNMP协议规定MIB管理信息库MIB是存储在被管理设备中的管理信息数据库MIB是一个被管理对象的集合定义被管理对象的一系列的属性MIB通过SMI管理信息结构进行组织和定义MIB结构MIB结构是一种树型结构每一个节点有一个名字和一个编号名字不能重复同一层节点的编号不能相同节点可以通过名字或者OID对象标识符来标识节点类型分为叶子节点和非叶子节点三、Overlay技术1、网络虚拟化的发展数据中心虚拟化起源 虚拟化是一种资源管理技术本质是从物理到逻辑的映射是物理资源的复用或融合把有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路。计算虚拟化对网络的挑战 业务扩展问题业务扩展要求业务部署与网络位置无关而基于IP子网区域划分限制了二层网络范围网络广播问题虚拟机迁移要求前后处于网络的同一个二层域因而数据中心采用大规模静态VLAN trunk部署二层网络变大后会带来网络广播域变大、广播报文增多、二层网络收敛时间变长等一系列问题不能很好地适应云计算和虚拟机迁移需求4K VLAN上限问题云计算数据中心要求多租户公用一张物理网络传统地VLAN隔离技术仅支持4094个隔离域并不能满足大规模云计算中心地多租户需求网络虚拟化技术概述可以构建出虚拟的网络链路或网络节点的技术无论是二层的、大二层的、三层的还是多虚一、一虚多都属于网络虚拟化技术。网络虚拟化的分层数据层面、控制层面、管理层面2、Overlay基本概念与分类Overlay是架在底层物理网络Underlay之上的虚拟逻辑网络是对基础网络不进行大规模修改的前提下实现应用在网络上的承载Overlay网络能与其他网络业务分离并且以基于IP的基础网络技术为主核心思想把业务报文封装在隧道里传输。底层物理网络只转发封装后的外层报文感知不到内部的业务网络信息Overlay技术基本概念Overlay将网络设备分为Overlay边缘设备和Underlay设备Overlay边缘设备--- 处于整个Overlay网络的边界对内负责Overlay网络接入服务器将服务器发送的报文封装Overlay进入Overlay设备对外负责Overlay网络与外网互通将Overlay报文解封装还原成原始报文发送给外网设备Underlay设备--- 为Overlay网络中的传统设备报文转发过程中Underlay设备不会解开Overlay封装故而Underlay设备可以不支持Overlay封装起作用仅仅是使用传统路由协议让Overlay隧道的源目地址互相可达Overlay网络分为控制平面逻辑平面、数据平面由网络设备组成控制平面为Overlay网络抽象出来的逻辑平面用以控制整个网络的转发实际使用中一般用Openflow、EVPN等协议加上SDN控制器作为Overlay网络的控制平面控制平面有服务发现、地址通告和映射、隧道管理数据平面作为承载数据报文实际转发的网络Overlay数据平面将Overlay边缘设备封装的Overlay报文发往另一台Overlay边缘设备如何转发、发往何地则需要控制平面指导下发表项Overlay网络优势较低成本地构建跨三层地大二层通过隧道实现跨三层地二层互联感知虚拟机接入交换机/隧道端点交换机与虚拟机直连或者通过TOR交换机间接感知到虚拟机充足的网络或虚拟子网标识数量Overlay网络类型网络Overlay由物理网络设备作为Overlay边缘设备一般是物理路由器或物理交换机主机Overlay由虚拟设备作为Overlay边缘设备一般是NFV设备或虚拟交换机不能接入非虚拟化的物理服务器混合Overlay让以上两种Overlay类型混合Overlay边缘设备既可以是物理网络设备也可以是虚拟设备应用最为广泛的Overlay技术 --- VXLAN3、VXLAN技术基础VXLAN --- 虚拟可扩展局域网是Overlay技术的一种通过隧道机制在现有网络上构建一个叠加的网络从而绕过现有VLAN标签的限制。隧道的源目设备为Overlay边缘设备。VXLAN技术基本概念VNI --- VXLAN网络标识符VXLAN Network Identifier虚拟扩展本地网络标识符VNI取代VLAN用来表示不同的VXLAN网络VNI是一个24位进制表示可扩展到个网段VTEP --- VXLAN Tunnel End Point虚拟扩展本地网络隧道终结节点有自己的IP对报文进行VXLAN封装/解封装上行方向将虚拟机服务器产生的数据封装到UDP包头内发送出去下行方向将收到的VXLAN报文解封装后发给虚拟机服务器VTEP之间建立了两点之间的隧道VTEP可以位软件、硬件服务器或者网络设备隧道是无状态的VXLAN底层用UDP两个VTEP不需要互相保存对方的连接信息不需要维护隧道会话表数据包来了就封装转发数据包断了也不会断开隧道没有类似于TCP三次握手的流程VXLAN的核心作用VXLAN的报文结构基本格式L2oUDP--- L2 over UDPVXLAN的核心封装方式也叫MAC-in-UDPL2Layer2二层以太网帧over UDP把整个二层帧封装进UDP报文的payload数据部分在三层IP网络上传输VXLAN封装整个占50字节UDP目的端口号为4789外层封装类似于快递盒上的标签是给Underlay网络实际的物理设备快递员运输时查看使用的内层就是给Overlay网络的虚拟机查看使用。VXLAN标签标志位8bitsVXLAN网络IDVNI用于标识一个单独的VXLAN网络外层IP头外层ip包头的ip地址为隧道两端的VTEP设备地址外层MAC头外层二层包头为报文在普通网络中做二、三层转发的MAC地址VXLAN GW和VXLAN IP GWVXLAN IP GW--- 网络设备支持VXLAN报文的封装与解封装并根据内层报文的IP头部进行三层转发VXLAN GW--- 支持VXLAN报文的封装与解封装并根据内层报文的MAC头部进行二层转发实现VXLAN与VLAN的互通云计算数据中心的网络简化为SpineLeaf两层架构VXLAN运作在Spine和Leaf之间以下为运作流程1leaf叶节点 --- ingress VTEP隧道起点设备将报文封装成VXLAN报文2spine脊节点 --- 核心设备作为VXLAN IP GW终结VXLAN报文并进行L3内层IP层转发转发3leaf 叶节点 --- egress VTEP设备将VXLAN报文解封装实现VXLAN与VLAN的互通网络互通VXLAN的网络互通分为2种一种是VXLAN和VLAN互通一种是VXLAN和VXLAN之间的互通VXLAN与VLAN之间的互通Leaf作为二层接入设备通过VLAN-VXLAN映射表将服务器/虚拟机发送的VLAN报文映射进某一个VXLAN网络该映射可以是VXLANVLAN1:1也可以是1NSpine作为三层网关设备拆开VXLAN封装后获取原始IP报文再通过查询控制平面来决定该报文是三层转发至VXLAN内部还是外网传统设备VXLAN与VXLAN之间的互通Leaf作为二层接入设备负责VXLAN二层转发二层报文在Leaf之间直接通过VXLAN隧道互通Spine作为三层网关设备负责VXLAN的三层转发三层报文及与外网互通报文需要由Spine来处理数据中心服务器之间东西流量巨大设计两种网关来解决东西流量转发问题VXLAN集中式网关与分布式网关VXLAN集中式网关 --- 数据的三层转发都要经过Spine处理存在多次封装及流量路径非最优等问题Leaf进行二层VXLAN业务终结对内层封装的IP报文进行三层转发VXLAN IP网关功能由VXLAN对应得三层虚接口VSI承担VXLAN分布式网关 --- Spine的网关功能下沉至Leaf所有的分布式VXLAN IP网关上都需要创建VSI虚接口不同网关这里至拥有网关功能的Leaf上的相同VSI虚接口配置相同的网关IP地址对于数据中心和内部与外网之间互通的流量会由Leaf通过VXLAN隧道发送至SpineSpine将VXLAN解封装并发送给外网设备此时Spine仍具有三层转发功能但该VSI-interface仅仅作为与外网互通的三层接口我们把与外网连接的Overlay边缘设备称之为Border网络虚拟化分为数据平面、控制平面和管理平面在VXLAN协议中数据平面主要由Leaf和Spine等VTEP设备承担VTEP设备之间互相建立了VXLAN隧道由VTEP设备负责封装/解封装VXLAN由VXLAN隧道实际承载报文转发。VXLAN数据平面隧道机制源和目的VTEP之间建立隧道负责报文的VXLAN封装和解封装VTEP为虚拟机数据包分装了层层包头这些新包头只会在报文到目的VTEP时才会解封中间路径网络设备只会根据外层包头的目的地址进行转发对于转发路径上的网络设备一个VXLAN报文就是一个普通报文在VTEP设备上进行VXLAN的封装解封装根据MAC地址表对应有对端的VTEP IP地址转发VXLAN控制平面VXLAN的控制平面实现方式分为3类自学习模式基于SDN Controller的集中式模式路由协议扩展模式VXLAN封装的信息中VXLAN头、UDP头和外层源目IP头信息为控制平面提供外层源目MAC和外层VLAN标签由转发平面封装自学习模式--- 指定VXLAN ID映射到一个IP组播组此VXLAN的VTEP都加入该组播组通过flooding和learning机制完成学习基于SDN Controller方式的控制平面和地址学习--- SDN Controller与所有的VXLAN ED设备建立连接通过Openflow协议通过SDN Controller给各个VXLAN ED部署下发流表来进行VXLAN的转发路由扩展模式基于EVPN协议优势标准化 --- 控制平面使用EVPN属于标准协议、灵活 --- 使用MP-BGP完成地址同步更灵活控制地址发布规则