本帖最后由 yondong 于 2018-3-27 21:54 编辑 MAC ACL介绍
MAC ACL是通过识别数据包二层包头信息来实现对进入接口的数据包进行过滤的目的。
MAC Packet Classification介绍
MAC Packet Classification功能需要和MAC ACL组合起来部署,当MAC Packet Classification功能开启的时候,调用了MAC ACL的接口既能实现对IP(业务流量数据包)数据包的过滤也可以实现对非IP(大都为协议报文,如ARP报文)数据包的过滤。当MAC Packet Classification功能关闭时,调用了MAC ACL的接口只能实现对非IP数据包的过滤不能实现对IP数据包通过。
对于N9K来说,不同的硬件平台MAC ACL的配置有很大区别。目前来说N9K主要分为T2芯片平台和Tahoe芯片平台两大类。我们可以通过以下命令来区分设备属于哪个芯片平台。
N9K# attach module x
module-x# show hardware internal version
如果看到的芯片名字为Forwarding ASIC,则该板卡(或1U设备)为T2平台;如果看到芯片的名字为Sugarbowl、Lacrosse、Davos,则该板卡(1U或2U设备)为Tahoe平台。
示例如下:
module-1# show hardware internal version (T2平台)
-------------------------------------------------------------------
Name InstanceNum Version Date
-------------------------------------------------------------------
Forwarding ASIC 0 0x03
module-1# show hardware internal version (Tahoe平台)
-------------------------------------------------------------------
Name InstanceNum Version Date
-------------------------------------------------------------------
Sugarbowl 0 0x02
不同平台MAC ACL工作方式具体区别如下
对于T2平台:
测试案例1:
N9508(E1/21)----------------(E1/1)N9272
SVI 1:1.1.1.254/24 1.1.1.1/24
N9508配置:
interface Vlan1
noshutdown
ipaddress 1.1.1.254/24
interface Ethernet1/21
macport access-group test
switchport
switchport mode trunk
noshutdown
MAC access list test
statistics per-entry
20 deny any any [match=12]
N9272配置:
interface Ethernet1/1
mac-address 0001.0001.0001
ipaddress 1.1.1.1/24
noshutdown
测试结果:
N9272(config)# ping 1.1.1.254
PING 1.1.1.254 (1.1.1.254): 56 data bytes
64 bytes from 1.1.1.254: icmp_seq=0 ttl=254time=2.061 ms
64 bytes from 1.1.1.254: icmp_seq=1 ttl=254time=1.641 ms
64 bytes from 1.1.1.254: icmp_seq=2 ttl=254time=1.723 ms
64 bytes from 1.1.1.254: icmp_seq=3 ttl=254time=1.773 ms
64 bytes from 1.1.1.254: icmp_seq=4 ttl=254time=1.585 ms
--- 1.1.1.254 ping statistics ---
5 packets transmitted, 5 packets received,0.00% packet loss
round-trip min/avg/max = 1.585/1.756/2.061ms
测试结论:
N9508 MAC ACL配置为denyany any后,N9272还是可以ping通N9508,是因为N9508端口下没有开启MAC Packet Classification功能,MAC ACL不会对IP数据包起作用。
测试案例2:
延续测试案例1的拓扑及配置,变化的配置如下:
interface Ethernet1/21
macport access-group test
switchport
switchport mode trunk
mac packet-classify <<<<<<<<<<开启MAC Packet Classification功能
noshutdown
测试结果:
N9272(config)# ping 1.1.1.254
PING 1.1.1.254 (1.1.1.254): 56 data bytes
Request 0 timed out
Request 1 timed out
Request 2 timed out
Request 3 timed out
Request 4 timed out
--- 1.1.1.254 ping statistics ---
5 packets transmitted, 0 packets received,100.00% packet loss
测试结论:
N9508 MAC ACL配置为denyany any后,N9272不可以ping通N9508,是因为N9508端口下开启了MACPacket Classification功能,MAC ACL会对IP数据包起作用。
更多细节可以访问官方文档:
对于Tahoe平台:
Tahoe平台不支持MACPacket Classification功能,接口下可以配置macpacket-classify但不可以像T2平台一样正常工作,官方文档没有说明,后期可能会对文档进行完善。
在Tahoe平台如果想实现对IP和非IP数据包的过滤可以使用以下方法。
示例如下:
N9K-1(E1/1) ----------------- (E1/1)N9K-2
SVI1: 1.1.1.1 SVI1: 1.1.1.2(286f.7f7e.62e5)
N9K-1 configuration:
mac access-list test
5permit 286f.7f7e.62e5 0000.0000.0000 any 0x806<<<<<<<<<匹配ARP 包(非IP)
10 permit 286f.7f7e.62e5 0000.0000.0000 any ip<<<<<<<<<匹配IP 包
interface Ethernet1/1
mac port access-group test