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代碼指令差不多都忘記完了,還需要重新熟悉一下。同學們遇到的問題也是千奇百怪哈哈哈哈哈。