Skip to content

本教程怎么用

写给谁

假设你:

  • 能在 Linux 命令行里干活,ip addrpingtcpdump 不陌生
  • 知道 MAC 地址、IP 网段、VLAN 大概是什么
  • 没有用过 Open vSwitch,或者用过但一直是照抄命令,没搞懂背后发生了什么

不假设你懂 SDN、OpenFlow、OpenStack。这些会在需要的时候从零讲。

学完能做到什么

  • 看懂一台 OVS 交换机的配置,知道每个字段在数据库的哪张表里
  • 用 OpenFlow 流表实现转发策略,而不只是靠 NORMAL 让它自己学
  • 在两台机器之间用 VXLAN 打通一个 Overlay 网络
  • 遇到"包不通"时,有一套确定的排查顺序,而不是重启大法

每一章长什么样

固定的六段节奏,读起来会有肌肉记忆:

text
① 场景     一句话说清这章要解决什么问题
② 拓扑     图 + 起环境的命令,让你有个能敲命令的现场
③ 动手     你自己敲,每一步都告诉你"敲完应该看到什么"
④ 观察     用 ovs-vsctl / ofctl / dpctl / appctl 把内部状态挖出来看
⑤ 原理     回头解释刚才那些输出为什么是那样
⑥ 检查     ./verify.sh 自动核对,附一份自测清单

顺序是刻意的:先让它跑起来,再解释为什么。反过来讲概念,你会记不住。

实验目录的四个脚本

每个实验目录都是同一套接口,学一次就够:

脚本干什么
./start.sh把拓扑拉起来,配好主机地址。交换机上是空白的 —— 那是你要做的部分
./solve.sh参考答案。卡住了或者想对答案就跑它
./verify.sh检查本章目标是否达成,顺带把关键状态打印出来
./stop.sh拆掉环境。玩坏了随时重来

start.sh 故意不替你配交换机。整个教程的价值就在那几行 ovs-vsctlovs-ofctl 是你自己敲的。

建议的读法

别只看,一定要跑

本教程里大量内容是"观察输出"。MAC 地址表里为什么是这三条、datapath 缓存里为什么 packets:4 而不是 5 —— 这些只有在自己的环境里看到实际数字,才会真的留下印象。

  • 第一遍:按顺序读,每章都跑一遍实验,verify.sh 全绿再往下走
  • 卡住了:先看该章末尾的"常见问题",再看排错方法论
  • 当手册用:装完实验环境以后,直接跳到需要的章节

下一步

如果你想先弄明白"为什么不用 Linux bridge 就好",从为什么需要虚拟交换机开始。

如果你更想先有个能敲命令的环境,直接去搭建实验环境