标签(空格分隔): SDN
实验目的##
在给定如上实验拓扑情况下,用vlan得到下列虚拟网段
h1--h4互通
h2--h5互通
h3--h6互通
其余主机间无法通信
实验步骤##
1.创建以下拓扑(可采用任意方式)
from mininet.topo import Topo
class MyTopo(Topo):
def __init__(self):
# initilaize topology
Topo.__init__(self)
# add hosts and switches
host1 = self.addHost(\'h1\')
host2 = self.addHost(\'h2\')
host3 = self.addHost(\'h3\')
host4 = self.addHost(\'h4\')
host5 = self.addHost(\'h5\')
host6 = self.addHost(\'h6\')
switch1 = self.addSwitch(\'s1\')
switch2 = self.addSwitch(\'s2\')
# add links
self.addLink(host1, switch1, 1, 1)
self.addLink(host2, switch1, 1, 2)
self.addLink(host3, switch1, 1, 3)
self.addLink(host4, switch2, 1, 1)
self.addLink(host5, switch2, 1, 2)
self.addLink(host6, switch2, 1, 3)
self.addLink(switch1, switch2, 4, 4)
topos = {\'mytopo\': (lambda: MyTopo())}
提交要求:截图证明拓扑的正确性
2、利用OVS命令下发流表,实现VLAN功能
参考链接:http://blog.csdn.net/rocson001/article/details/73163041
提交要求:贴出OVS下发流表的命令
下发s1流表
下发s2的流表
注意
在第一次的时候输入sudo mn --custom ./sj3_1.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653失败了,因为使用的是1.1版本,好像?后来就指定openflow协议是1.3版本的。sudo mn --custom ./sj3_1.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653 --switch ovsk,protocols=OpenFlow13之后就可以了。
3、利用OVS命令查看流表
参考链接:http://blog.csdn.net/rocson001/article/details/73163041
提交要求:截图查看步骤2所下发的流表
ovs-ofctl dump-flow s1
ovs-ofctl dump-flow s2
4、验证性测试
截图验证:
h1--h4互通
h2--h5互通
h3--h6互通
其余主机间无法通信
如图所示:
5、Wireshark抓包验证
提交要求:使用wireshark抓取,包含有VLAN tag的数据包,并截图验证
首先是开启wireshark
选要抓的包是从哪到哪的,然后开启抓包,同时也要在Mininet下相应的ping。
抓到的包如下: