生成本地网络的子网之间的路径,并生成所述本地网络的所有路由器的路由表
rth的Python项目详细描述
路由表帮助程序
一个新技术爱好者为所有网络开发人员、系统管理员和其他可能找到任何 习惯它。 它旨在简化在网络上工作时路由表的创建和计算。只需提供所需数据 足以让程序自行构建路由表并显示给您。在
完成了吗?在
不,这个程序只是第一个稳定版本。我一直希望创造和创新更多,也许不会 更新了一会儿,但也不意味着我让它失望了。在
联系方式
邮寄:biothewolff[at]gmx[dot]fr
不和谐:比奥瑟沃尔夫7708
你也可以在这两个法国不和谐服务器上找到我:
这是什么?在
routingtables Helper(RTH)是一个旨在提供一种简单、快速的创建路由的方法的程序 桌子。不用手工创建它们,使用虚拟机或您自己的网络和一张纸, 这个虚拟网络生成器和路由表生成器为您完成所有这些。在
文件
班级
您要使用的主类是Dispatcher类。您可以从rth.core.dispatcher
导入它
其他的类,每个类都做一部分工作,是NetworkCreator
,Ants
和{
如何使用软件
这里最大的问题是如何以正确的方式格式化数据。 要生成路由表,我们需要三件事:子网、路由器和链路。因为电脑不是 有意识的机器,它需要链接来虚拟地重建网络,并在这些乱七八糟的数字和名字中找到路径。在
程序的一般流程和用法
这是阅读和理解最简单、最快的部分。
您只需要导入调度程序,创建一个实例,execute()
以正确的方式完成!在
from rth.core.dispatcher import Dispatcher inst = Dispatcher() inst.execute(subnetworks, routers, links) # And it's all done ! # You can then display the output in the console inst.display_routing_tables() # or output it to a file (txt will be the best format for now) inst.output_routing_tables("D:/Projects/output.txt")
子网数据
子网数据是您必须以以下格式提供的字典:{NAME: CIDR, ...}
表示将
子网作为密钥,它们在值上对应CIDR。在
示例:
^{pr2}$注意:如果您不想给子网取任何名称,请将密钥保留为空字符串(''
),它将自动
命名为<Untitled Network#ID:{ID HERE}>
(其中{ID HERE}
是网络的唯一ID)
路由器数据
路由器数据也是一个字典,类似于子网数据。唯一的区别是你必须给予的价值;
格式是{NAME: HAS_INTERNET_CONNECTION, ...}
。HAS_INTERNET_CONNECTION
值必须为True或None。
True
表示路由器已连接到internet,None
表示没有
示例:
routers={0:True,1:None,2:None,3:None}
警告:在当前版本中,只有ONE路由器具有internet连接。如果 多个或少个设置了internet连接。在
具有互联网连接的路由器在下面称为“主路由器”。在
链接数据
链接到最关键的格式也是最重要的。格式是
{ROUTER_NAME: {SUBNETWORK_NAME: IP, ...}, ...}
。所以,为了更确切地解释它,你必须把
每个路由器的已连接子网和路由器连接到子网的IP。在
IP
值可以是IPv4,也可以是None
。如果给定None
,程序将自动为路由器分配一个IP,
它将是从子网范围末尾开始的第一个可用地址。在
示例:
links={0:{"A":"10.0.1.200"},1:{"A":None,"C":"10.0.3.254"},2:{"A":"10.0.1.253","B":"10.0.2.253"},3:{"B":"10.0.2.252","C":None}}
现在就把这一切结合到一起
fromrth.core.dispatcherimportDispatchersubnetworks={'A':"10.0.1.0/24",'B':"10.0.2.0/24",'C':"10.0.3.0/24"}routers={0:True,1:None,2:None,3:None}links={0:{"A":"10.0.1.200"},1:{"A":None,"C":"10.0.3.254"},2:{"A":"10.0.1.253","B":"10.0.2.253"},3:{"B":"10.0.2.252","C":None}}inst=Dispatcher()inst.execute(subnetworks,routers,links)
隐藏选项和输出格式
隐藏的选择和对路径的影响
这个标题可能有点奇怪,但一会儿就会明白。专业人士当它遇到几种可能的方法时 从一个子网到另一个子网,必须做出选择。因此,程序所遵循的路径 当然,在最后的路由表上可见可能会打扰您。所以,为了消除疑虑,帮助用户找到 路径更快,我在输出中加入了“跳跃”秒。在
看起来像这样:
----- HOPS ----- From subnetwork A to subnetwork B: router 2 From subnetwork A to subnetwork C: router 2 > router 1 From subnetwork A to subnetwork D: router 2 > router 1 > router 3 From subnetwork B to subnetwork A: router 2 ... (I only show a small amount here, even though in reality there are more lines)
它将帮助您了解所走的道路。在
输出格式
如您所料,路由表的输出不是表。至少现在是这样。 目前的情况如下:
----- ROUTING TABLES ----- Router MyRouter - 192.168.0.0/24 : 192.168.0.254 via 192.168.0.254 - 192.168.1.0/24 : 192.168.1.254 via 192.168.1.254 - 0.0.0.0/0 : 192.168.1.253 via 192.168.1.254 - 10.0.0.0/24 : 192.168.0.253 via 192.168.0.254 - 10.0.1.0/24 : 192.168.1.253 via 192.168.1.254
您可能已经猜到了,它的格式是DESTINATION NETWORK : GATEWAY via INTERFACE
- 项目
标签: