A. 怎么用python写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以确定胖树的叉数:classFatTreeTopo(Topo):def__init__(self,k=4):"Createfat-treetopo."#initializationcodebin/mn:mn是Mininet执行的解释器,负责解析参数,定义了MininetRunner类用来构建、配置并运行整个Mininet平台。自定义的拓扑类需要导入mn中,然后在存放拓扑参数的字典TOPOS中加入对应的键值,就可以在mn命令中使用自定义的拓扑了:frommininet.topolibimportFatTreeTopoTOPOS={'linear':LinearTopo,'single':SingleSwitchTopo,'tree':TreeTopo,'fattree':FatTreeTopo}启动8叉胖树自定义拓扑的Mininet拓扑环境:$sudomn--topo=fattree,k=8
B. 《网络工程师的Python之路》(EVE-NG,导入华为镜像)
网络工程师学习 Python 之旅正式启程,本篇将带你深入了解使用 EVE-NG 搭建实验拓扑的具体操作,特别是与华为 CE12800 设备的结合。
在搭建基础环境后,我们将从思科 Vios-l2 拓扑转而探索华为 CE12800 设备的使用。无论是直接切入华为设备拓扑,还是先从思科开始,本书的实验拓扑搭建部分均可独立阅读和实践,以满足不同读者的需求。
在开始之前,建议先阅读《目录》以了解整个系列的结构和内容概览,确保阅读和实践过程的顺利进行。以下是关键步骤概览:
为实现此目标,推荐使用 MobaXterm 工具,它能免费提供功能支持,通过该工具连接至 EVE-NG 服务器并进行文件传输。请按照如下步骤进行操作:
成功导入镜像后,即可在 EVE-NG 中找到并添加华为 CE12800 设备。接着,启动设备并进行基本操作。实验中,读者需要实现 CE12800 设备之间的连接和互ping,以便熟悉设备的使用。
最后,总结性地提到,通过本篇教程,你将学会如何在 EVE-NG 中导入设备镜像,这不仅适用于华为设备,也适用于其他设备。随着对 EVE-NG 模拟器的熟练掌握,你可以深入研究和应用其他资料,将之视为一台 Linux 机器,利用你的 Linux 技能进行操作。此外,通过桥接设备与实际的 Python 主机,你可以开始探索书中的示例,开启实际的实践学习之旅。