python自定义mininet拓扑

python自定义mininet拓扑

前言

闲来无聊,想到很早之前都是用GUI来自定义拓扑,这次用python来自定义一下(以前留下的苦果)

转自Mininet 自定义网络拓扑

过程相对简单

实现过程

三个函数

  • 增加主机
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

990007-20170304172116516-414432111.png

当然还可以执行mininet一些指定的参数,比如 指定OpenFlow版本 protocols=OpenFlow13,连接远端控制器 --controller remote

转载于:https://www.cnblogs.com/wpqwpq/p/6501952.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的Python脚本,用于创建一个带有链路聚合的拓扑,并在Mininet环境中运行它。这个拓扑由两个交换机和四个主机组成,每个主机都连接到两个交换机,从而实现链路聚合。 ```python from mininet.topo import Topo from mininet.net import Mininet from mininet.node import OVSSwitch, Controller from mininet.link import Link, Intf class AggTopo(Topo): def __init__(self): Topo.__init__(self) # Create switches s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') # Create hosts h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') # Add links between switches and hosts self.addLink(s1, h1, port1=1) self.addLink(s1, h2, port1=2) self.addLink(s2, h3, port1=1) self.addLink(s2, h4, port1=2) # Add link aggregation between switches self.addLink(s1, s2, port1=3, port2=3, intfName1='eth3', intfName2='eth3', params1={'ip': '10.0.0.1/24'}, params2={'ip': '10.0.0.2/24'}, cls=Link, intf=Intf) if __name__ == '__main__': topo = AggTopo() net = Mininet(topo=topo, switch=OVSSwitch, controller=Controller) net.start() net.pingAll() net.stop() ``` 在这个脚本中,我们首先创建了一个名为AggTopo的自定义拓扑类。在这个类中,我们创建了两个交换机和四个主机,并将它们连接起来。我们还添加了一个链路聚合连接,将两个交换机连接起来。这个链路聚合连接使用了Link和Intf类,这两个类可以让我们手动指定接口名称和IP地址。 在主程序中,我们使用这个自定义拓扑类创建了一个Mininet实例,并使用OVSSwitch作为交换机类型,使用Controller作为控制器类型。我们启动Mininet实例,让所有主机相互ping一下,然后停止Mininet实例。 这是一个非常简单的例子,但它演示了如何使用Mininet创建一个带有链路聚合的拓扑。您可以在此基础上构建更复杂的拓扑,实现更高级的网络模拟。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值