获得MAC地址
在交换机的命令输入窗口,输入“show mac-address-table”可以获得MAC地址表,例如:
Switch# show mac-address-table
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
All 0014.1c40.b080 STATIC CPU
All 0100.0ccc.cccc STATIC CPU
All 0100.0ccc.cccd STATIC CPU
All 0100.0cdd.dddd STATIC CPU
1 000f.1fd3.d85a DYNAMIC Fa0/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”,bia即“烧录地址”(burned in address),MAC地址即0003.e39b.9220。
改变MAC地址
改变MAC地址实质上其否定含义就是MAC欺骗。特别是对于无线网络的攻击,改变MAC地址是常用的方法。改变MAC地址也可以用于合法的用途,如测试MAC过滤。
要改变设备在路由器上的MAC地址,需在Interface Configuration Mode(界面配置模式)下,使用“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命令来查看它所使用的交换机端口,并可以关闭此端口。但是,如果此端口连接的是一个集线器,而集线器又连接了许多其它设备那该怎么办呢?
有一个方法便是使用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
此命令在Cisco Catalyst 3750 Gigabit Ethernet switch交换机上完成。我们创建了一个名为“filtermac”的ACL(访问控制表)。这个ACL拒绝了与源地址为0000.0000.0001(十六进制非二进制)的所有数据通信,但是却允许其它地址的数据通信。将这个ACL运用到界面1/0/40,这就防止了拥有这个MAC地址的设备与本端口的数据通信,而不管它的IP地址是什么。 但是,不管怎么说,MAC地址过滤并非安全措施,因为他人可以轻易地改变MAC地址。