<网络工程师Python工具速成>_2.自动查找MAC所在交换机接口工具V1.0_百...
发布网友
发布时间:2024-09-06 14:21
我来回答
共1个回答
热心网友
时间:2024-09-09 19:52
在众多北漂小网工中,我分享一些关于甲方网络身份的经验。本文主要围绕自动查找MAC所在交换机接口的工具V1.0进行讨论,旨在简化网络管理的繁琐工作。
在许多企业的网络环境中,线缆网络常采用802.1X或MAC认证。对于大型企业,无线网络可能相对容易管理,通过AC查看即可。然而,有线网络接口的管理却需要频繁地使用命令如`dis mac-add`, `dis lldp nei`, 和`dis mac-add dis cu int xxx`,这种工作缺乏技术含量,久而久之会让人感到烦躁。
尽管SDN办公网解决方案已经实现了自动化,但高昂的控制器成本往往让企业望而却步。为了提高效率,我最初设想了一个API接口版本,用户只需输入类似`http://1.1.1.1/1111-1111-1111`的URL即可获取结果。然而,考虑到脚本的潜在错误和排错过程,我最终选择了一个简单的Python脚本,作为V1.0版本。
对于追求快速入门或API接口的用户,可以参考V2.0的文档。绩效方面,预期在第一季度完成脚本开发,第二季度完成API接口开发,但这只是乐观的预计,实际情况可能会有所不同。
重要提示:请仔细阅读以下内容。
在使用此脚本前,请先完成“_1.自动备份多品牌网络设备配置“的实验。对于华为/H3C交换机的`dis mac-add`命令返回的接口名,不能直接调用,例如显示汇聚接口或XG接口名时,需要额外的逻辑进行处理。
此外,脚本在登录设备时会花费一定时间,尤其是在网络较大且涉及多台设备的情况下,可能需要数分钟才能完成,这与设计脚本的初衷不符。
因此,本文的解决方案包括:
1. 登录所有接入交换机。
2. 查看MAC变化,确定MAC所在的接口。
3. 查看接口配置,如接口不是trunk,则认定为终端口,并进行输出。
对于合规性较高的企业网络,如果交换机仅用于访问互联作为傻瓜交换机使用,此脚本可能无法充分发挥其作用。
基础环境要求:
服务器环境:CentOS 7
Python环境:Python 3,需要安装`netmiko`模块,具体安装教程网上有详细介绍。
网络设备:华为、H3C(示例,其他品牌可自行添加)
注意:本文示例环境使用的是GE接口,对于华为华三的XG接口,需要进行转换为`Ten-GigabitEthernet`,否则会报错。
完整代码和操作步骤:
代码已附在文章末尾,对于已经阅读过前一篇文章的用户,会发现两个脚本非常相似。使用`netmiko`进行网络设备配置时,往往需要登录设备,因此在修改脚本时,只需对原有脚本进行适当的调整即可。
入门技巧:先学会修改脚本,通过实践逐渐掌握技能。从修改脚本开始,你会逐渐熟悉网络设备的配置逻辑。
操作步骤包括:
1. 创建存放脚本目录。
2. 创建存放网络设备信息的txt文件,格式为:设备名,设备类型,IP,用户名,密码。确保最后一行无换行符,以防报错。
3. 创建脚本,可先预览代码再复制。
4. 以华为为例,详细的操作步骤已在文中提及,用户可根据需求自行调整。
5. 进行并发配置,修改txt文档路径,并设置线程池大小,建议大小等于设备数量。
需要注意的是,输入MAC地址时需确保唯一性,避免在存在多个MAC地址的情况下,仅输入部分数字导致输出不准确。确保输入足够数量的字符,以获取正确的接口信息。