SDN 三层架构 · OpenFlow · NETCONF / YANG · Telemetry · RESTCONF 与 Python 运维 —— 从"命令行工匠"到"网络工程师 2.0"的转身,HCIE 论述题新宠。
控制转发分离 + 集中控制 + 开放可编程
| 场景 | 南向 |
|---|---|
| 数据中心 | VXLAN EVPN + NETCONF(NCE-Fabric) |
| 园区 | NETCONF + 自定义(NCE-Campus) |
| 广域/SR | PCEP / BGP SR / NETCONF |
| 传输 | OTN 专用(NCE-T) |
配置管理的"标准化长子"
# NETCONF 操作集 <get>/<get-config> # 拉取 <edit-config> # 修改(merge/create/delete) <copy-config>/<delete-config> <lock>/<unlock> # 锁配置 <kill-session>/<close-session> # RPC 结构 <rpc message-id="101"> <get-config> <source><running/></source> </get-config> </rpc>
# 华为 VRP
netconf
protocol inbound ssh port 830| SNMP Trap | SNMP Poll | Telemetry | |
|---|---|---|---|
| 方向 | 推(事件) | 拉 | 推(订阅) |
| 时延/粒度 | 秒/单点 | 分钟/轮询 | 亚秒/批量 |
| 数据量 | 小 | 视规模 | 大而结构化 |
| 用途 | 告警 | 巡检 | 实时监控/AI 输入 |
把网络变成"API 服务"
# 一条 RESTCONF 调用 GET https://10.1.1.1/restconf/data/\ ietf-interfaces:interfaces/interface=GE0%2F0%2F1 Accept: application/yang-data+json # 北向调用 NCE OpenAPI 同理: # Token 认证 → 资源 URL → JSON 载荷
| 需求 | 首选 |
|---|---|
| 配置管理(事务/回滚) | NETCONF |
| Web/云原生集成 | RESTCONF |
| 高频监控 | Telemetry(gRPC) |
| 传统网管兼容 | SNMP |
| 设备临时操作 | SSH CLI |
import paramiko, time def backup(host, user, pwd): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy( paramiko.AutoAddPolicy()) ssh.connect(host, username=user, password=pwd) cli = ssh.invoke_shell() cli.send('screen-length 0 temporary\n') cli.send('display current-configuration\n') time.sleep(2) out = cli.recv(65535).decode() with open(f'backup_{host}.cfg', 'w') as f: f.write(out) for ip in ['10.1.1.1', '10.1.1.2']: backup(ip, 'admin', 'Huawei@123')
| 产品 | 场景 | 关键能力 |
|---|---|---|
| NCE-Campus | 园区 | 云管理园区、ZTP、准入、无线管理、意图配置 |
| NCE-Fabric(+Insight) | 数据中心 | EVPN-VXLAN 自动化开通、可视化运维 |
| NCE-IP / WAN | 广域 | SD-WAN、SRv6 隧道编排、路径调优 |
| NCE-T 等 | 传输/其他域 | 光/传送协同 |
| 考点 | 必背细节 | 频度 |
|---|---|---|
| 三层架构 | 应用层(北向 API)→ 控制层(集中大脑:拓扑/算路/下发)→ 转发层;三个解耦:应用与控制 / 控制与转发 / 转发表生成与转发执行 | ★★★★ |
| OpenFlow 流表 | 流表项 = 匹配字段 + 计数器 + 动作(Forward/Drop/Modify/Normal);多级流表 Pipeline 匹配;交换机主动连控制器(TCP 6653,旧 6633);Table-miss 兜底流表决定"没匹配上的怎么办" | ★★★★ |
| NETCONF | SSH 端口 830;Hello 协商能力 → RPC 操作:get / get-config / edit-config / copy-config / delete-config / lock / unlock / commit;数据存储 running / candidate / startup;YANG 树形建模 | ★★★★★ |
| Telemetry | 推(push)模式:订阅后秒级主动上报;gRPC 承载;对比 SNMP 轮询:实时性高、CPU 开销低、适合趋势/间歇故障 | ★★★★ |
| RESTCONF | HTTP(S) + JSON/XML;GET/PUT/POST/PATCH/DELETE 映射到数据存储;URL 即资源路径,Postman 可直连调试 | ★★★ |
| SNMP 对比定位 | SNMP:UDP 161/162、轮询+Trap、监控"过去";Telemetry:订阅推送、观测"现在"——两者互补不是替代 | ★★★ |
| 华为落地 | iMaster NCE:自动化(网络自动驾驶,批量下发/ZTP 开局)+ 可视化运维(Telemetry 播高/秒级地图);传统设备靠 NETCONF/SSH 双通道过渡 | ★★★ |
| Python 工具链 | ncclient(NETCONF)、paramiko / netmiko(SSH 批量)、requests(RESTCONF);脚本三步:连接 → 下发/读取 → 结果校验回读 | ★★★ |
display netconf capability、display telemetry subscribe;控制器侧看任务下发日志 —— 自动化"下发了≠生效",必须回读。| 验证点 | 预期 |
|---|---|
| 备份目录 | 5 文件 + 时间戳命名 |
| 巡检 CSV | 端口数与真实一致 |
| Hello 能力 | 能看到 YANG 模块 URN 列表 |