[英]Hosts can't ping each other on mininet VM with custom topology and OpenDayLight
主機操作系統:Win10
嘗試過的 Mininet VM:Ubuntu Server 18.04、18.04.6、20.04、22.04,由 mininet 提供的預配置 VM 我也嘗試使用預配置的 ODL VM 並自己從源代碼構建。
虛擬機軟件:VMware Workstation
嘿,我對 SDN、mininet 和 ODL 還很陌生。 我已經設置了一個橋接 VM,將 ODL 實例作為遠程控制器運行,然后我還設置了一個包含 mininet 的單獨橋接 VM。
我想指出一個事實,如果我運行諸如sudo mn -x --mac --topo single,3 --controller=remote,ip=192.168.0.37,port=6633 --switch ovsk,protocols=OpenFlow13
的命令(這本質上是我試圖通過 python 腳本重新創建的),一切正常; 我的主機可以相互通信,並且拓撲按預期顯示在我的 ODL webview 中。
我試過查看多個 SO 線程,但沒有運氣,我也無法在網上找到任何資源來解決我的問題。
我的問題是,每當我嘗試使用sudo python/2/3 script.py
運行我的自定義 mininet 拓撲時,我的主機無法相互 ping 通,並且拓撲不會出現在我的 ODL webview 中。 我已經嘗試運行越來越簡單的python腳本,試圖讓它工作。 這是迄今為止我嘗試過的最簡單的。 腳本.py:
#!/usr/bin/python
from mininet.net import Mininet
from mininet.node import Controller
from mininet.cli import CLI
from mininet.link import TCLink
from mininet.log import setLogLevel, info
from mininet.node import OVSKernelSwitch, RemoteController
def myNetwork():
net = Mininet( topo=None, build=False)
info( '*** Adding controller\n' )
net.addController(name='c0',controller=RemoteController,ip='192.168.0.37',port=6633)
info('*** Add single switch\n')
s1 = net.addSwitch('s1')
info('*** Add hosts\n')
h1 = net.addHost('h1')
h2 = net.addHost('h2')
h3 = net.addHost('h3')
h4 = net.addHost('h4')
h5 = net.addHost('h5')
h6 = net.addHost('h6')
info('*** Add links with QoS parameters\n')
net.addLink(h1, s1, cls=TCLink, bw=1000, delay='1ms', loss=1)
net.addLink(h2, s1, cls=TCLink, bw=100, delay='1ms', loss=1)
net.addLink(h3, s1, cls=TCLink, bw=50, delay='1ms', loss=1)
net.addLink(h4, s1, cls=TCLink, bw=10, delay='1ms', loss=1)
net.addLink(h5, s1, cls=TCLink, bw=5, delay='1ms', loss=1)
net.addLink(h6, s1, cls=TCLink, bw=1, delay='1ms', loss=1)
info('*** Starting network\n')
net.start()
CLI(net)
net.stop()
if __name__ == '__main__':
setLogLevel('info')
myNetwork()
還需要注意的是,如果我在 miniedit 中創建網絡(將控制器設置為 RemoteController 並輸入其 IP),打開 h1 的終端時,我可以完全正常地 ping h2。 第二次我保存 l2 腳本,關閉 miniedit 並嘗試使用sudo python/2/3 l2script.py
運行腳本,沒有主機可以再次相互 ping 通。
任何幫助將不勝感激,因為我一生都無法弄清楚問題所在。 這幾天我一直在撓頭。
干杯,祝你好運!
我在 s0 上運行了 wireshark,每當我嘗試 ping 時,都會收到大量 ARP 請求,但從未發出響應。
我已經設法解決了我的問題。
原來我發布的代碼不應該工作(afaik)。 在我之前嘗試過的版本中,我使用s1 = net.addSwitch('s1', cls=OVSKernelSwitch, protocol='OpenFlow13')
聲明了 s0 ,我應該在其中完成s1 = net.addSwitch('s1', cls=OVSKernelSwitch, protocols='OpenFlow13')
(在protocols='OpenFlow13'
的末尾錯過了一個s。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.