时间:2015-11-16 18:08:30 来源: 复制分享
网络工程师需要学习新技能和使用自动化工具才能适应软件定义网络(SDN)的工作环境。
听起来似乎很难,但是网络工程师都很聪明。我们往往必须处理一些大型复杂网络,它们有越来越多的功能,并且是用数量更多的命令实现的。因此,千万不要认为我们自己学不会其他一些能帮助我们简化工作和优化网络运行的技能。设想一下你还不需要编程呢!看一下复杂的网络配置。它是靠编程实现的,但是它以分布式的形态存在,因此要比一般的软件系统更难维护。
要接受这个挑战,学习网络工程师技能,然后每天学习多一点,就像你在管理网络一样。
故障修复技能
网络工程师的故障修复技能是很优秀的,并且仍然会继续发挥重要作用。然而,SDN要求他们提升一下自己的技能。网络会变得越来越动态,因此他们需要自动化系统和新工具去实时收集和分析必要的数据。由于应用程序驱动着网络的变更,因此工程师必须更熟悉API,检查SDN日志,将变化与问题症状相关联。这个过程和我们以前知道的故障问题修复过程并没有太大的差别。唯一的不同是这些故障修改技术会变得越来越普遍。网络工程师应该学习一些比ping、traceroute和“show configuration”更高级的工具。
基本的软件工具技能
要学习如何驾驭一个好的文本编辑器。许多编辑器的命令多到难以全部记住,因此不要试图记住所有东西。要关注于一些基本功能:鼠标在字符、行、单词和段落间的移动;文字修改和复制功能;以及文件保存和关闭功能。一旦熟悉了这些基本功能,就要增加多窗口命令和宏来提高生产力。只需要学习几个小时,我们就可以用少量的命令实现较高的生产效率。
要通过学习一些Linux操作系统经验来继续提升自己的网络工程师技能。许多新硬件平台(思科NX-OS、Arista EOS和Cumulus OS)都使用Linux作为控制系统。要学习基本的文件系统结构,因为这是系统配置文件所在的地方,并且也要学习如何修改文件系统结构。首先要关注于修改网络参数,启用或禁用服务器进程(DHCP客户端和服务器模式),通过SSH连接Linux命令行接口(CLI),以及执行正确的Linux关机操作。要学习如何创建和修改cron作业,这样就可以编写一些脚本按指定的时间重复执行。学习Linux必须掌握基本的Bash脚本编程。
学习SDN中一种常用编程语言的软件开发,如Java、Python或C/C++等。一种语言的概念和技能通常可以触类旁通地应用到其他语言上。Python是一种很容易学习的脚本语言。它具有面向对象功能,它可以帮助我们学习编程方法,但是我们不一定要从这个语言开始着手学习。要学习如何使用管道命令将多个小工具和脚本整合在一起来完成更大的任务。一个好例子就是重命名大量的文件,例如删除“.txt”后缀并添加“.cfg”后缀。
最后,大多数开源项目都使用Git来维护它们的代码,因此一定要学习如何它来存储、获取和存档软件项目。每一个项目通常带有一个开发者邮件列表,从中可以跟踪软件更新,并且通常还有一个关于软件使用的用户邮件列表。
自动化技能
这是一个大科目,因为它包含了文化改变。网络工程师已经学会了如何通过编程一次处理一个设备的网络。现在他们需要改变自己配置、监控和管理网络的方式。大多数网络团队似乎都在抵触自动化,因为他们害怕一个小错误就能把网络破坏到无法在逐个设备上使用CLI将它修复回正常状态。
可以从实现自动的设备配置检查开始,使用网络变更与配置管理(NCCM)系统自动地检查所有网络设备上正确配置的功能。首先,保证所有设备的简单网络管理协议(SNMP)和AAA配置与模板相匹配。然后,检查特定类型设备的配置,如核心路由器或接入交换机。(注意:参见《设备与接口标识》中关于设备与接口的分组方式。)
一旦实现自动的设备与接口配置验证,就可以使用自动化系统推送配置修改。要通过执行一些简单修改(如修改密码)来熟悉这个过程。使用自动配置修改少数设备,然后再确定有效的前提下扩大应用范围。如果无效,则要修复问题,确定原因,然后再执行。一开始时,这个过程可能比手工处理还要耗费时间,但是从中获得的自动化经验可以应用到更多的功能上,然后很快就有能力使用自动化部署所有的配置修改。
SDN会将自动化推上一个新高度。例如,应用程序可以通知SDN控制器它的新需求,然后SDN控制器就会实现所需要的修改。理解当前发生的变化,并且熟悉这个过程,这一点非常重要。
在我们获得新的网络工程师技能之后,还会遇到一些需要进一步学习的陌生词语和概念。这与学习其他的新网络技术并无不同,如前门虚拟路由与转发。但是,不用多长时间,我们就会熟悉网络自动化和脚本编写,感觉就像在配置传统网络一样。