基于Dataframe的网络规划和分析

(整期优先)网络出版时间:2022-12-16
/ 2

基于Dataframe的网络规划和分析

张伟胜

义乌工商职业技术学院

摘要:文章从课程资源整合角度,阐明了规划文档在网络工程实践工作中的重要性,分析了excel文件在实际使用过程中的优缺点,通过比较,利用PythonDataframe数据结构,生成了包含VlanID,网络号,Ip地址段,网关地址,交换机名,交换机管理地址,宿舍号,交换机端口等字段的csv表格文件。简化了规划工作的繁杂程度,体现了热点编程语言在解决实际工作困难中的优势。

关键词:网络规划;IPDataframecsv

一、需求分析

在计算机网络配置中会涉及路由器和交换机的操作,当网段数量少时,无需特别事先规划,提供拓扑图或类似信息就能完成组网、调试工作。但是当网络规模大,则容易出现配置混乱,并且一旦出错,如果没有事先合理规划相关信息,很难摸排故障,耽误组网工作。

在规划文件中,为便于配置和后期的维护,一般需要包含如下信息:VlanID,即需要使用的Vlan号;网络号,即该Vlan的网络地址;Ip地址段,即该网络的主机IP地址范围;网关地址,即三层交换机上的网关接口地址;交换机名,即该vlan所属的交换机名;交换机管理地址,即该vlan所属的交换机管理地址;宿舍号,即该vlan所属的宿舍;交换机端口,即该vlan包含哪几个交换机的端口。

文章以如下需求为例:某学生公寓有500个宿舍,每宿舍6个信息点,每个宿舍一个网段,现网络中心提供172.16.0.0/19供本公寓使用,完成网络规划。

根据如上要求,假设每个宿舍网段的主机位为h,子网位为n,则需满足以下三个条件:

h+n=32-19=13,

2**h-3>=6

2**n>=500

其中的3表示一个网络号,一个广播地址和一个网关地址。由上述要求可得:h=4 n=9,即每个子网主机位4位,能够获得2**4-3=13个用户IP地址;子网位9位,能够获得512个网段。

二、Dataframe数据格式
为完成上述规划,可以借助Excel软件,但在实际操作过程中,部分字段不能很好的自动填充完成,需要大量的查找、替换才能完成,容易形成错误配置。

Dataframe是一种表格型数据结构,是 Pandas 的重要数据结构之一,也是在使用Pandas 进行数据分析过程中最常用的结构之一。DataFrame既有行索引,也有列索引,表格中每列的数据类型可以不同,比如可以是字符串、整型或者浮点型等。Dataframe可使用字典或列表创建,如下代码就可以创建一个Dataframe数据结构,并将之保存为.csv文件格式:

a = [1, 2, 3]

b = [4, 5, 6]

df = pd.DataFrame({'字段1': a, '字段2': b})

df.to_csv('规划.csv', index=False, sep=',')
三、规划实现
利用Dataframe数据结构在完成网络规划时,比Excel更易排错修改,而且一次运行生成正确文档后,可适当封装,反复调用,速度快、不易出错。

完成过程中需先定义各个空列表变量和多个计数器整形变量,其中Vlan的完成代码如下所示:

Vlans = 500  # 网络数量

fname = “宿舍” #文件名

v_start = 100  #起始vlan编号 :100

vlan = []  # vlan号

for i in range(vlans):

    vlan.append("VLAN" + str(v_start + i))

df = pd.DataFrame({'vlanid': vlan})

df.to_csv(fname + '.csv', index=False, sep=',')

图 1  变量定义代码截图

具体定义如图1所示:vlan列表用于保存vlan号,IPr列表用于保存地址段,ip_3变量用于标记ip地址第三段开始地址,ip_4变量用于标记ip地址第四段开始地址,gateway列表用于保存网关地址,switch_ip列表用于交换机管理地址列表,  switch_port变量用于标记交换机起始端口号,switch_ip_4变量用于标记交换机管理地址第四位,switch_name列表用于保存交换机名,room_no 用于保存宿舍号列表,room_build用于标记宿舍楼的编号,room用于标记宿舍楼内房间的起始标号,    switch_ports列表用于保存交换机端口号范围。

图 2  列表生成代码截图

列表生成代码如图2所示:循环次数为500,需生成的列表字段有:VlanID,网络号,Ip地址段,网关地址,交换机名,交换机管理地址,宿舍号,交换机端口。其中VlanID实现简单,逐一递增即可;Ip地址段要注意当计数器ip_4到达254时,ip_4要归1ip_3自增1,如若网段数量多,ip_1_2也要分开定义变量;网络号和网关地址可根据

Ip地址段首地址减1和提取尾地址实现。宿舍号要注意每楼层的房间数量rooms,当自变量room大于rooms时,room要归1,楼层数自增1;交换机端口要根据每台交换机的端口数量和每个宿舍需要的端口数量进行循环,在实例中当switch_port大于48时,switch_port1,交换机管理地址和交换机名的尾数变量switch_ip_4自增1。最后完成的.csv文件。

四、结语

网络规划文档设计需要对IP地址计算和子网规划原理理解深刻,由于学习相关内容的初学者参与工程实践的机会较少,经常出现今天理解明天忘的现象。能够结合当前热点编程语言,用程序的方法记录计算过程,有助于激发学习者的学习热情,在纠错、调试的过程中内化计算逻辑,将复杂、冗长的修改过程变得富有挑战,形成碰到问题想办法的行为习惯,得到轻松、愉快的工作体验。

参考文献:

[1]曹智刚. 计算机网络规划及设计分析[J].  计算机产品与流通. 2018.

[2] 张显江,黄培花.  网络规划与设计》综合实验体系的设计与开发[J]. 山西电子技术. 2013(04)

1