一、SDN核心架构

1.1 三大基本特征(绝对重点)

  • 转控分离

    • 控制平面(大脑):负责路由计算、决策制定,集中在控制器中。
    • 转发平面(手脚):只负责根据流表高速转发数据包,位于网络设备中。
  • 集中控制

    • 网络智能被集中到控制器中,控制器拥有全局网络视图。
    • 控制器基于全局视图进行最优路径计算和策略下发。
  • 开放接口

    • 南向接口:控制器与网络设备之间的开放接口。
    • 北向接口:控制器与上层应用之间的开放接口(通常为RESTful API)。

1.2 接口方向(极易混淆,必须掌握)

记忆口诀:上北下南,控制器是核心

接口类型方向连接对象典型协议功能描述
北向接口向上控制器 ⇄ 业务应用RESTful API应用通过API调用网络服务,实现网络编程
南向接口向下控制器 ⇄ 网络设备OpenFlow, NETCONF/YANG, OVSDB控制器管理设备的所有通信,包括下发配置/流表和接收设备上报信息
东/西向接口水平控制器 ⇄ 其他控制器未标准化用于多控制器域间的协同,考试中较少涉及

关键辨析:

  • 设备上报事件(如端口宕掉)是通过南向接口送给控制器,不是北向接口。
  • 北向接口是应用程序用来告诉控制器业务需求的。

1.3 对“集中控制”的深度理解

  • 正确理解:

    • 控制器集中计算路径,网络设备间无需运行OSPF/IS-IS等分布式路由协议。
    • 控制器通过下发流表来指导转发。
    • 设备本地维护流表,绝大多数流量直接匹配流表高速转发,无需控制器干预。
  • 经典误区纠正:

    • 错误: 每个数据包的转发都需要控制器实时决策。
    • 正确(流表转发机制):

      1. 首包上送: 流的首个数据包若无匹配流表,则上送控制器。
      2. 决策下发: 控制器计算路径,并向路径上的所有设备下发对应的流表项。
      3. 后续直转: 该流后续的所有数据包均在设备上直接匹配流表转发,实现高速性能。

1.4 SDN优势辨析

  • 真正的核心优势:

    • 灵活可编程: 通过开放接口实现网络定制。
    • 简化运维: 集中控制使得网络配置、监控、排障更简单。
    • 自动化业务部署: 业务上线速度快。
    • 全局优化: 基于全局视图实现流量工程、负载均衡。
  • 常见误解(必须避免):

    • 错误: SDN能显著提升单台网络设备的硬件转发性能。
    • 解释: 单设备的转发性能取决于其硬件芯片(ASIC)。SDN的优势是“控制和管理”层面的软优势,而非硬件性能的提升。

二、NETCONF与YANG协议精解

2.1 YANG与NETCONF的关系(核心模型)

比喻:YANG是建筑图纸,NETCONF是施工队。

组件角色功能描述
YANG数据建模语言定义网络数据的结构、类型、约束关系。它规定“数据该长什么样”,但本身是空的,不包含具体配置值。
NETCONF网络配置协议负责在管理端与设备端之间安全、可靠地传输具体的配置数据和状态数据。它传输的是根据YANG模型填充好的数据内容。

结论: YANG定义数据是什么样,NETCONF定义如何传输这些数据。NETCONF不传输YANG模型文件本身。

2.2 YANG数据分类

YANG模型中将数据节点明确分为两类:

数据类型YANG语句读写性描述示例
配置数据config true; (可默认省略)可读可写设备“应该如何工作”的期望状态。接口IP地址、主机名、ACL规则、路由配置
状态数据config false; (必须声明)只读设备“当前运行状态”的真实反馈。接口流量计数器、CPU利用率、设备温度、协议邻居状态

重要性: 该区分是网络自动化的基础,使得管理程序能清晰区分“配置设备”和“查询状态”。

