MiniNet的初步使用
程序员文章站
2022-07-06 18:01:06
...
MiniNet的初步使用
-
用可视化工具miniedit 创建一个网络拓扑,进行相应配置后,保存为 python 脚本, 运行 python 脚本重现拓扑;
-
命令行创建拓扑:
i. 最小的网络拓扑,一个交换机下挂两个主机。
ii. 每个交换机连接一个主机,交换机间相连接。本例:4 个主机,4 个交换机。
iii. 每个主机都连接到同一个交换机上。本例:3 个主机,一个交换机。
-
交互式界面创建主机、交换机等
-
对节点间进行 ping 测试。
1. 用可视化工具miniedit 创建一个网络拓扑,进行相应配置后,保存为 python 脚本, 运行 python 脚本重现拓扑;
- 找到miniedit 的安装目录 ,mininet在安装的时候将
miniedit.py
写在了这个目录下cd /usr/share/doc/mininet/examples
-
运行miniedit
sudo python2 miniedit.py
-
拖动创建
-
保存为python脚本
- myfrist.py
#!/usr/bin/python from mininet.net import Mininet from mininet.node import Controller, RemoteController, OVSController from mininet.node import CPULimitedHost, Host, Node from mininet.node import OVSKernelSwitch, UserSwitch from mininet.node import IVSSwitch from mininet.cli import CLI from mininet.log import setLogLevel, info from mininet.link import TCLink, Intf from subprocess import call def myNetwork(): net = Mininet( topo=None, build=False, ipBase='10.0.0.0/8') info( '*** Adding controller\n' ) info( '*** Add switches\n') s1 = net.addSwitch('s1', cls=OVSKernelSwitch) info( '*** Add hosts\n') h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None) h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None) info( '*** Add links\n') net.addLink(h1, s1) net.addLink(h2, s1) info( '*** Starting network\n') net.build() info( '*** Starting controllers\n') for controller in net.controllers: controller.start() info( '*** Starting switches\n') net.get('s1').start([]) info( '*** Post configure switches and hosts\n') CLI(net) net.stop() if __name__ == '__main__': setLogLevel( 'info' ) myNetwork()
-
运行python脚本
sudo python2 myfrist.py
2.命令行创建拓扑
- 最小的网络拓扑,一个交换机下挂两个主机。
sudo mn --topo single,2
-
每个交换机连接一个主机,交换机间相连接。本例:4 个主机,4 个交换机。
sudo mn --topo linear,4
-
每个主机都连接到同一个交换机上。本例:3 个主机,一个交换机。
sudo mn --topo single,3
-
交互式界面创建主机、交换机等
py net.addHost('h3') py net.addLink(s1,net.get('h3')) py s1.attach('s1-eth3') py net.get('h3').cmd('ifconfig h3-eth0 10.3')
- 对节点间进行 ping 测试。
h1 ping h2