SDN 实验环境配置
Contents
Mininet
见前一个实验。
Ryu
可以选择从源码编译或直接安装,详见官网。
下面是厉害国专属的的简单安装方式
|
|
下载完一个包后,会卡一段时间,不要以为是真的卡了,它是在安装其它依赖项,等待即可
安装完成后,就可以查看流表了
首先,生成流表
|
|
其次,查看流表。you can use Ctrl + Shift + t to create another tab.
|
|
其中,参数 dump-flows 表示 dump 所有流表。And you will get Flow table like that
|
|
then it’s time to analyze OpenFlow protocol
A brief analysis of OpenFlow protocol
What is OpenFlow
OpenFlow is a communications protocol that gives access to the forwarding plane of a network switch or router over the network
Protocol content
Flow table analysis
ARP将网络层的IP地址解析为数据链路层的物理地址(MAC地址)
|
|
详细可见 OpenFlow Protocol —— Ryubook 1.0 documentation ICMP是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
|
|
流表由流条目组成
Match Fields | Priority | Counters | Instructions | Timeouts | Cookie |
---|
详细的 OpenFlow 介绍可以阅读 openflow-spec-v1.3.1
避免数据包的洪泛的⼆层⾃学习交换机
Ryu的基本教程需要阅读⽂档 Ryu docs,阅读前两个部分 Getting Started 和 Write Application 即可 Python 编程需要理解 decorator 的使用
根据老师发的实验指导说明书和 github 上的 Ryu 项目,完成实验 运行 Ryu 控制器
|
|
再创建 topo
|
|
在 “mininet> " CLI 下打开 h1, h3 的 xtern,用 wireshark 抓 h1 ping h2 后它们两个的包。得到
可以看到,此控制器避免了数据包的洪泛。
核心代码
|
|
另外,可以参考 Ryu app 了解更多 Ryu 控件的实现。