在一个host上面用Mininet搭建了一个网络,这个网络有两个主机h1和h2,一个交换机s1,一个控制器c0,将交换机s1和主机host的网口绑定。
#!/usr/bin/env python import os from mininet.net import Mininet from mininet.node import Controller, RemoteController from mininet.cli import CLI from mininet.link import Intf from mininet.log import setLogLevel, info def ToRealnet(): net = Mininet( topo=None, build=False) info( '*** Adding controller\n' ) net.addController(name='cotyb') info( '*** Add switches\n') s1 = net.addSwitch('s1') info( '*** Add hosts\n') h1 = net.addHost('h1', ip='0.0.0.0') h2 = net.addHost('h2', ip='0.0.0.0') info( '*** Add links\n') net.addLink(h1, s1) net.addLink(h2, s1) info( '*** Starting network\n') net.start() os.popen('ovs-vsctl add-port s1 eth0') #绑定s1和host的eth0接口 h1.cmdPrint('dhclient '+h1.defaultIntf().name) #给h1的网口用DHCP动态分配IP h2.cmdPrint('dhclient '+h2.defaultIntf().name) ##给h2的网口用DHCP动态分配IP CLI(net) net.stop() if __name__ == '__main__': setLogLevel( 'info' ) ToRealnet()
通过python运行源代码生成拓扑,然后用xterm h1打开h1的终端,使用ifconfig命令,结果如下图,可以看出红框中的IP地址:192.168.29.179,和host处于同一网段,而且多次运行,发现分配的IP是不一样的,说明是动态分配的。
接下来再在h1的终端下ping和host统一网段的主机。