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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章