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

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

一、实验目的

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

二、实验环境

下载虚拟机软件Oracle VisualBox 或 VMware;
在虚拟机中安装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的连通性。

创建文件夹lab2以及创建ovs交换机

添加p0、p1端口,并按要求配置交换机类型

查看端口信息

创建并配置虚拟空间

使用 sudo ovs-vsctl show 查看ovs交换机、端口状态

通过 sudo ip netns exec ns0 ing 192.168.0.101 测试p0、p1连通性

(测试出的连通性良好)

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

运行可视化界面搭建目标拓扑

支持OpenFlow 1.3协议 (记得勾选start CLI选项

保存为python脚本

编辑python文件:主机名、交换机名以及端口对应正确

运行python脚本生成拓扑

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

VLAN_ID Hosts
0 h1 h3
1 h2 h4

命令行运行如下代码对s1,s2下发流表:

使用
sudo ovs-sudo ovs-ofctl -O OpenFlow13 dump-flows s1
sudo ovs-sudo ovs-ofctl -O OpenFlow13 dump-flows s2
查看s1,s2流表

4.主机连通性要求:

h1 – h3互通
h2 – h4互通
其余主机不通

使用 mininet pingall,同时使用 sudo wireshark 对s1或s2的3号端口进行wireshark抓包
(先点击开始抓包再pingall)

主机h2,h4之间的包标记为1

主机h1,h3之间的包标记为0

四、个人总结

遇到的问题

1.运行完可视化界面,并搭建目标拓扑之后。将文件保存为python脚本,但保存的python脚本是只读文件,无法直接修改
(虽然可以用命令行修改,但觉得将文件改为可读可改更好更方便些)
通过 sudo chmod 666 文件名.py 将文件成功该文可读可改

2.添加p0、p1端口时有error,虽然不影响后续步骤,但原因不太清楚

实验心得

本次实验我们学习了Open vSwitch的相关知识,学习在命令行中使用ovs-vsctl和ovs-ofctlOVS命令操作Open vSwitch交换机(包括创建交换机、创建端口、创建网络空间、配置ip地址等)、管理流表(流表的下发和查看)、划分VLAN。
这次实验中的很多东西也联系到了上学期所学的计算机网络课程,有种熟悉又陌生的感觉。
posted @ 2021-09-21 18:36  咲小  阅读(180)  评论(0)    收藏  举报