Mininet 创建Topo时指定Host的IP方法

下面的Python代码将创建两个交换机,每个交换机有两个主机相连,并且两个交换机由一个控制器控制的SDN网络。

可以用如下python代码创建上述拓扑,并指定ip:

#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController, Controller
from mininet.cli import CLI
from mininet.link import TCLink
from mininet.log import setLogLevel

class MyTopo(Topo):
    def __init__(self):
        Topo.__init__(self)
        Host1 = self.addHost('h1', ip='10.0.0.2')
        Host2 = self.addHost('h2', ip='10.0.0.3')
	Host3 = self.addHost('h3', ip='10.0.1.2')
	Host4 = self.addHost('h4', ip='10.0.1.3')

        switch1 = self.addSwitch('s1')
	switch2 = self.addSwitch('s2')

	self.addLink(switch1, switch2)
        self.addLink(switch1, Host1)
        self.addLink(switch1, Host2)
	self.addLink(switch2, Host3)
	self.addLink(switch2, Host4)

topos = {'mytopo': (lambda: MyTopo())}

创建Topo:
ammy@ubuntu:~/mininetFile$ sudo mn --custom customtopo-2sw-2h.py --topo mytopo --mac
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4
*** Adding switches:
s1 s2
*** Adding links:
(h1, s1) (h2, s1) (h3, s2) (h4, s2) (s1, s2)
*** Configuring hosts
h1 h2 h3 h4
*** Starting controller
*** Starting 2 switches
s1 s2
*** Starting CLI:

创建topo之后用dump命令验证,可见它们的ip确实如代码中指定的一样:

mininet> dump
<Host h1: h1-eth0:10.0.0.2 pid=12961>
<Host h2: h2-eth0:10.0.0.3 pid=12962>
<Host h3: h3-eth0:10.0.1.2 pid=12963>
<Host h4: h4-eth0:10.0.1.3 pid=12964>
<OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None,s1-eth3:None pid=12968>
<OVSSwitch s2: lo:127.0.0.1,s2-eth1:None,s2-eth2:None,s2-eth3:None pid=12973>
<OVSController c0: 127.0.0.1:6633 pid=12953>
发布了117 篇原创文章 · 获赞 10 · 访问量 22万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章