有两种将网络设备的管理信息获取到中央服务器的常用方法: syslog和SNMP。 两者都是相当古老的协议,具有悠久而复杂的历史。

Syslog背景

Syslog是古老的协议之一。它起源于BSD UNIX TCP / IP实现,是通过网络聚合日志消息的一种方式。基于这一历史,syslog有一些古怪的地方,看起来似乎没有多大意义,但仍然存在。

首先,它有一个内置的 严重程度 从0到7和一个 设施代码 在0到23之间。当前标准RFC 5424指示这些值“不是规范性的,而是经常使用的。”设施代码包括邮件系统,行式打印机子系统,网络新闻和UUCP(Unix到Unix复制)子系统等内容。—网络设备没有的东西。

严重性级别在某种程度上更有用,甚至是任意的。

思科设备不会发送0级警报,因为0级被认为表示完全不可恢复的系统灾难,在这种情况下syslog不可靠。

1紧急 –危机
2警报 –必须立即采取行动
3严重 –可能相当重要
4错误 –非常重要
5警告 –可能不重要
6通知 –真的不是那么重要
7信息性 –大多数情况下您根本不关心
8调试 –与调试命令相关的消息

传统上,syslog也有一个 优先值,即严重性级别乘以设施代码。它不适用于网络设备。

传统上,Syslog作为未加密的自由格式文本通过UDP端口514发送。在RFC 5424中,此更改已更改,因此现在要求所有syslog实现均支持TLS(传输层安全性)加密,而UDP是可选的传统替代方法。但是,传统的UDP版本仍然完全普及。

在Cisco IOS软件的最新“加密”版本上,它’可以配置TLS密钥。但是,这带来了几个问题。首先,您需要确保您的日志服务器具有相同的密钥。第二,因为’从根本上讲,它是面向会话的,通常在某些情况下如果确实有问题,则速度较慢,并且很可能在网络,服务器或网络设备上引起资源问题。第三,它’很难配置。第四,您的日志记录服务器必须支持相同的TLS实施,而许多都不支持。

虽然传统syslog缺乏加密确实是一个严重的安全问题,但是我’我一直将其简单性视为一种美德。只要您从不通过不受信任的网络发送syslog消息,我就不会发现使用它的问题。例如,如果您必须通过Internet发送这些消息,则只需将它们放在IPsec VPN(虚拟专用网络)中。因此,我始终建议使用旧版UDP版本。

SNMP背景

SNMP(简单网络管理协议)支持三个基本功能。

  1. 它使您可以从中央服务器“获取”到设备以获取当前状态信息。
  2. 它允许设备在发生某些有趣的事件时向中央服务器发送特殊警报。
  3. 您 can use the polling function to “set” configuration parameters.

轮询通常分为两类:定期轮询和临时轮询。 定期轮询 is where your 网络管理 server queries the device on a schedule, generally every few minutes, to get the current values of a 组 of status indicators, statistical counters, or other parameters. 临时查询 由操作员手动启动以检查相似的参数。

这些参数在MIB(管理信息库)文件中描述,这些文件有点像数据库架构。它们显示了不同值表之间的关系,并描述了值的含义。通常,没有MIB,您将不知道要轮询什么。

设备可以通过两种方式自动将警报发送到服务器,而无需专门轮询信息: 陷阱告知。陷阱是传统方法。它’s一个简单的UDP数据包被发射到网络中,没有传递确认,也没有重传机制,只有机翼和祈祷。通知是该协议的最新版本,其中包括确认警报已发送的功能,以及能够重新发送警报的功能。通知是SNMPv3中引入的功能之一。

我通常更喜欢使用SNMPv2c。与版本1不同,它包含更长的计数器变量,这对于在更快的接口上保持准确的统计数据非常重要。而且与版本3不同,它不需要复杂的加密密钥管理。与syslog类似,我不建议允许通过不受信任的网络进行SNMP。因此,并非严格要求版本3的加密和身份验证功能。

我也不喜欢在SNMP中使用“设置”功能,因为它很难验证谁进行了更改,也很容易造成灾难性的配置错误。问题是’通常很难确切地知道你’当您使用SNMP“设置”功能时,将重新更改。

此外,SNMP基本上是无状态的。在许多情况下,必须按特定顺序进行配置更改。换句话说,网络设备配置是有状态的问题,我认为SNMP本质上与设备配置不一致。结果,我总是禁用SNMP“set” feature.

配置系统日志

Syslog的配置非常简单。要使其正常工作,您只需要定义日志记录服务器的IP地址并启用日志记录即可。

logging buffered 32000
logging host 172.16.1.1

This configuration fragment does two things. The first command enables local logging on the device 和 组s a buffer size of 32KB. This isn’syslog是必需的,但是我发现将日志消息存储在设备上非常有用。第二条命令将这些相同的日志消息发送到指定的中央日志服务器。

配置SNMP

在配置SNMP时,您需要分别配置陷阱和“获取,”我建议禁用“设置”。在Cisco配置语法中,SNMP“ gets”是“ reads”,“ sets”是“ writes”。”下面显示了具有陷阱和只读轮询的SNMPv2c配置。

snmp-server community CiscoWhisperer ro 99
snmp-server enable 陷阱
snmp-server host 172.16.1.1 CiscoWhisperer
!
access-list 99 permit host 172.16.1.1
access-list 99 deny any log

在这种配置下’定义了社区字符串“ CiscoWhisperer。”这是一个任意值,您应该将其视为SNMP密码。请记住,此值以明文形式通过网络传递,因此并不是十分安全。因此,我’我们还实施了编号为99的ACL(访问控制列表),仅允许来自单个特定IP地址(即网络管理站)的SNMP轮询。一世’我们还假定同一设备是SNMP陷阱接收器。

请注意,第一个命令上的关键小关键字“ ro”表示“只读”。这将完全禁用SNMP“设置”或写入请求。

您’还要注意,我为陷阱设置了与民意调查相同的社区字符串。坦白说,我从未理解过在陷阱中使用社区字符串的必要性。我想您可以使用它来确保陷阱来自正确的设备,并且没有以某种方式被欺骗,但是实际上’从未见过任何配置为检查陷阱社区字符串的网络管理站。

It’s often a good idea to 组 a couple of standard variables on your network devices to help with troubleshooting, but you can consider it strictly optional.

snmp-server location Waterloo LAN switch
snmp-server contact 名称, Phone number