
python自定义mininet拓扑
前言
闲来无聊,想到很早之前都是用GUI来自定义拓扑,这次用python来自定义一下(以前留下的苦果)
过程相对简单
实现过程
三个函数
- 增加主机
addHost('hostname')
- 增加交换机
addSwitch('switchname')
- 增加链路
addLink(node1,node2,node1_port,node2_port)
那我们就建一个哑铃型拓扑吧
from mininet.topo import Topo
class MyTopo(Topo):
def __init__(self):
# initilaize topology
Topo.__init__(self)
# add hosts and switches
host1 = self.addHost('h1')
host2 = self.addHost('h2')
host3 = self.addHost('h3')
host4 = self.addHost('h4')
switch1 = self.addSwitch('s1')
switch2 = self.addSwitch('s2')
# add links
self.addLink(host1, switch1, 1, 1)
self.addLink(host2, switch1, 1, 2)
self.addLink(host3, switch2, 1, 1)
self.addLink(host4, switch2, 1, 2)
topos = {'mytopo': (lambda: MyTopo())}
在对应文件的目录下执行
sudo mn --custom mininet_topo.py --topo mytopo
当然还可以执行mininet一些指定的参数,比如 指定OpenFlow版本 protocols=OpenFlow13
,连接远端控制器 --controller remote