实验目的
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的连通性。
创建ovs交换机,以ovs-switch000为例命名
sudo ovs-vsctl add-br ovs-switch000
创建端口p0,设置编号为100,类型为“internal”
sudo ovs-vsctl add-port ovs-switch000 p0
sudo ovs-vsctl set Interface p0 ofport_request=100 type=internal
sudo ethtool -i p0 #查询p0网口的相关信息
创建一个虚拟网络空间ns0,把p0接口移入网络空间ns0,并配置IP地址为 192.168.1.100
sudo ip netns add ns0
sudo ip link set p0 netns ns0
sudo ip netns exec ns0 ip addr add 192.168.1.100/24 dev p0
sudo ip netns exec ns0 ifconfig p0 promisc up
Open vSwitch虚拟交换机实践_命令行
Open vSwitch虚拟交换机实践_端口号_02
2) 使用Mininet搭建的SDN拓扑,如下图所示,要求支
持OpenFlow 1.3协议,主机名、交换机名以及端口对应
正确。
Open vSwitch虚拟交换机实践_连通性_03
3) 通过命令行终端输入“ovs-ofctl”命令,直接在s1和
s2上添加流表,划分出所要求的VLAN。
VLAN_ID      Hosts
       0             h1 h3
       1             h2 h4
Open vSwitch虚拟交换机实践_连通性_04
4)
主机连通性要求:
•h1 – h3互通
•h2 – h4互通
•其余主机不通
 
最终的连通性测试
Open vSwitch虚拟交换机实践_连通性_05
wireshark抓包
Open vSwitch虚拟交换机实践_虚拟网络_06
Open vSwitch虚拟交换机实践_ip地址_07
交换机流表
Open vSwitch虚拟交换机实践_虚拟网络_08
 
个人总结:这次实验相较于第一次实验难度明显上升了很多,但是总体还想较简单的,第一步做的很成功,但是第二步使用Mininet搭建的SDN拓扑,点击run时一直显示***Mininet must run as root.
解决办法就是先进到examples,再输入sudo python miniedit.py。接下来的问题就是添加流表,划分vlan的代码刚开始看不懂,经过了几次的失败与理解,稍微懂得了代码的意思。接下来的几个步骤就比较轻松了,只要按照步骤一步一步来就可以了。总结一句话:只要上课好好听课,课后在认真做作业,只要就不会掉队了。