資訊人筆記

Work hard, Have fun, Make history!

使用者工具

網站工具


ccis_lab:sdn:hw1

SDN:Lab 練習一

0x01 作業要求

  • 安裝 Mininet
  • 寫一個 mininet script
    • Topo 為 1 switch 連接 2 hosts
    • 設置 switch 的 fail mode 為 secure/standalone
  • 分別在 secure/standalone 下測試 pingall,並比較與理解其差異

0x02 安裝 Mininet

0x03 Mininet Script

hw1_net.py
#!/usr/bin/env python
# -*- coding: utf8 -*-
 
"""
2016.07.28,first homework from lab
2 host 1 switch with failmode setting
$ sudo python hw1_net.py or sudo ./hw1_net.py
"""
 
 
from mininet.log import setLogLevel, info
from mininet.net import Mininet
from mininet.cli import CLI
 
def MininetTopo():
    net = Mininet()
 
    info("Create host nodes.\n")
    lefthost = net.addHost("h1")
    righthost = net.addHost("h2")
 
    info("Create switch node.\n")
    switch = net.addSwitch("s1", failMode = 'standalone')
    #switch = net.addSwitch("s1", failMode = 'secure')
 
    info("Create Links.\n")
    net.addLink(lefthost, switch)
    net.addLink(righthost, switch)
 
    info("Build and start network.\n")
    net.build()
    net.start()
 
    info("Run mininet CLI.\n")
    CLI(net)
 
 
if __name__ == '__main__':
    setLogLevel('info')
    MininetTopo()

0x04 fail Mode

  • standalone: controller 連接失敗時,ovs-vswitchd 接管封包轉發,轉發行為同 legacy switch,此時後台仍會嘗試連接 controller,一旦連接上就會退出 fail mode
  • secure: controller 連接失敗時,ovs-vswitchd 不會接管封包轉發,此時若需轉發的封包在 table 中沒有 match rule 就會被丟棄

0x 參考資料

ccis_lab/sdn/hw1.txt · 上一次變更: 127.0.0.1