计算机网络

9. SDN

2019-01-28 08:00 CST
2020-01-01 20:04 CST
CC BY-NC 4.0

通用转发

  • 基于目的地转发的特征:匹配 + 动作
  • 分组交换机(同时负责第三和第二层)
    • 匹配动作表:远程控制器计算,安装和更新(位于控制平面)
    • 基于匹配动作表更新:数据平面

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 交换机间的报文交换

  • 从控制器到交换机的
  • 异步的
  • 对称的