关于华为路由器串口无法实现ACL访问控制的个人见解及解析
因本人在日常eNSP实验环境测试中发现,在华为AR2200路由器的Serial接口上可以应用高级ACL访问控制列表,但是ACL访问控制列表并不能根据为其编写的规则目录对经过此Serial接口的流量数据包进行过滤行为,经过在查找相关资料,在此进行一些个人见解总结,如有不足之处,欢迎评论或私聊批评指正!
首先,贴上eNSP实验环境,验证Serial接口无法实现基于ACL访问控制列表进行报文过滤。
实验背景:
1.交换机SW1、SW2均仅实现二层交换功能,未启用三层路由功能。
2.路由器R1配置如下:
1.interface GigabitEthernet0/0/1ip address 192.168.10.254 255.255.255.0 2.interface Serial4/0/0link-protocol pppip address 155.10.10.1 255.255.255.0 3.ip route-static 150.10.10.1 255.255.255.255 155.10.10.2
3.路由器R2配置如下:
1.interface GigabitEthernet0/0/1ip address 150.10.10.254 255.255.255.0 2.interface Serial4/0/0link-protocol pppip address 155.10.10.2 255.255.255.0 3.ip route-static 192.168.10.1 255.255.255.255 155.10.10.1
实现PC1与PC2互联互通,在此我们通过发送ICMP包进行联通验证
验证完PC1与PC2连通性后,进行ACL访问控制列表配置,在此次实验中,我们使用高级ACL访问控制,并对源地址为150.10.10.0/24这个网段的所有ICMP数据包进行执行拒绝行为。
#acl number 3000 rule 5 deny icmp source 150.10.10.0 0.0.0.255 destination
将此ACL3000应用于R1的Serial接口入方向或者R2的Serial接口出方向,此次实验应用于R1的Serial接口入方向。
interface Serial4/0/0link-protocol pppip address 155.10.10.1 255.255.255.0 traffic-filter inbound acl 3000
配置完ACL访问后开始验证PC1与PC2的ICMP包是否可以正常交互
通过PC1使用Ping命令对PC2发送ICMP数据包的结果发现,ICMP数据包仍然可以正常通过R1与R2之间的Serial接口,证明ACL访问控制未能对通过的ICMP数据包进行过滤。
接下来根据串口通信原理对此现象进行分析。
首先引用华为技术认证《HCIP网络技术学习指南》中关于Serial接口的描述。
采用帧中继(Frame Relay)封装的接口是一种典型的NBMA类型接口,这种接口同样能够连接一台或多台设备,但是并不支持广播。拥有帧中继接口的路由器维护着一张帧中继映射表,用于存储帧中继链路对端设备的IP地址及本地DLCI(Data Link Connection Identifier,数据链路连接标识)的对应关系。当路由器要通过帧中继接口向链路对端的某台路由器发送数据时,路由器在帧中继映射表中查询下一跳IP地址(帧中继链路对端的设备IP地址)及DLCI的映射,并为数据包进行帧中继的封装,在帧头中写入DLCI号,数据包被送入帧中继网络后,DLCI号用于确保数据能够顺利到达对端。
在此段描述中,我们可以了解到在Serial接口通信中,对数据包的处理主要停留在数据链路层的以太帧的封装与解封装处理,通过以太帧头中的DLCI号在本地DLCI中查找IP地址的映射关系,再根据映射关系将接收到的数据包进行转发,于是基于传输层ICMP报文过滤的ACL访问控制未起到过滤功能。