实验2:Open vSwitch虚拟交换机实践

一、实验目的

 
1.能够对Open vSwitch进行基本操作;
2.能够通过命令行终端使用OVS命令操作Open vSwitch交换机,管理流表;
3.能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中的Open vSwitch交换机
 

二、实验环境

 
1.下载虚拟机软件Oracle VisualBox 或 VMware;
2.在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;
 

三、实验要求

 

(一)基本要求

1.创建OVS交换机,并以ovs-switchxxx命名,其中xxx为本人在选课班级中的序号,例如ovs-switch001, ovs-switch088等。在创建的交换机上增加端口p0和p1,设置p0的端口号为100,p1的端口号为101,类型均为internal;为了避免网络接口上的地址和本机已有网络地址冲突,需要创建虚拟网络空间(参考命令netns)ns0和ns1,分别将p0和p1移入,并分别配置p0和p1端口的ip地址为190.168.0.100、192.168.0.101,子网掩码为255.255.255.0;最后测试p0和p1的连通性。

实验2:Open vSwitch虚拟交换机实践

 

执行结果:

代码:sudo ovs-vsctl show

实验2:Open vSwitch虚拟交换机实践

 

 p0和p1的连通性测试:

代码:sudo ip netns exec ns0 ping 192.168.0.101

实验2:Open vSwitch虚拟交换机实践

 

 

2.使用Mininet搭建的SDN拓扑,如下图所示,要求支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确。

实验2:Open vSwitch虚拟交换机实践

 

创建好如上拓扑后,将该拓扑保存为py文件,命名为Topo.py。打开该py文件,修改Add links以下代码,修改部分如下:

实验2:Open vSwitch虚拟交换机实践

 

修改后在终端输入代码:sudo python Topo.py

查看连接情况如下:

实验2:Open vSwitch虚拟交换机实践

 

3.通过命令行终端输入“ovs-ofctl”命令,直接在s1和s2上添加流表,划分出所要求的VLAN。

实验2:Open vSwitch虚拟交换机实践

 

实验2:Open vSwitch虚拟交换机实践

 

查看流表:sudo ovs-ofctl -O OpenFlow13 dump-flows s1

实验2:Open vSwitch虚拟交换机实践

 

sudo ovs-ofctl -O OpenFlow13 dump-flows s2

实验2:Open vSwitch虚拟交换机实践

 

 

4.主机连通性要求:

  • h1 – h3互通

  • h2 – h4互通

  • 其余主机不通

  • 原来输入过sudo python Topo.py的命令行输入pingall查看连通性,如下图所示,可以看出符合主机连通性的要求。

 实验2:Open vSwitch虚拟交换机实践

 

打开wireshark,代码:sudo wireshark

后在有Mininet的命令行输入h1 ping h3 ,并在另一个终端输入上述命令,如图所示,抓包ID:0

 实验2:Open vSwitch虚拟交换机实践

 

 h2 ping h4同理

实验2:Open vSwitch虚拟交换机实践

 

 

 

四、个人总结

本次实验整体顺利,在PDF的指导下没有遇到太多的困难,一开始创建端口的时候一直在报错,但是没有影响到后续的实验,一开始我连接了错误的地址,想要重新设置的时候遇到了些许问题,但我重启系统重新创建后实验就可以正常进行后续实验了。

另外,我在修改拓扑的python文件时也遇到了问题,最后在百度的帮助下学会了ubuntu系统中修改文件可读写状态的指令,解决了这个问题。

本次实验我也学会了使用wireshark以及相关的概念知识,收获良多。最后因为能力有限,还是没有完成进阶作业,以后我会继续努力学习,争取在能力上有更多的提升。

 

 

 

 

 

 

 

 

 


上一篇:第二次实验


下一篇:实验二:Open vSwitch虚拟交换机实践