2.3 NETCONF关键操作与细节

  • 常用RPC操作:

    • <get-config>:检索指定配置数据库(如<running/>)中的配置数据。
    • <edit-config>:修改设备配置的核心操作。
    • <get>:检索所有数据(包括配置数据和状态数据)。
  • 关键细节:

    • 传输协议: 通常使用 NETCONF over SSH,默认端口为 TCP 830。
    • 数据编码: 主要使用XML。

三、网络自动化与Python

3.1 Python网络库选型与安全

库名基于协议安全性特点与用途
telnetlibTelnet明文传输极不安全,严禁在生产环境使用,仅用于学习或测试。
paramikoSSHv2加密传输实现了SSHv2协议的低层级库,提供安全连接,是许多高级库的基础。
netmikoSSH (基于Paramiko)加密传输自动化脚本首选。在Paramiko之上封装,简化了多厂商设备的连接与命令交互细节。

3.2 文件操作最佳实践

  • 使用 with 语句(上下文管理器):

      with open('config.txt', 'r') as file: # ‘r’表示读取模式
      content = file.read()

    退出with代码块后,文件会自动关闭,无需手动调用file.close(),避免资源泄露。

    • 这是Python文件操作的最佳实践。

    四、关键协议与特性

4.1 RESTful API特征

  • 正确特征(必须掌握):
  • 无状态: 服务器不保存客户端上下文。每次请求必须包含所有必要信息(如认证令牌)。
  • 统一接口: 使用标准HTTP方法操作资源:

    • GET(检索)、POST(创建)、PUT(更新/替换)、DELETE(删除)。
  • 资源导向: 一切皆资源,通过URI标识。
  • 常见误解(必须纠正):
  • 错误: 必须使用XML作为数据格式。

    • 事实: JSON因其轻量、易读,已成为更主流的选择。
  • 错误: 需要维持一个长连接的会话。

    • 事实: 因其无状态,不需要维持长连接。每次请求/响应后连接可关闭。

4.2 OpenFlow流表生命周期

  • 流表项非永久有效: 控制器下发流表时可设置超时机制,防止流表被无用条目占满。
  • 空闲超时: 如果在指定时间内没有数据包匹配此流表项,则自动删除。
  • 硬超时: 无论是否有流量匹配,只要到达指定时间,流表项强制删除。
  • 结论: “流表项直到设备重启才失效”的说法是错误的。

五、华为解决方案与相关技术

5.1 iMaster NCE 平台定位

  • 它不是单一组件,是融合平台:
  • 控制层功能: 作为SDN控制器,通过南向接口集中管理网络设备和拓扑。
  • 应用协同层功能: 提供强大的业务自动化、智能分析和运维能力,超越基础控制器。
  • 定位辨析:
  • 不属于基础设施层(那是物理网络设备)。
  • 不属于虚拟化层/NFVI(那是承载VNF的通用服务器和Hypervisor)。

5.2 混合SDN模型

  • Underlay网络:
  • 采用传统IP/MPLS技术(如IS-IS, BGP)。
  • 目标:提供稳定、可靠、高性能的底层IP连通性。
  • Overlay网络:
  • 由SDN控制器(如iMaster NCE)通过VXLAN等技术创建和管理。
  • 目标:在Underlay之上构建灵活、可编程的虚拟网络,实现业务快速部署和策略随行。

5.3 NFV(网络功能虚拟化)

  • 核心思想: 将防火墙、路由器等网络功能从专用硬件中解耦,以软件(VNF)形式运行在通用服务器上。
  • 与SDN关系: SDN(实现网络连接自动化)和NFV(实现网络功能虚拟化)相互互补,结合使用能最大化网络转型价值。

复习建议: 每日快速浏览此文档,强化记忆易错点。尤其要反复理解SDN接口方向、YANG与NETCONF的关系以及各类协议的关键特性。祝您考试成功!

标签: HCIA-datacom, NETCONF, SDN, 网络自动化, Python, iMaster NCE