美国宇航局的补给任务将科学实验带到空间站——抛物线

自动化:如何简化网络范围内的交换机升级

自动化可以在重复的网络任务中产生很大的不同,而这正是我们使用 Python 创建的脚本和一组开源工具来简化企业交换机升级所做的工作。

该项目获得了多项好处,其中三个好处是消除了手动过程中固有的大量人为错误、整体部署速度更快以及显着节省了成本。

升级大型交换网络始终是一项挑战。 典型的解决方案是仔细记录旧交换机配置和配线架接线,然后手动配置新交换机并更换接线。 必须仔细跟踪端点,以便将它们分配到适当的 VLAN 并具有正确的接口配置。

这个过程可能会更加复杂,因为新交换机可能具有新功能,并且不可避免地具有与旧交换机不同的界面布局。

在这里,我们将描述 NetCraftsmen 受雇执行的项目、交换机供应商建议的手动流程以及我们自己编写的自动化流程。 这是使用升级作为消除累积技术债务的机会的一个很好的例子。

该项目

我们的客户在 100 个地点拥有超过 20,000 名员工。 他们的网络使用了一种路由/交换机设计,其中包含 100 多台老化的 1G 交换机,其中一些已经报废,供应商将不再提供软件更新。

在检查配线间后,我们发现与配线架的互连需要清理。 我们需要用 Cat5e 布线替换机架布线,但幸运的是,无需将接线从接线板更改为墙壁插孔。 我们还需要确定可用于未来使用的未使用接口。

一份清单显示需要更换 100 台交换机,平均每台交换机有 200 个端口。 当 NetCraftsmen 参与时,这项工作已经手动开始,所以我们知道什么会起作用,但我们的团队认为这是一个利用自动化来简化流程的绝佳机会。

手动进行

交换机供应商定义的大部分手动过程要求跟踪每个接线板连接、检查端点、更换交换机、重新修补活动链路、更新新的交换机配置以及验证连接性。 随后是最终的故障排除,以修复不起作用的问题。

手工收集信息既费时又容易出错; 错过一个字符的复制和粘贴将需要回溯以识别和纠正错误。

如果交换机端口在过去 180 天内使用过,我们将其归类为活动端口,这样我们就可以跳过许多多年来一直处于非活动状态的有线端口。 这导致新交换机上的未使用端口比旧交换机上的多,但我们一对一替换了旧交换机,因为拥有更多可用端口的灵活性被认为比尝试最大化端口利用率更重要。

由于需要清理交换机和接线板之间的连接,该过程的这个阶段变得复杂。 我们创建了详细的文档来将旧交换机端口连接映射到新交换机上的端口。

该过程还需要检查旧的交换机配置,以识别需要特殊配置(如 10Mbps 或半双工)的端点。 然后可以将这些端点分配给新交换机上的兼容端口。 一旦收集了所有这些信息,就可以从客户的配置模板中创建新的交换机配置。

完成文档和规划后,可以移除旧交换机并安装新交换机。 每个端点连接都必须手动验证,无论是从交换机端口状态还是通过 ping 设备。 (注意:识别不响应 ping 的端点总是明智的,例如使用专有协议与自定义控制器通信的 IoT 设备。您能做的最好的事情是验证链路连接、MAC 地址和数据包流.) 然后必须解决不可避免的布线错误。

我们的团队按照供应商定义的流程开始工作,预计每个配线柜升级需要两到三个小时,但有些需要四到五个小时。 我们很快确定了对自动化的需求。

NetCraftsmen 的团队负责人之一罗伯特·哈利南(Robert Hallinan)创建了一个更简单、经济高效的流程,该流程自动化了大部分配置以及对所有响应 ping 的端点的连接性验证。 他使用 Python、Nornir(一个开源 Python 自动化框架)、Pandas(一个用于处理数值数据的开源库)、TextFSM(一个用于将文本转换为结构化数据的开源 Python 模块)和相关工具创建了解决方案. 这是他对其使用的逐步描述。

自动化流程

在维护窗口开始之前,我们总是使用为该项目开发的数据收集脚本获取旧交换机状态的快照。 自动化过程使用数据生成站点报告,列出所有端口、它们的当前状态、MAC 地址(并​​查找组织唯一标识符 (OUI))、IP 地址、在每个端口上学习的 DNS 名称的反向查找,连接电话数据、思科发现协议 (CDP)、速度/双工等。

该脚本还生成一个文本文件,可以直接导入到 pingInfoView 中,这是我们用来验证连接性的免费 ping 扫描器。 我增强了数据收集脚本以输出包含该信息子集的平面文件数据库,包括设备是否可 ping。

