5.网络层-控制平面
转发表和流表是联系数据平面和控制平面的重要元素, 本章主要学习如何计算, 维护, 安装转发表和流表.
5.1-控制方式
路由器控制
在路由器里的路由组件负责转发和路由功能, 每个路由组件之间可以互相通信, 然后计算转发表
逻辑集中控制
在控制器上集中计算, 分配转发表, 可以实现更多丰富的功能—负载均衡, 防火墙, NAT.
通过指定协议使控制器与路由器中的控制代理(
control agent,CA
)交互, CA只负责与控制器通信
SDN+逻辑集中控制被广泛使用
5.2-路由算法
内容涉及高数, 暂且不做笔记
5.2.1-LS(Link-State)路由算法
略
5.2.2-DV(Distance-Vector)路由算法
略
5.3-自治系统(AS)内部路由选择: OSPF
略
5.4-ISP之间的路由选择: BGP
略
5.5-SDN控制平面
满足SDN通用转发的4个关键点
转发基于流
SDN控制的交换机数据包可以基于传输层, 网络层, 链路层任意数量的标头字段值(一个流)
数据平面和控制平面的分离
数据平面由交换机组成, 控制平面由管理交换机流表的服务器和软件组成
软件控制网络
控制平面有两个组件, SDN控制器(操作系统)+网络控制应用程序, 控制器会部署在多个服务器上, 提高性能
网络可编程
应用程序可以根据SDN提供的API来控制数据平面
控制器+控制网络的应用程序
控制器的功能从下至上主要有三层
通信层
控制器和网络设备之间的通信. 规定协议来传输信息, 如OpenFlow和SNMP.
管理网络状态层
SDN控制平面必须要了解所有网络主机, 链接, 交换机和其他SDN设备的状态.
网络控制应用层
这层提供API使应用程序能从第二层中读取网络状态和流表. 然后响应设备的事件进行动作.
OpenFlow
OpenFlow能在实现OpenFlow API的设备之间运行, 如SDN控制器/交换机. 它通过TCP操作, 端口6653.
从SDN控制器给交换机的重要信息如下
configuration
该信息使控制器可以查询和控制交换机的配置参数
Modify-State
修改交换机中流表的条目, 还可以设置端口属性
Read-State
从交换机的流表和端口处统计信息和计数器数值
Send-Packet
使用这个消息控制器可以向交换机指定的端口发送指定的数据包.
从交换机给控制器的信息有
Flow-Removed
代表流表条目已删除, 这是由于超时接受修改流表状态信息的结果
Port-status
通知控制器端口状态的变化
Packet-in
可以将与流表条目不匹配的数据包发送给控制器处理, 匹配的数据包采取动作也可以发送给控制器. Packet-in信息可以将这些数据包发送给控制器
ICMP
Internet control message protocol(ICMP)是主机和路由器互相传递网络层信息的协议.
ICMP位置处于应用层协议, 在IP头的编号为
1