SDN第二次上机作业
SDN第二次上机作业
任务一实验截图
任务二实验截图
进阶任务
lab.py 代码如下所示:
# !/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import Node
from mininet.link import Link
from mininet.node import CPULimitedHost,RemoteController
from mininet.link import TCLink
from mininet.util import dumpNodeConnections
from mininet.log import setLogLevel,info
from mininet.cli import CLI
import os
class myTopo(Topo):
#"Single switch connected to n hosts."
def __init__(self):
Topo.__init__(self)
s1=self.addSwitch('s1')
s2=self.addSwitch('s2')
h1=self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
h4 = self.addHost('h4')
self.addLink(s1, s2)
self.addLink(h1, s1)
self.addLink(h2, s1)
self.addLink(h3, s2)
self.addLink(h4, s2)
def create_network():
#"Create network and run simple performance test"
topo = myTopo()
net = Mininet(topo=topo, host=CPULimitedHost, link=TCLink)
net.start()
os.system('./script.sh')
CLI(net)
net.stop()
if __name__ == '__main__':
setLogLevel('info')
create_network()
script.sh 文件代码如下:
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:2
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:3
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:1
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:2
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:3
个人心得
topo的端口我直接按照默认的端口来的,所以下发流表项有所不一样。进阶任务有点偷懒,没有按照老师给出的参考文件来写,不过这个偷懒的代码也是可以实现相关内容的。还有以前敲ovs代码指令差不多都忘记完了,还需要重新熟悉一下。同学们遇到的问题也是千奇百怪哈哈哈哈哈。