通用转发
- 基于目的地转发的特征:匹配 + 动作
- 分组交换机(同时负责第三和第二层)
- 匹配动作表:远程控制器计算,安装和更新(位于控制平面)
- 基于匹配动作表更新:数据平面
SDN (Software Defined Network)
利用定义成熟的 API 将网络设备的数据与控制功能分离,集中管理,可编程化 可编程交换机: Google B4 20%->80%
- 需求
- 服务器虚拟化应用越来越广泛
- 流量要求灵活
- 企业员工越来越多使用移动设备访问,应对资源、QoS和安全性要求
SDN 体系结构 | 功能 |
---|---|
应用平面 | 云端管理,业务应用,SDN应用 |
控制平面 | 流量工程,路由选择,移动性 |
数据平面 | 路由器,分组交换机等网络设备 |
- SDN 域
- SDNi 协议
- Networking Operating System
- OC-Y
- SONiC (Software for Open Networking in the Cloud) (Microsoft)
OpenFlow (ONF)
在MAC层仅支持以太网,在上层支持各种协议和网络服务
OpenFlow 交换机
- 动作:系列动作构成动作集
- Output:转发分组到指定端口
- Set-Queue:设置队列ID
- Group:使用指定的组来处理分组
- Push-Tag/Pop-Tag: 为VLAN或MPLS 分组推进货弹出一个标签
- Set-Field: 通过字段的类型来标识各种不同的Set-Field动作
- Change-TTL: 修改分组中的TTL值
- 流表: 传入的分组与某个特定的流相匹配,并指明分组应当执行什么功能
- 流表项
- 匹配字段
- 传入端口:端口标识符
- 以太网源和目的地址
- IP协议号,IP源地址和目的地址
- TCP源端口和目的端口
- UDP源端口和目的端口
- 优先级
- 计数器
- 指令
- 引导分组通过流水线:Goto-Table指令引导分组到达下一个表
- 对分组执行动作:分组与表项匹配时,可能会对该分组进行某些操作
- 更新动作集
- 更新元数据
- 超时
- Cookie
- 匹配字段
- table-miss 流表项
- 流表项
- 流水线:多个流表组成
- 组表:流表可能将流引导到组表
- 计量表:在流的基础上触发各种性能相关动作
OpenFlow 协议
发生在 OpenFlow 控制器和 OpenFlow 交换机间的报文交换
- 从控制器到交换机的
- 异步的
- 对称的