以下是在安裝使用Mininet過程中遇到的問題以及解決方法
一、Mininet
mininet安裝完全參考官方wiki。
在Windows環境下。
在VMware workstation 裏面安裝Mininet VM虛擬機,wireshark啓動時候遇到問題。
通過在windows上下載Xming服務器,用putty進行X11連接得到了解決,後來發現好像可以忽略這個小問題。Linux環境。
在EXSI中安裝mininet的時候遇到了ping不通的情況。原因是ubuntu版本過高,又重新裝成14.04版本。
二、mininet與外網互通
mininet創建的拓撲屬於一個小型局域網,如果想與外網互通,需要利用它自帶的函數。
參考mininet源碼nat.py與hwinf.py,實現與外網互通。下面是實現代碼:
1. """Custom topology example
2.
3. Two directly connected switches plus hosts for each switch:
4.
5. host --- switch --- switch --- host
6.
7. """
8. import os
9. from mininet.net import Mininet
10. from mininet.node import Controller, RemoteController
11. from mininet.cli import CLI
12. from mininet.link import Intf
13. from mininet.log import setLogLevel, info
14.
15. def myNetwork():
16.
17. net = Mininet( topo=None, build=False)
18.
19. info( '*** Adding controller\n' )
20. net.addController(name='c0')
21.
22. info( '*** Add switches\n')
23. s1 = net.addSwitch('s1')
24. s2 = net.addSwitch('s2')
25.
26. info( '*** Add hosts\n')
27. h1 = net.addHost('h1')
28. h2 = net.addHost('h2')
29. h3 = net.addHost('h3')
30. h4 = net.addHost('h4')
31.
32. info( '*** Add links\n')
33. net.addLink(h1, s1)
34. net.addLink(h2, s1)
35. net.addLink(h3, s2)
36. net.addLink(h4, s2)
37.
38. Intf( 'eth0', node=s1 )
39. info( '*** Starting network\n')
40. net.start()
41.
42.
43. CLI(net)
44. net.stop()
45.
46. if __name__ == '__main__':
47. setLogLevel( 'info' )
48. myNetwork()