清单的起源可以追溯到1935年,当时陆军航空队在测试B-17飞行。测试飞机的飞行控制表面被锁定,以防止它们停在地面上时随风飘扬。飞行员在起飞前忘记解锁,结果是坠毁,造成两名机组人员死亡。坠机后的分析发现,飞行员无法回忆起安全驾驶飞机所需的所有步骤。这场悲剧引发了飞行前检查清单的创建,而B-17最终针对特定飞行阶段有四个不同的检查清单。
将清单应用于网络
确定清单适用于网络的区域并不难。面临的挑战来自花时间创建和维护这些列表,更改流程以合并它们以及定期使用它们来验证每个项目要解决的条件。
自动化使应用清单变得容易。全面的网络清单中的详细信息量使它们无法在包含多个设备的网络上手动实现。因为避免了人为错误,所以我们可以对所有设备上的所有检查表项目进行一致的验证。
让我们看一些例子,从简单到复杂。然后,我们将学习如何通过支持网络自动化的方式来组织它们。执行检查的确切机制取决于我们选择的自动化系统。
简单检查
简单检查可用于验证基本网络设备配置是否正确以及所需功能是否按预期运行。当单个清单项适用于许多设备时,它们很简单。
例如,验证Cisco路由器网络时间协议(NTP)配置以及路由器是否能够联系其服务器。附加检查将确认路由器已与其中一台服务器同步。以下是从网络获取的应执行的检查数据的示例。
- 检查是否正确配置了NTP对等方,并且硬件时钟应与软件时钟同步:
ntp server 10.50.38.42
ntp update-calendar
- 验证NTP对等关系是否正常工作:
router#show ntp association
address ref clock st when poll reach delay offset disp
+~10.50.38.42 86.79.127.250 4 7 256 377 0.8 -0.29 0.2
*~10.50.36.42 86.79.127.250 4 188 256 377 0.7 -0.17 0.3
* master (synced), # master (unsynced), + selected, - candidate, ~ configured
要执行三项检查:
- 已配置两个NTP服务器(没有其他服务器)
- update-calendar命令已配置
- show ntp association的输出显示两个服务器都处于活动状态,并且已选择其中一个作为NTP主服务器。这两个地址应与配置中的地址相同。
至少每当配置更改时,才应进行前两由于网络问题或服务器故障而不可用。应该定期检查一次,以主动发现问题,也许每几天检个检查。最后检查确保服务器关联仍处于活动状态,以便我们可以检测到NTP主服务器何时查一次。并且由于配置中的地址与show ntp association命令输出中的地址相同,因此我们只需要在一个地方指定它们,然后让自动化系统执行这两项检查即可。
中等复杂程度的检查
当清单项对于一小组设备或每个网络设备唯一时,复杂性就会提高。这仅仅是驱动复杂性的项目数量。我们可以使用自动化任务从网络中填充清单数据库,但这假设捕获数据时功能正常运行。最好验证从网络获取的所有数据。
此类别中的一个示例是EtherChannel连接。配置和操作数据均应进行验证。
- 配置:
interface range gigabitethernet1/0/1 -2
switchport mode access
switchport access vlan 10
channel-group 1 mode active
- 运行数据显示端口通道中的两个接口,该端口通道是为第2层静态配置的并且正在使用中(命令输出中名称Po1后面的SU标志)。
Switch> show etherchannel 1 summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
u - unsuitable for bundling
U - in use f - failed to allocate aggregator
d - default port
Number of channel-groups in use: 1
Number of aggregators: 1
Group Port-channel Protocol Ports
------+-------------+-----------+----------------------------------------
1 Po1(SU) LACP Gi1/0/1(P) Gi1/0/2(P)
其他示例包括验证路由邻居,重要路由(即默认路由)的下一跳路由器以及与关键应用程序服务器的连接。这些项目可以检测到网络中的意外异常和故障,这些异常和故障通常被冗余设计隐藏。
复杂检查
诸如此类的复杂检查涉及详细的配置和操作,经常在多个设备之间进行。例如,我们可以通过使用链路层发现协议来扩展EtherChannel验证,以确保连接了正确的设备和端口。在链路层情况下,我们可以通过收集和关联来自两个设备的CDP数据来验证Cisco路由器和交换机是否通过同一链路连接。
清单数据库:真相的网络来源(NSoT)
清单放在哪里?在称为“网络真相网络”(NSoT)的存储库中,它实际上是网络清单的数据库。NSoT是网络连接和操作的定义。我们不能依靠网络本身来定义,因为故障(设备,链接或人为故障)会使我们从网络中收集的数据无效。
即使使用了数据库一词,它通常也不是关系数据库管理系统(RDBMS)。相反,它是多个文件的集合,用于定义必须检查的数据。例如,在Ansible平台中,我们可以在适用于所有设备的all.yml文件中拥有NTP服务器地址,而特定设备(test_sw)的OS版本数据(IOS_version)则位于该文件的单独文件中设备。
![](http://www.ctiforum.com/uploadfile/2020/0720/20200720095656753.jpg)
图片:作者
整个过程的妙处在于,我们无需100%完成NSoT就可以开始。我们可以从一堆易于创建的简单检查开始。然后随着时间的推移添加更多详细的检查。主要因素是开始建立列表。
测试驱动的网络自动化
一旦我们有了网络真相源,就可以将自动测试纳入运营流程。接下来,更改网络更改控制过程以包括更改前和更改后测试。随着NsoT的增长,在进行更改之前和实施更改之后,将验证网络的更多部分是否已配置并且可以正常工作。这样可以确保所做的更改不会破坏网络。
让我们用上面的NTP示例来看一下如何工作,以演示添加另一个NTP服务器。更改前检查将验证当前所有网络设备都可以连接到两台服务器。然后,我们将运行自动化功能,以更新所有网络设备的配置以包括第三台服务器。更改后的验证检查将验证所有设备都已连接到第三台服务器。
调查可能无法连接到第三台服务器的所有设备,以确定原因(可能是由于防火墙规则或路由丢失所致)。我们将立即知道,即使已正确实施更改,但某些设备仍无法操作,我们可以采取措施进行纠正。定期使用这些相同的检查,使我们能够确定由于网络的其他更改而导致类似问题何时发生,例如添加阻止NTP的防火墙或虚拟路由和转发(VRF)定义繁琐的接口。
清单与自动网络测试的结合有助于我们改善网络并以较低的风险进行更改。与我一起参加2020年企业连接数字会议和博览会,了解如何开始使用网络自动化。
声明:版权所有 非合作媒体谢绝转载
作者:特里·斯莱特里(Terry Slattery)
原文网址:
https://www.nojitter.com/ai-automation/use-checklists-strengthen-networks