本文档举例说明如何使用简单网络管理协议(SNMP)从思科路由器获取MAC和IP地址记帐信息。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
MAC地址记帐功能根据LAN接口上的源MAC地址和目的MAC地址提供IP流量的记帐信息。此功能统计LAN接口接收/发送或发自某一特定MAC地址的IP信息包总数和字节数。它还记录接收或发送的最后一个数据包的时间戳。
从命令行中,您会得到以下结果:
router_10.64.7.2#show running <snip> ... interface FastEthernet2/0 ip address 10.64.7.2 255.255.255.248 ip accounting mac-address input ip accounting Mac-address output ... <snip> ... snmp-server community public RO SNMP-server community private RW ... <snip> router_10.64.7.2#show interfaces mac FastEthernet2/0 Input (486 free) 0000.0c75.4120(24 ): 19349 packets, 1608842 bytes, last: 5360ms ago 00e0.1e3f.6989(33 ): 19272 packets, 1597208 bytes, last: 1276ms ago ... 0040.0550.bc5c(245): 207 packets, 44890 bytes, last: 174440ms ago Total: 1091720 packets, 178475402 bytes Output (506 free) 0040.ca19.c776(34 ): 3744 packets, 400075 bytes, last: 81804ms ago ... 0090.bf1f.e000(208): 229537 packets, 64266576 bytes, last: 0ms ago Total: 266111 packets, 70376527 bytes router_10.64.7.2#
或者,也可以使用SNMP从CISCO-IP-STAT-MIB获取上述信息,如下所示:
% snmpwalk 10.64.7.2 public .1.3.6.1.4.1.9.9.84.1.2.1 enterprises.9.9.84.1.2.1.1.3.9.1.0.0.12.117.65.32 = Counter32: 19349 ... enterprises.9.9.84.1.2.1.1.3.9.2.1.0.94.0.0.5 = Counter32: 19040 enterprises.9.9.84.1.2.1.1.4.9.1.0.0.12.117.65.32 = Counter32: 1608842 ... enterprises.9.9.84.1.2.1.1.4.9.2.1.0.94.0.0.5 = Counter32: 1485120
注意:
public = RO community string 1.3.6.1.4.1.9.9.84.1.2.1 = cipMacTable 1.3.6.1.4.1.9.9.84.1.2.1.1.3 = cipMacSwitchedPkts 1.3.6.1.4.1.9.9.84.1.2.1.1.4 = cipMacSwitchedBytes
以snmpwalk命令输出中的一个示例为例。
对于输出的前半部分,即cipMacSwitchedPkts:
enterprises.9.9.84.1.2.1.1.3.9.1.0.0.12.117.65.32 = Counter32: 19349
这里,9是ifIndex,1是cipMacDirection。
input(1), output(2)
因此,0.0.12.117.65.32是MAC地址,即0000.0c75.4120。MAC地址以十进制表示:0.0.12.117.65.32(十六进制表示0000.0c75.4120)。
数据包数= 19349。
对于SNMP输出的后半部分,即cipMacSwitchedBytes:
enterprises.9.9.84.1.2.1.1.4.9.1.0.0.12.117.65.32 = Counter32: 1608842
这里,9是ifIndex,1是cipMacDirection。
input(1), output(2)
0.0.12.117.65.32是MAC地址,即0000.0c75.4120。
字节数= 1608842。这对应于show interfaces mac命令输出中的以下条目:
router_10.64.7.2#show interfaces mac FastEthernet2/0 Input (486 free) 0000.0c75.4120(24 ): 19349 packets, 1608842 bytes, last: 5360ms ago ...
自Cisco IOS®软件版本12.0起,Cisco路由器支持CISCO-IP-STAT-MIB。有关MIB支持的详细信息,请参阅MIB定位器 (仅注册客户)。
更多信息请参见:
通过启用IP 记帐,用户可以根据源和目的地IP地址,查看通过Cisco IOS软件交换的字节数量和信息包数量。只测量中转IP流量,且仅基于出站流量;计费统计数据不包括软件生成的数据流、或在软件中终止的数据流。
为确保计费合计值准确无误,软件使用两个计费数据库:活动和检查点数据库。OLD-CISCO-IP-MIB.my中有两个表,分别是lipCkAccountingTable(检查点数据库)和lipAccountingTable(活动数据库)。 actCheckPoint将活动数据库复制到检查点数据库。因此,会清除show ip accounting命令。
网络管理系统(NMS)可以使用来自MIB的lipCkAccountingTable来分析检查点数据库中的稳定数据。正在运行或活动的数据库将复制到检查点数据库。如果检查点数据库已经有早先从激活数据库获得的数据,路由器会将激活数据库的最新副本添加到查点数据库的现有数据中。检查点数据库存储从活动数据库检索到的数据,直到设置actCheckPoint,或者直到您通过发出clear ip accounting [checkpoint]命令删除此数据库的内容。
MIB actCheckPoint激活检查点数据库。必须读此变量,然后设置相同的值。在成功设置请求后,读取并设置的值将递增。路由器上的配置如下:
<snip> ... interface FastEthernet2/0 ip address 10.64.7.2 255.255.255.248 ip accounting output-packets ... <snip>
使用检查点并使用SNMP从检查点数据库检索数据,以获得准确的记帐数据。
要设置检查点并将数据从活动数据库复制到检查点数据库,需要执行两步过程:
阅读actCheckPoint(1.3.6.1.4.1.9.2.4.11)的值。
% snmpget -v 1 10.64.7.2 public .1.3.6.1.4.1.9.2.4.11.0 enterprises.9.2.4.11.0 = 0
将actCheckPoint设置为刚读取的值。
% snmpset 10.64.7.2 private .1.3.6.1.4.1.9.2.4.11.0 i 0 enterprises.9.2.4.11.0 = 0
注意: 如果设置成功,actCheckPoint的值将递增1。
% snmpget -v 1 10.64.7.2 public .1.3.6.1.4.1.9.2.4.11.0 enterprises.9.2.4.11.0 = 1
在此,您并不真正删除IP检查点记帐表。检查点表时,您可以将正使用的表复制到检查点表中,然后重新初始化正使用的表。如上所述的检查点删除或重新初始化IP记帐表。要检索IP检查点记帐表,请snmpwalk lipCkAccountingTable。
注意: 1.3.6.1.4.1.9.2.4.9 = lipCkAccountingTable:
% snmpwalk 10.64.7.2 public .1.3.6.1.4.1.9.2.4.9 enterprises.9.2.4.9.1.1.10.64.7.26.172.17.111.59 = IpAddress: 10.64.7.26 enterprises.9.2.4.9.1.1.172.17.110.208.172.17.110.223 = IpAddress: 172.17.110.208 enterprises.9.2.4.9.1.2.10.64.7.26.172.17.111.59 = IpAddress: 172.17.111.59 enterprises.9.2.4.9.1.2.172.17.110.208.172.17.110.223 = IpAddress: 172.17.110.223 enterprises.9.2.4.9.1.3.10.64.7.26.172.17.111.59 = 29 enterprises.9.2.4.9.1.3.172.17.110.208.172.17.110.223 = 57 enterprises.9.2.4.9.1.4.10.64.7.26.172.17.111.59 = 2436 enterprises.9.2.4.9.1.4.172.17.110.208.172.17.110.223 = 5700 enterprises.9.2.4.9.1.5.10.64.7.26.172.17.111.59 = 0 enterprises.9.2.4.9.1.5.172.17.110.208.172.17.110.223 = 0
从router_10.64.7.2:
router_10.64.7.2#show ip account Source Destination Packets Bytes 172.17.110.208 172.17.110.223 25 2500 10.64.7.26 172.17.111.59 13 1092
记帐数据年龄为0。
总之,设置actCheckPoint会擦除lipCkAccountingTable中的数据。换句话说,这从一个全新的数据库开始。
自Cisco IOS软件版本10.x起,Cisco路由器支持OLD-CISCO-IP-MIB。有关MIB支持的详细信息,请参阅MIB定位器 (仅注册客户)。
更多信息请参见: