一、网络层功能 1、转发 :对于从某个端口来的分组转发到合适的输出端口,数据平面 2、路由 :决定分组从源端口到目标端口的路径(路由选择算法),控制平面 这种功能称之为 垂直集成 的方式,每个路由器即执行控制平面,又执行数据平面。控制平面:路由器上运行路由协议实体,自己查路由表,自己做路由通告寻找下一跳。然后交给IP协议实体,由IP协议实体对到来的分组进行转发:数据平面 3、数据平面和控制平面 IP转发:对于到来的分组按照路由表决定如何转发,数据平面 路由:决定路径、计算路由表,处于控制平面,是传统的转发方式 4、每个控制平面是分布式的实现,是将路由表粘在一起进行实施 缺陷 :设备很多,需要维护大量的控制平面和数据平面的功能 5、网络设备控制平面的实现方法 :通过传统方式的分布式,每台设备都实现控制平面和数据平面功能,通过垂直集成的方式,从上到下都由一个厂商提供,设备也都是按照固话的方式工作,这样子的方式管理难,升级难 问题 :只能通过这种传统的方式,垂直集成的方式才能实现控制平面与数据平面的功能吗?有没有什么其他的方式可以实现? 答案:SDN方式
二、SDN 方式 1、工作流程 :将控制平面与数据平面分离,采用集中化的网络控制器来实现控制平面的功能,通过南向接口把算出来的流表,发给每个设备中的控制代理,这个代理把流表装载在分组交换机,之后根据这个流表作出相应的动作 2、数据平面上,数据平面交换机按照流表(有控制平面设置的控制逻辑)进行PDU(帧、分组)进行动作(包括转发、丢失、拷贝、泛洪、阻塞) 3、将原本的控制平面的功能抽象称为SDN交换机(分组交换机),用于处理控制逻辑 4、特点 : (1)根据流表对到来的分组进行动作 (2)控制平面和数据平面分离 (3)控制平面是远程、集中的方式实现,是在数据交换设备之外实现 5、传统方式与SDN方式的区别 : (1)传统工作方式:根据分组所携带的IP地址进行路由器转发 (2)SDN工作方式:根据端口、设定的要求等来下方不同的流表,然后装载在数据平面交换机上,再进行转发 (3)由垂直集成 -> 水平集成;由分布式到集中化
三、SDN架构:SDN控制器作用 1、维护网络状态信息 2、通过上面的北向API和网络控制应用交互 3、通过下面的南向API和网络交互机交互 4、逻辑上集中,但是在实现上通常由于性能、可扩展性、容错性以及鲁棒性采用分布式方法
四、OpenFlow数据平面抽象(南向协议) 1、流:由分组(帧)头部字段所定义 2、通用转发:简单的分组处理规则 (1)模式:将分组头部字段和流表进行匹配 (2)行动:对于匹配上的分组,可以是丢弃、转发、修改、将匹配的分组发送给控制器 (3)优先权:几个模式匹配了,优先采用哪个,消除歧义 (4)计数器:计算#Byte、#packets 3、路由器中的流表定义了路由器的匹配+行动规则 4、流表的表项结构有非常多的属性,可以通过这些属性来限制能通过的数据报与不能通过的数据报,属性中不设置要求的用* 表示 如 (1)基于目标的转发:设置IP地址,端口号 (2)防火墙:设置属性TCP dport的值,即这个端口号不通过,Forward设置为drop (3)设置指定IP不给转发:IP Src:IP地址 、forword:drop
|