mininet中有通過python方式創(chuàng)建拓?fù)涞氖纠募opo-2sw-2host.py贮聂,在custom文件夾中靠柑,可以直接拷貝修改:
cp topo-2sw-2host.py new.py
(偷懶的情況下創(chuàng)建一個(gè)空文件,在編輯器里寫好再貼過來)
三個(gè)主要的函數(shù):
- addHost() 創(chuàng)建主機(jī)
- addSwitch() 創(chuàng)建交換機(jī)
- addLink() 添加鏈路
貼一點(diǎn)實(shí)用的vim編輯器刪除技巧:
貌似寫鏈路的時(shí)候一定要串聯(lián)著來吓懈,比如下圖歼冰,如果按照h1-s1,h2-s2耻警,s1-s2的順序添加隔嫡,運(yùn)行的時(shí)候很可能報(bào)錯(cuò)。
![](https://www.processon.com/chart_image/thumb/58ddc4bbe4b0a580534fd194.png)
運(yùn)行拓?fù)洳⑦B接控制器:
sudo mn --custom new.py --topo mytopo --mac --controller=remote,ip=192.168.179.130,protocols=OpenFlow13
--mac用來最簡(jiǎn)化MAC地址甘穿,即從00:00:00:00:00:01開始腮恩。mytopo是新建的拓?fù)涿Q,192.168.179.130是我的控制器的IP地址温兼。
登錄ODL web頁面就看到拓?fù)鋱D和節(jié)點(diǎn)信息了秸滴。
在mininet中沒有添加流表的時(shí)候兩臺(tái)主機(jī)就可以ping通,原因在于控制器中的二層自學(xué)習(xí)功能募判,因?yàn)檫@是控制器可以通過下發(fā)流表的方式來使交換機(jī)產(chǎn)生流表荡含,從而兩臺(tái)機(jī)器ping通。
這時(shí)如果你關(guān)閉了控制器届垫,或者下發(fā)了action為drop的流表释液,你會(huì)發(fā)現(xiàn)兩臺(tái)主機(jī)就ping不同了。這個(gè)例子其實(shí)很好地闡釋了sdn網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)的區(qū)別敦腔。