我们创建了一个示例实验室环境,以允许在不影响生产网络的情况下开发自动化(见下图)。 多个虚拟 PC (VPC)(用于我们的测试环境的虚拟端点)被放置在三个 VLAN(20、30 和 40)中。 最初它们是如图所示连接的。

交换机升级示例环境1 罗布舒尔茨/Shutterstock

图 1:示例环境

然后我在 tkinter 中构建了一个 GUI,这是 Tcl/Tk GUI 工具包的标准 Python 接口,可以从收集脚本和工作站报告脚本、用户凭据、工作站报告中的数据库和 VLAN 中获取设备文件标准化文件。 启动后,该工具会定期登录交换机并提取 ARP 和 MAC 地址表以添加到设备跟踪数据库中。

此过程在新端口连接时检测端点设备的 MAC 地址,并检查 VLAN 配置是否符合要求。 如果是,则该过程继续。 如果没有,它会登录到交换机,修复配置,然后反弹端口。 它还会检查获知的 IP 地址并记录下来。

此外,该脚本会定期 ping 与端点关联的 IP 地址。 如果在维护窗口期间地址发生变化,则旧 IP 将替换为新 IP。 这样 ping 工具就不会显示丢失的主机,因为它无法 ping 现在已被替换的旧地址。

所有这些都从数据库加载到 Pandas 数据框中,该数据框会在屏幕上定期更新。 它还允许将显示的帧轻松导出为 CSV,提供对丢失设备或不再可 ping 的设备等的可见性。然后,如果设备的 IP 地址由于 DHCP 发布的新地址而发生更改,我们也会得到更好的了解. 在维护窗口结束时,整个过程很容易向客户提供报告。 下面是新交换机和设备上线前的报告截图。

1 预切换在线 铸造厂

图 2:新交换机上线之前

我们也不再需要预先配置异常值——那些具有特殊端口配置的端点。 唯一的手动配置(我正在努力使这部分自动化)是在维护窗口结束时询问现场网络技术人员,以识别在窗口开始时未连接的异常端口。 此步骤是必需的,因为在初始数据收集脚本期间我们无法检测到未连接端口的 MAC 地址。 取而代之的是,我们使用一种工具从配线架侧检测交换机端口,并确保配置得以保留。

在对实验室环境进行“重新布线”后,已为端点分配端口,并且客户 VLAN 已重新标准化,从 20、30 和 40 变为 200、300 和 400,如下图 3 所示。

交换机升级重新布线 2 罗布舒尔茨/Shutterstock

图 3:升级后的实验室网络

自动化的一个巧妙补充是 GUI 包括一个进度计数器,显示有多少端点需要重新连接。 自动化每隔几分钟运行一次,收集新的端点连接数据,并更新活动和剩余计数。 请参阅下面屏幕截图右上角的计数器:

2个额外的开发者 铸造厂

图 4:右上角的进度计数器

最后,当交换机升级完成时,监控屏幕会显示:

3 完成 铸造厂

图 5:显示升级完成的 GUI

储蓄

自动化过程在暂存过程中节省了一个多小时,每个维护窗口平均节省了 1.5 小时,乘以五六人的团队规模。 每次开关的总节省约为 8.5 工时。 在具有多个开关的配线间中节省了更多时间。 当我们参与并构建自动化时,只有 40 台交换机需要升级。 我们的自动化系统用于监控最后 40 台交换机的硬件升级,到目前为止估计节省了 340 小时。

总体而言,创建自动化流程大约需要 80 个小时,主要是由于学习了如何使用 tkinter 创建 GUI。 其他软件工具已用于其他项目,并且已经很好地理解了许多所需的功能。 迄今为止的净节省时间为 260 小时,并且该系统可用于未来的升级。

还有一项不可估量的节省:减轻员工压力。 进行广泛的网络升级很费劲,因为一个错误可能会将维护窗口变成通宵马拉松。 自动化可以将这些乏味、压力大的任务转变为令人满意的基础设施改进工作。

该项目展示了自动化如何改进现有的变更流程、减少所涉及的工作量并提高变更的准确性。 客户对结果非常满意,升级团队也享受了大大简化的流程。 节省 260 小时让客户主管和技术人员非常高兴,并支持未来的自动化工作。 让重大的基础设施变更顺利进行并且对用户社区的影响最小是很好的。

版权所有 © 2022 IDG Communications, Inc.

#自动化如何简化网络范围内的交换机升级

Leave a Reply

Your email address will not be published. Required fields are marked *

伊朗登山者不戴头巾参赛在德黑兰受到群众欢迎 Previous post 消灭恐龙的小行星引发了“大海啸”,海浪高达一英里
认识漫威的变种巫师 Magik Next post 认识漫威的变种巫师 Magik