2.1ONF定义的SDN基本架构:

  1. 应用层:实现网络流量的灵活控制,使网络作为管道智能
  2. 控制层:网络虚拟化实现方式,核心技术OpenFlow
  3. 转发层新型创新架构,实现网络设备控制与转发分离
  • 2与3之间通过OpenFlow协议通信

2.2核心思想

1.Decoupling:控制平面负责上层的控制决策;数据平面负责数据的交换转发(网络逻辑集中控制)

  • 控制平面---多个分布式的控制器

2.Abstraction:

  • 转发抽象:路由表,MPLS标签表,ACL访问控制表抽象流表
  • 分布状态抽象:分布状态抽象成全局网络视图
    实现下发控制命令;收集设备和链路状态,为上层应用提供全局网络视图
  • 配置抽象:网络行为表达通过编程语言实现,将抽象配置映射为物理配置,利用控制器提供的API,基于控制层提供的全局网络视图

3.Programable:开放接口编程

接口:

  • 控制平面--应用平面(北向接口):REST API ;JAVA API
  • 控制平面--数据平面(南向接口)实现协议:OpenFlow,NETCONF,OF-Config,OVSDB
  • 东西向接口:多控制器或控制器与外部组件之间通信

数据平面:

  1. 高性能网络数据处理框架DPDK
  2. SDN数据平面可编程:P4

2.3Mininet应用实践(SDN仿真工具)

  • 运用mininet可视化工具创建网络拓扑结构
  • 运用mininet交互命令创建网络拓扑结构
  • 运用python脚本构建网络拓扑结构

创建一个真实的虚拟网络,其中包含真实的工作组件,但运行在机器上,便于测试

  1. 命令行:   sudo mn(简单拓扑:控制器-交换机--两个主机)  controllers-switches-hosts
  2. 交互式命令: py net.addHost('h3')(添加主机)
  3. python应用程序  sudo python lab_1.py

更多:http://mininet.org/

基本命令:

  • help:显示可能的mininet命令列表
  • nodes:显示节点列表
  • net:显示网络拓扑(ASCII编码)
  • dump-显示每个节点的接口设置和表示每个节点进程的PID
  • <node id>ifconfig类似于定义网络接口的Linux命令

基本命令行参数:

  • --topo-启动时通过命令行定义拓扑
  • --switch-定义使用交换机,默认使用ovsk交换机
  • --controller-定义使用控制器,若为指定默认控制器,作为集线器使用
11-22 07:15