以下是在安装使用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()