Cisco IOS:了解以太网MAC地址

来源:中国IT实验室发布时间:2006-11-13
   虽然您可能熟悉以太网MAC地址,但您对它们在思科互联网操作系统(Cisco IOS)中的应用了解多少呢?在这个版本的思科路由器与交换机中,本文教您如何确定并修改MAC地址,及使用它来过滤流量。

    您们大多数人可能知道什么是以太网MAC地址,但您们也许不了解如何在思科互联 网操作系统中应用MAC地址。

    一个以太网MAC地址唯一识别世界上的每一个以太网设备。生产网络设备(如以太网网络接口卡、无线设备、路由器和交换机)的供应商预先把这些地址编制到它们的设备中。

    MAC地址还有其它一些名称,包括物理地址(Windows中)、以太网地址和硬件地址。不管它叫什么名字,它都是一个由12个字符组成的十六进制字符串。下面是一些例子:

  • 1234.5678.90ab
  • 12-34-56-78-90-ab
  • 12.34.56.78.90.ab

确定您的MAC地址

    在Windows中,您可以使用ipconfig/all命令查明您的MAC地址。列表A中是一个实例。

    在这个命令的输出结果中,您可在物理地址列表中找到MAC地址。您还可以用show mac-address-table命令从这台电脑连接的交换机中找到相似的信息。下面是一个例子:

Switch# show mac-address-table

Mac Address Table

-------------------------------------------

VlanMac AddressTypePorts

----------------------------

All0014.1c40.b080STATICCPU

All0100.0ccc.ccccSTATICCPU

All0100.0ccc.cccdSTATICCPU

All0100.0cdd.ddddSTATICCPU

1000f.1fd3.d85aDYNAMICFa0/14

    在思科路由器上,您可以应用show interfaces命令查明您的接口使用哪个MAC地址。下面是一个例子:

RouterB# show interfaces

Ethernet0/0 is up, line protocol is up

Hardware is AmdP2, address is 0003.e39b.9220 (bia 0003.e39b.9220)

Internet address is 1.1.1.1/8

    在每个接口的第二行,您会看到带烧录地址(BIA)的硬件地址。在上例中,硬件地址为0003.e39b.9220。

    思科路由器上的每个以太网接口都有自己的以太网MAC地址。路由器与交换机之类的特殊设备有许多特定的内置地址,如上面show mac-address-table命令输出结果中显示的四个地址就属此类;这些列举的行都属静态类型。

修改MAC地址

    我们把修改默认MAC地址的做法称之为MAC欺骗。由于这个词常用于表达不适当的行为,特别是无线网络黑客行为,所以它带有贬义。但MAC欺骗确实具有合理的用途,如测试MAC过滤。

    要改变思科路由器上的MAC地址,在接口配置模式(Interface Configuration Mode)下使用mac-address命令。只要对新的MAC地址使用这个命令——就这么简单。以下是一个例子:

RouterB# conf t

Enter configuration commands, one per line.End with CNTL/Z.

RouterB(config)# int e0/0

RouterB(config-if)# mac-address 0000.0000.0001

RouterB(config-if)#^Z

RouterB#

RouterB# show int e0/0

Ethernet0/0 is up, line protocol is up

Hardware is AmdP2, address is 0000.0000.0001 (bia 0003.e39b.9220)

Internet address is 1.1.1.1/8

    修改MAC地址后,就可以用show interface命令查看新地址。

根据MAC地址过滤流量

    假设您通过协议分析器发现一台设备在向您的网络发送恶意流量。而且这台设备似乎是一台多连接设备——也就是说,它正由多个IP地址向您发送流量。

    您可以用show mac-address-table命令找到它所使用的交换端口,并对这个端口执行关闭(shutdown)命令。但如果它用其它设备连接到一个集线器上,或是来自某个您无法控制的网络,这时该怎么办呢?

    这时就可以应用一个MAC地址过滤器来过滤路由器或交换器上的流量。例如:

Cat3750Switch(config)# mac access-list ext filtermac

Cat3750Switch(config-ext-macl)# deny host 0000.0000.0001 any

Cat3750Switch(config-ext-macl)# permit any any

Cat3750Switch(config-ext-macl)# exit

Cat3750Switch(config)# int g1/0/40

Cat3750Switch(config-if)# mac access-group filtermac in

    在这个例子中——应用一个思科Catalyst吉比特以太网交换机,我们建立一个名为filtermac的扩展名MAC地址访问控制表。这个访问控制表(ACL)拒绝源MAC地址为0000.0000.0001的所有流量,并允许其它流量。然后我们把这个MAC地址访问控制表应用于吉比特以太网接口1/0/40上,它阻止带那个MAC地址的设备流量进入那个端口,而不管其IP地址是什么。

    记住,用MAC地址过滤流量并非安全的方法——别人可以轻易地改变您操作系统上的MAC地址。

    欲了解更多与MAC地址访问控制表有关的信息,请查看建立命名MAC扩展访问控制表文件。如果您有什么值得与我们分享的交换配置建议,或是您希望在本栏看到哪些其它交换机主题,请在本文后面的讨论中提出您的观点。

    David Davis从事IT业已长达12年之久,而且获得了包括CCIE,MCSE+I, CISSP, CCNA, CCDA和CCNP在内的一系列证书。目前,他在一家私有零售公司担任系统/网络管理员职务,并从事网络/系统的兼职顾问。