SDN第三次上机作业

本文详细介绍使用Mininet创建拓扑结构,并通过OVS命令配置流表实现VLAN功能的具体步骤。包括创建包含两个交换机及六个主机的拓扑结构、配置流表使不同主机处于不同的VLAN中并验证其隔离效果。

1.创建拓扑

代码:

#!/usr/bin/python

from mininet.topo import Topo

class topo2(Topo):

    def __init__(self):
        Topo.__init__(self)

        switchs = []

        for i in range(2):
            sw = self.addSwitch("s{}".format(i + 1))
            switchs.append(sw)

        self.addLink(switchs[0], switchs[1])

        id = 1
        for sw in switchs:
            for i in range(3):
                h = self.addHost("h{}".format(id))
                self.addLink(sw, h)
                id += 1


topos = {"topo2": (lambda : topo2()) }

1286939-20171213172217629-151156804.png

1286939-20171213172229144-1388794308.png

2.利用OVS命令下发流表,实现VLAN功能

对s1下流表:

zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:1
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:1
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=4,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:1
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=2,actions=pop_vlan,output=4
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output=3
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output=2
zhangsihuai@ubuntu:~$ 

对s2下流表:

zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=4,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:1
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:1
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:1
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output=2
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output=3
zhangsihuai@ubuntu:~$ sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=2,actions=pop_vlan,output=4

3.利用OVS命令查看流表

1286939-20171213191242785-2069288374.png

1286939-20171213191257410-763098013.png

4.验证性测试

截图验证:

h1--h4互通
h2--h5互通
h3--h6互通
其余主机间无法通信

1286939-20171213172743410-68821914.png

5.Wireshark抓包验证

1286939-20171213172759863-1826370165.png

转载于:https://www.cnblogs.com/seahuai/p/8034026.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值