• home/用戶名/學號/lab2/目錄下執(zhí)行ovs-vsctl show命令、以及p0和p1連通性測試的執(zhí)行結(jié)果截圖
  • /home/用戶名/學號/lab2/目錄下開啟Mininet CLI并執(zhí)行pingall命令的截圖、上述目錄下查看OVS流表的命令結(jié)果截圖,wireshark抓包截圖



  • 進階要求
#!/usr/bin/env python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='10.0.0.0/8')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=Controller,
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)

    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(s1, h1,1,1)
    net.addLink(s1, h2,2,1)
    net.addLink(s2, h3,1,1)
    net.addLink(s2, h4,2,1)
    net.addLink(s1, s2,3,3)

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s1').start([c0])
    net.get('s2').start([c0])

    info( '*** Post configure switches and hosts\n')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:1')
    s1.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:2')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:1')
    s2.cmd('sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:2')
    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()




-個人總結(jié)
本次實驗主要是學會了一些ovs-vsctl的基礎(chǔ)操作,創(chuàng)建交換機,并且為交換機增加端口,可以設(shè)置端口號,端口類型,并且配置其IP地址,如何創(chuàng)建python文件并且使用python代碼來構(gòu)建拓撲,為拓撲下發(fā)流表達到vlan劃分的目的,實現(xiàn)相同vlan之間的互通。并且學會了在命令行界面使用wireshark。上次沒有做進階作業(yè),這次嘗試完成了一下進階作業(yè),其中的python代碼主要是參考老師給的代碼以及上次作業(yè)的代碼相結(jié)合,并且進行了修改。在過程中也遇到了一些問題主要是通過查找資料以及請教已經(jīng)完成的同學,最后解決了問題。
問題:在下發(fā)流表的時候出現(xiàn)了問題

解決辦法:需要重新開啟一個界面