I am trying to setup a mininet topology consisting one switch connected to three host. The below code does exactly the same thing and bring up the topology fine. But i see, none of the host.cmd is taking effect. If i copy paste the commands on the device console, then they work fine.
The below command just dont work :
h1.cmd('ifconfig lo 122.1.1.1 netmask 255.255.255.255')
similarly, the below command configures the mac but not the IP on the interface.
link_h1s1.intf1.config(ip='100.168.0.1/24', mac = '00:00:00:00:00:01')
Looks like the problem if specific to hosts. At the end of the program i paste the output topology.
somebody expert with working with mininet pls help
from mininet.net import Mininet
from mininet.node import Controller, OVSKernelSwitch, UserSwitch, DefaultController
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import Link, TCLink
#reference : http://intronetworks.cs.luc.edu/current/html/mininet.html
def topology():
net = Mininet()
#Add Controller to the Topology
c0 = net.addController( 'c0',
controller=DefaultController)
# Add hosts and switches
h1 = net.addHost( 'h1')
h2 = net.addHost( 'h2')
h3 = net.addHost( 'h3')
#Add L2 Switch
s1 = net.addSwitch( 's1')
#Add links
link_h1s1 = net.addLink( h1, s1 , intfName1 = 'h1-s1', intfName2 = 's1-h1')
link_h2s1 = net.addLink( h2, s1 , intfName1 = 'h2-s1', intfName2 = 's1-h2')
link_h3s1 = net.addLink( h3, s1 , intfName1 = 'h3-s1', intfName2 = 's1-h3')
link_h1s1.intf1.config(ip='100.168.0.1/24', mac = '00:00:00:00:00:01')
link_h2s1.intf1.config(ip='100.168.0.2/24', mac = '00:00:00:00:00:02')
link_h3s1.intf1.config(ip='100.168.0.3/24', mac = '00:00:00:00:00:03')
link_h1s1.intf2.config(ip=None, mac = '00:00:00:00:00:04')
link_h2s1.intf2.config(ip=None, mac = '00:00:00:00:00:05')
link_h3s1.intf2.config(ip=None, mac = '00:00:00:00:00:06')
#h1.setIP('122.1.1.1/32')
h1.cmd('ifconfig h1-s1 100.168.0.1 netmask 255.255.255.0')
h2.cmd('ifconfig h2-s1 100.168.0.2 netmask 255.255.255.0')
h3.cmd('ifconfig h3-s1 100.168.0.3 netmask 255.255.255.0')
#Setting lo IP addresses
h1.cmd('ifconfig lo 122.1.1.1 netmask 255.255.255.255')
h2.cmd('ifconfig lo 122.1.1.2 netmask 255.255.255.255')
h3.cmd('ifconfig lo 122.1.1.3 netmask 255.255.255.255')
#finished building the Topology
net.build()
#Star the Controller
#c0.start()
#start the Switches
#s1.start( [c0] )
net.start()
print "*** Running CLI"
CLI( net )
print "*** Stopping network"
net.stop()
if __name__ == '__main__':
setLogLevel( 'info' )
topology()
output of host h1
mininet> h1 ifconfig
h1-s1 Link encap:Ethernet HWaddr 00:00:00:00:00:01
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0 << default IP 10.1.1.1/8 is taken
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.255.255.255 << Default loopback addr is taken
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)