有没有mininet python api的官方api
1个回答
推荐于2016-07-27 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517198
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
下面是我的毕业论文中有关Mininet自定义拓扑的部分,希望对你有帮助噢。
为Mininet添加自定义拓扑:
Mininet原生提供了多种拓扑类型:
SingleSwitchTopo:简单拓扑(Host——Switch——Host)
LinearTopo(k,n):链状拓扑,k台交换机以单链形态连接,分别下接n台主机
TreeTopo(depth,fanout):树形拓扑,创建一个深度为depth、扇出为fanout的树状拓扑
Mininet默认情况下并没有实现胖树的网络拓扑,但Mininet支持添加自定义拓扑的功能。本文根据Mininet自带的拓扑定义,在原拓扑库中添加了胖树拓扑类,实现从命令行直接启动k叉胖树拓扑环境。
(注:加粗的代码行为自定义拓扑关键部分)
mininet/topo.py:
所有的拓扑类都继承自topo模块下的Topo基类,Topo基类实现了addNode、addSwitch、addHost、addPort、addLink等添加节点、链路的重要方法。Topo模块中还实现了单交换机拓扑SingleSwitchTopo类和链状拓扑LinearTopo类。
mininet/topolib.py:
topolib模块中定义了树状拓扑TreeTopo类,自定义的拓扑类可以定义在topolib模块下也可定义在topo模块下,拓扑类的__init__方法中可添加构建拓扑所需要的参数,Mininet在调用拓扑类时会将从命令行接收的topo选项之后的参数*args和关键字参数**kwargs传递到该拓扑类的__init__方法中初始化该拓扑类的对象。如本文中定义的FatTree拓扑类需要接收参数k以确定胖树的叉数:
class FatTreeTopo( Topo ):
def __init__( self, k = 4 ):
"Create fat-tree topo."
# initialization code
bin/mn:
mn是Mininet执行的解释器,负责解析参数,定义了MininetRunner类用来构建、配置并运行整个Mininet平台。自定义的拓扑类需要导入mn中,然后在存放拓扑参数的字典TOPOS中加入对应的键值,就可以在mn命令中使用自定义的拓扑了:
from mininet.topolib import FatTreeTopo
TOPOS = { 'linear': LinearTopo,
'single': SingleSwitchTopo,
'tree': TreeTopo,
'fattree': FatTreeTopo }
启动8叉胖树自定义拓扑的Mininet拓扑环境:
$ sudo mn --topo=fattree, k=8
转载
为Mininet添加自定义拓扑:
Mininet原生提供了多种拓扑类型:
SingleSwitchTopo:简单拓扑(Host——Switch——Host)
LinearTopo(k,n):链状拓扑,k台交换机以单链形态连接,分别下接n台主机
TreeTopo(depth,fanout):树形拓扑,创建一个深度为depth、扇出为fanout的树状拓扑
Mininet默认情况下并没有实现胖树的网络拓扑,但Mininet支持添加自定义拓扑的功能。本文根据Mininet自带的拓扑定义,在原拓扑库中添加了胖树拓扑类,实现从命令行直接启动k叉胖树拓扑环境。
(注:加粗的代码行为自定义拓扑关键部分)
mininet/topo.py:
所有的拓扑类都继承自topo模块下的Topo基类,Topo基类实现了addNode、addSwitch、addHost、addPort、addLink等添加节点、链路的重要方法。Topo模块中还实现了单交换机拓扑SingleSwitchTopo类和链状拓扑LinearTopo类。
mininet/topolib.py:
topolib模块中定义了树状拓扑TreeTopo类,自定义的拓扑类可以定义在topolib模块下也可定义在topo模块下,拓扑类的__init__方法中可添加构建拓扑所需要的参数,Mininet在调用拓扑类时会将从命令行接收的topo选项之后的参数*args和关键字参数**kwargs传递到该拓扑类的__init__方法中初始化该拓扑类的对象。如本文中定义的FatTree拓扑类需要接收参数k以确定胖树的叉数:
class FatTreeTopo( Topo ):
def __init__( self, k = 4 ):
"Create fat-tree topo."
# initialization code
bin/mn:
mn是Mininet执行的解释器,负责解析参数,定义了MininetRunner类用来构建、配置并运行整个Mininet平台。自定义的拓扑类需要导入mn中,然后在存放拓扑参数的字典TOPOS中加入对应的键值,就可以在mn命令中使用自定义的拓扑了:
from mininet.topolib import FatTreeTopo
TOPOS = { 'linear': LinearTopo,
'single': SingleSwitchTopo,
'tree': TreeTopo,
'fattree': FatTreeTopo }
启动8叉胖树自定义拓扑的Mininet拓扑环境:
$ sudo mn --topo=fattree, k=8
转载
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询