乐于分享
好东西不私藏

第10章:基础过滤工具技术文档

第10章:基础过滤工具技术文档

第10章:基础过滤工具技术文档

比如ACL,实现最简单的“看门”功能,谁能进谁不能进。

第10章 基础过滤工具

概述

在网络工程中,过滤工具是网络安全和数据流控制的核心组件。本章将详细介绍三种基础过滤工具:访问控制列表(ACL)、高级访问控制列表(Advanced ACL)以及前缀列表(Prefix List)。这些工具广泛应用于路由选择、流量过滤、网络安全策略实施等场景,是构建安全、可管理网络环境的基础。

10.1 配置基本的访问控制列表

访问控制列表(Access Control List,简称ACL)是一种基于包过滤的流控技术,通过定义一系列匹配条件,决定网络数据包的转发或丢弃。

10.1.1 ACL基本概念

ACL的作用:

  1. 流量过滤:控制数据包的转发或丢弃

  2. 网络安全:限制非法访问,防止网络攻击

  3. 流量识别:为QoS、策略路由等应用提供流量分类

  4. 网络管理:控制管理平面访问权限

ACL的分类:

  • 基本ACL:基于源IP地址匹配(2000-2999)

  • 高级ACL:基于源IP、目的IP、协议类型、端口号等(3000-3999)

  • 二层ACL:基于MAC地址、以太网类型等(4000-4999)    

  • 用户自定义ACL:基于包头部任意位置(5000-5999)

ACL的匹配原则:

  • 顺序匹配:按规则编号从小到大依次匹配

  • 首次匹配:命中第一条规则后立即停止匹配

  • 默认拒绝:未明确允许的流量默认被拒绝(implicit deny)

10.1.2 基本ACL配置示例

基本ACL主要用于基于源IP地址的过滤,配置简单,应用广泛。

Bash                  
# 创建基本ACL(编号2000-2999)                  
acl basic 2000                  

rule 5 permit source 192.168.1.0 0.0.0.255# 允许192.168.1.0/24网段                  

rule 10 permit source 10.1.0.0 0.0.255.255# 允许10.1.0.0/16网段                  

rule 15 deny source 192.168.2.0 0.0.0.255# 拒绝192.168.2.0/24网段                  

rule 20 deny source 172.16.0.0 0.0.255.255# 拒绝172.16.0.0/16网段                  

rule 100 permit source any# 允许其他所有(可选)                  

                 
# 查看ACL配置和匹配统计                  
display acl 2000                  
display acl 2000 statistics                  

                 
# 应用ACL到接口入方向                  
interface GigabitEthernet 0/0/1                  

ip address 192.168.1.1 255.255.255.0                  

traffic-filter inbound acl 2000                  

                 
# 应用ACL到接口出方向                  
interface GigabitEthernet 0/0/2                  

ip address 203.0.113.1 255.255.255.0                  

traffic-filter outbound acl 2000

配置说明:

  • acl basic 2000:创建编号为2000的基本ACL

  • rule 5:规则编号5,编号决定匹配顺序

  • permit source 192.168.1.0 0.0.0.255:允许源IP为192.168.1.0/24的数据包

  • 0.0.0.255:通配符掩码,0表示精确匹配,1表示忽略    

  • traffic-filter inbound acl 2000:在入方向应用ACL 2000

10.1.3 ACL通配符掩码详解

通配符掩码(Wildcard Mask)是ACL中的重要概念,与子网掩码相反:

  • 0:需要精确匹配的比特位

  • 1:忽略不检查的比特位

常见通配符掩码示例:

Bash                  
# 1. 匹配单个IP地址                  
rule 5 permit source 192.168.1.1 0.0.0.0# 精确匹配192.168.1.1                  

                 
# 2. 匹配整个子网                  
rule 10 permit source 192.168.1.0 0.0.0.255# 匹配192.168.1.0/24                  

                 
# 3. 匹配特定范围的IP地址                  
rule 15 permit source 192.168.1.0 0.0.1.255# 匹配192.168.0.0-192.168.1.255                  
# 通配符 0.0.1.255 二进制: 00000000.00000000.00000001.11111111                  
# 匹配IP第三位为0或1的所有地址                  

                 
# 4. 匹配奇数/偶数IP地址                  
rule 20 permit source 192.168.1.1 0.0.0.254# 匹配奇数IP地址                  
# 最后一个八位组: 1 (00000001) + 254 (11111110) = 匹配最后一位为1的所有地址                  

                 
# 5. 匹配所有IP地址                  
rule 100 permit source 0.0.0.0 255.255.255.255# 匹配任意源IP                  
# 等同于 source any

10.1.4 基本ACL应用场景

场景1:控制远程管理访问

Bash                  
# 只允许特定管理主机通过SSH访问设备                  
acl basic 2100                  

rule 5 permit source 10.1.1.100 0.0.0.0# 管理员PC                  

rule 10 permit source 10.1.1.50 0.0.0.0# 备份管理员PC                  

rule 15 deny source any# 拒绝其他所有                  

                 
# 应用ACL到VTY线路                  
user-interface vty 0 4                  

acl 2100 inbound                  

authentication-mode aaa        

场景2:隔离部门网络

Bash                  
# 配置部门间访问控制                  
# 允许财务部访问服务器,但不允许访问研发部                  

                 
# 基本ACL(用于源地址控制)                  
acl basic 2200                  

rule 5 permit source 192.168.10.0 0.0.0.255# 财务部网段                  
acl basic 2201                  

rule 5 permit source 192.168.20.0 0.0.0.255# 研发部网段                  

                 
# 在核心交换机上应用                  
interface Vlanif10# 财务部VLAN                  

ip address 192.168.10.1 255.255.255.0                  

traffic-filter outbound acl 2200                  

                 
interface Vlanif20# 研发部VLAN                  

ip address 192.168.20.1 255.255.255.0                  

traffic-filter outbound acl 2201

场景3:防止IP地址欺骗

Bash                  
# 在边界路由器上防止内部地址伪造                  
acl basic 2300                  

# 拒绝源地址是内部地址的外部流量                  

rule 5 deny source 192.168.0.0 0.0.255.255# 内部地址段                  

rule 10 deny source 10.0.0.0 0.255.255.255# 私有地址段                  

rule 15 deny source 172.16.0.0 0.15.255.255# 私有地址段                  

rule 20 permit source any                  

                 
# 应用在外部接口的入方向                  
interface GigabitEthernet 0/0/0# 外部接口                  

ip address 203.0.113.10 255.255.255.0                  

traffic-filter inbound acl 2300

10.1.5 ACL配置最佳实践

1. 规则的顺序规划:    

Bash                  
# 正确的顺序:从具体到一般                  
acl basic 2400                  

rule 5 deny source 192.168.1.100 0.0.0.0# 首先拒绝特定攻击IP                  

rule 10 permit source 192.168.1.0 0.0.0.255# 然后允许部门网段                  

rule 15 permit source 10.1.0.0 0.0.255.255# 允许其他部门网段                  

rule 20 deny source any# 最后拒绝其他所有

2. 使用描述提高可读性:

Bash                  
acl basic 2500                  

rule 5 permit source 192.168.10.0 0.0.0.255 description “Allow Finance Dept”                  

rule 10 permit source 192.168.20.0 0.0.0.255 description “Allow HR Dept”                  

rule 15 deny source 192.168.30.0 0.0.0.255 description “Block Test Dept”                  

rule 20 permit source any description “Allow others for debugging”

3. 定期审查和清理:

Bash                  
# 查看ACL使用统计                  
display acl all statistics                  

                 
# 清理长期未使用的规则                  
acl basic 2600                  

undo rule 15# 删除规则15

10.2 配置高级的访问控制列表

高级ACL(3000-3999)提供了更精细的流量控制能力,可以基于源IP、目的IP、协议类型、端口号等多个条件进行匹配。

10.2.1 高级ACL特性

高级ACL支持的条件:

  1. 三层信息:源IP地址、目的IP地址

  2. 四层信息:协议类型(TCP/UDP/ICMP等)

  3. 端口号:源端口、目的端口(支持范围匹配)

  4. TCP标志位:ACK、SYN、FIN、RST等    

  5. 时间范围:基于时间段的访问控制

  6. 报文优先级:匹配DSCP/IP优先级

高级ACL的语法格式:

Bash                  
rule [rule-id] {permit|deny} protocol [source source-address source-wildcard | any]                  
[destination destination-address destination-wildcard | any]                  
[source-port operator port1 [port2]]                  
[destination-port operator port1 [port2]]                  
[established] [time-range time-range-name]                  
[logging] [description text]

10.2.2 TCP/UDP协议过滤配置

TCP协议过滤示例:

Bash                  
# 创建高级ACL用于Web服务器访问控制                  
acl advanced 3100                  

# 允许内部网络访问外部Web服务器(HTTP)                  

rule 5 permit tcp source 192.168.0.0 0.0.255.255 destination 203.0.113.50 0                  
destination-port eq 80 description “Allow HTTP access”                  

                 

# 允许内部网络访问外部Web服务器(HTTPS)                  

rule 10 permit tcp source 192.168.0.0 0.0.255.255 destination 203.0.113.50 0                  
destination-port eq 443 description “Allow HTTPS access”                  
                 

# 允许外部访问内部Web服务器                  

rule 15 permit tcp source any destination 192.168.1.100 0                  
destination-port eq 80 description “Allow inbound HTTP”                  

                 

# 拒绝其他TCP流量                  

rule 20 deny tcp                  

                 
# 应用ACL到接口                  
interface GigabitEthernet 0/0/0                  

traffic-filter inbound acl 3100

UDP协议过滤示例:

Bash                  
# DNS服务访问控制                  
acl advanced 3200                  

# 允许内部主机访问DNS服务器                  

rule 5 permit udp source 192.168.1.0 0.0.0.255 destination 8.8.8.8 0                  
destination-port eq 53 description “Allow DNS query to Google”                  
                 

rule 10 permit udp source 192.168.1.0 0.0.0.255 destination 192.168.1.10 0                  
destination-port eq 53 description “Allow DNS query to local server”                  

                 

# 允许DNS响应报文返回                  

rule 15 permit udp destination 192.168.1.0 0.0.0.255 source-port eq 53                  
description “Allow DNS responses”        

10.2.3 ICMP协议过滤配置

Bash                  
# ICMP协议精细控制                  
acl advanced 3300                  

# 允许内部Ping外部(回显请求)                  

rule 5 permit icmp source 192.168.1.0 0.0.0.255 destination any                  
icmp-type echo description “Allow outbound ping”                  

                 

# 允许外部Ping特定服务器(监控用)                  

rule 10 permit icmp source 203.0.113.100 0 destination 192.168.1.100 0                  
icmp-type echo description “Allow monitoring server ping”                  
                 

# 允许TTL过期消息(用于traceroute)                  

rule 15 permit icmp source any destination any                  
icmp-type time-exceeded description “Allow TTL exceeded”                  

                 

# 允许目的不可达消息                  

rule 20 permit icmp source any destination any                  
icmp-type destination-unreachable description “Allow destination unreachable”                  
                 

# 拒绝其他ICMP类型(如重定向)                  

rule 25 deny icmp

10.2.4 端口范围匹配

高级ACL支持多种端口匹配操作符:

Bash                  
# 端口范围匹配操作符                  
acl advanced 3400                  

# eq: 等于特定端口                  

rule 5 permit tcp source any destination 192.168.1.100 0                  
destination-port eq 22 description “Allow SSH”                  

                 

# gt: 大于特定端口                  

rule 10 permit tcp source any destination 192.168.1.100 0                  
destination-port gt 1023 description “Allow high ports”                  
                 

# lt: 小于特定端口                  

rule 15 permit tcp source any destination 192.168.1.100 0                  
destination-port lt 1024 description “Allow well-known ports”                  

                 

# range: 端口范围                  

rule 20 permit tcp source 192.168.10.0 0.0.0.255 destination 192.168.1.200 0                  
destination-port range 8000 9000 description “Allow custom app ports”        

10.2.5 状态检测与TCP会话控制

使用established参数控制TCP会话:

Bash                  
# 控制TCP连接建立                  
acl advanced 3500                  

# 允许已建立的TCP连接(ACK位为1)                  

rule 5 permit tcp source any destination 192.168.1.0 0.0.0.255 established                  
description “Allow established TCP connections”                  

                 

# 允许内部发起新连接                  

rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination any                  
destination-port eq 80 description “Allow HTTP outbound”                  

rule 15 permit tcp source 192.168.1.0 0.0.0.255 destination any                  
destination-port eq 443 description “Allow HTTPS outbound”                  
                 

# 拒绝外部发起的新连接(除特定服务外)                  

rule 20 deny tcp destination 192.168.1.0 0.0.0.255                  
description “Block inbound TCP initiations”

10.2.6 基于时间段的访问控制

Bash                  
# 定义工作时间段                  
time-range WORKING-HOURS                  

periodic Weekdays 09:00 to 18:00                  

periodic Saturday 09:00 to 12:00                  

                 
# 定义非工作时间段                  
time-range AFTER-HOURS                  

periodic Weekdays 18:01 to 08:59                  

periodic Saturday 12:01 to 23:59                  

periodic Sunday 00:00 to 23:59                  

                 
# 创建基于时间的ACL                  
acl advanced 3600                  

# 工作时间允许完全访问                  

rule 5 permit ip source 192.168.1.0 0.0.0.255 destination any                  
time-range WORKING-HOURS description “Full access during work hours”                  

                 

# 非工作时间限制访问                  

rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination any                  
destination-port eq 80 time-range AFTER-HOURS description “HTTP only after hours”                  

rule 15 permit tcp source 192.168.1.0 0.0.0.255 destination any                  
destination-port eq 443 time-range AFTER-HOURS description “HTTPS only after hours”                  

rule 20 permit udp source 192.168.1.0 0.0.0.255 destination 8.8.8.8 0                  
destination-port eq 53 time-range AFTER-HOURS description “DNS only after hours”                  
                 

# 非工作时间拒绝其他所有                  

rule 25 deny ip time-range AFTER-HOURS description “Block other traffic after hours”        

10.2.7 高级ACL综合应用案例

企业防火墙策略配置:

Bash                  
# 企业边界防火墙ACL策略                  
acl advanced 3800                  

# === 内部用户出站访问 ===                  

# Web访问                  

rule 10 permit tcp source 192.168.0.0 0.0.255.255 destination any                  
destination-port eq 80 description “Allow HTTP”                  

rule 15 permit tcp source 192.168.0.0 0.0.255.255 destination any                  
destination-port eq 443 description “Allow HTTPS”                  

                 

# 邮件访问                  

rule 20 permit tcp source 192.168.0.0 0.0.255.255 destination any                  
destination-port eq 25 description “Allow SMTP”                  

rule 25 permit tcp source 192.168.0.0 0.0.255.255 destination any                  
destination-port range 110 995 description “Allow POP3/IMAP”                  
                 

# DNS访问                  

rule 30 permit udp source 192.168.0.0 0.0.255.255 destination any                  
destination-port eq 53 description “Allow DNS”                  

                 

# === 外部访问内部服务 ===                  

# Web服务器                  

rule 40 permit tcp source any destination 203.0.113.100 0                  
destination-port eq 80 description “Allow inbound HTTP to web server”                  

rule 45 permit tcp source any destination 203.0.113.100 0                  
destination-port eq 443 description “Allow inbound HTTPS to web server”                  

                 

# 邮件服务器                  

rule 50 permit tcp source any destination 203.0.113.101 0                  
destination-port eq 25 description “Allow inbound SMTP”                  

rule 55 permit tcp source any destination 203.0.113.101 0                  
destination-port range 110 995 description “Allow inbound POP3/IMAP”                  
                 

# VPN访问                  

rule 60 permit udp source any destination 203.0.113.102 0                  
destination-port eq 500 description “Allow IKE for VPN”                  

rule 65 permit udp source any destination 203.0.113.102 0                  
destination-port eq 4500 description “Allow IKE NAT traversal”                  

                 

# === 安全防护规则 ===                  

# 防止端口扫描和攻击                  

rule 100 deny tcp source any destination any                  
destination-port eq 135 description “Block RPC”                  

rule 105 deny tcp source any destination any                  
destination-port eq 139 description “Block NetBIOS”                  

rule 110 deny tcp source any destination any                  
destination-port eq 445 description “Block SMB”                  
                 

# 防止常见攻击                  

rule 120 deny tcp source any destination any                  
destination-port eq 1433 description “Block SQL Server”                  

rule 125 deny tcp source any destination any                  
destination-port eq 3306 description “Block MySQL”                  
                 

# 默认拒绝所有未明确允许的流量                  

rule 1000 deny ip description “Implicit deny”                  

                 
# 应用ACL到边界接口                  
interface GigabitEthernet 0/0/0# 外网接口                  

ip address 203.0.113.1 255.255.255.0                  

traffic-filter inbound acl 3800                  

traffic-filter outbound acl 3800        

10.3 配置前缀列表

前缀列表(Prefix List)是一种用于路由过滤的高效工具,主要用于BGP路由选择、路由策略匹配等场景。与ACL相比,前缀列表专门为路由过滤设计,具有更直观的语法和更好的性能。

10.3.1 前缀列表基本概念

前缀列表的特点:

  1. 专门用于路由过滤:针对路由前缀进行匹配

  2. 支持CIDR表示法:使用前缀长度而不是通配符掩码

  3. 支持范围匹配:可以匹配特定范围内的前缀长度

  4. 顺序匹配:从上到下依次匹配,找到第一个匹配项即停止

  5. 高性能:专为路由过滤优化,处理速度比ACL更快

前缀列表的匹配要素:

  • IP前缀:要匹配的网络地址(如192.168.0.0)

  • 前缀长度:精确匹配的前缀长度

  • 范围匹配:ge(大于等于)、le(小于等于)操作符

10.3.2 基本前缀列表配置

Bash                  
# 创建前缀列表                  
ip prefix-list INTERNAL-ROUTES index 10 permit 10.0.0.0/8                  
ip prefix-list INTERNAL-ROUTES index 20 permit 172.16.0.0/12                  
ip prefix-list INTERNAL-ROUTES index 30 permit 192.168.0.0/16                  

                 
# 查看前缀列表                  
display ip prefix-list INTERNAL-ROUTES                  
display ip prefix-list all                  

                 
# 应用前缀列表到路由协议                  
bgp 100                  

peer 203.0.113.2 as-number 200                  

peer 203.0.113.2 ip-prefix INTERNAL-ROUTES import# 入方向过滤                  

peer 203.0.113.2 ip-prefix INTERNAL-ROUTES export# 出方向过滤

10.3.3 前缀长度范围匹配

前缀列表的强大之处在于支持前缀长度范围匹配:

Bash                  
# 精确匹配/24前缀                  
ip prefix-list EXACT-24 index 10 permit 192.168.0.0/24                  

                 
# 匹配10.0.0.0/8网络的所有子网(前缀长度>=16)                  
ip prefix-list SUBNETS-16 index 10 permit 10.0.0.0/8 ge 16 le 24                  
# 匹配:10.1.0.0/16, 10.2.0.0/16, 10.1.1.0/24 等                  

                 
# 匹配特定范围内的前缀长度                  
ip prefix-list MEDIUM-PREFIXES index 10 permit 172.16.0.0/12 ge 16 le 20                  
# 匹配:172.16.0.0/16 到 172.31.0.0/16,以及它们的子网                  

                 
# 拒绝默认路由                  
ip prefix-list NO-DEFAULT index 10 deny 0.0.0.0/0                  
ip prefix-list NO-DEFAULT index 20 permit 0.0.0.0/0 le 32

10.3.4 前缀列表操作符详解

操作符语法:

Plaintext                  
ip prefix-list NAME index INDEX {permit|deny} IP-PREFIX/LEN [ge GE-VALUE] [le LE-VALUE]

参数说明:

  • IP-PREFIX/LEN:要匹配的基础前缀和最小长度

  • ge GE-VALUE:大于等于的前缀长度(可选)

  • le LE-VALUE:小于等于的前缀长度(可选)

匹配逻辑:

  1. 首先检查IP地址是否在IP-PREFIX/LEN指定的网络范围内

  2. 如果指定了ge,检查前缀长度是否≥GE-VALUE

  3. 如果指定了le,检查前缀长度是否≤LE-VALUE

  4. 所有条件都满足时匹配成功

10.3.5 前缀列表应用场景

场景1:BGP路由过滤

Bash                  
# 只接收特定AS的特定路由                  
ip prefix-list CUSTOMER-A index 10 permit 203.0.113.0/24                  
ip prefix-list CUSTOMER-B index 10 permit 198.51.100.0/24                  
ip prefix-list CUSTOMER-B index 20 permit 198.51.101.0/24                  

                 
# 应用到BGP对等体                  
bgp 100                  

# 从客户A接收路由                  

peer 203.0.113.10 as-number 200                  

peer 203.0.113.10 ip-prefix CUSTOMER-A import                  

                 

# 从客户B接收路由                  

peer 198.51.100.10 as-number 300                  

peer 198.51.100.10 ip-prefix CUSTOMER-B import

场景2:防止路由泄露

Bash                  
# 防止私有地址路由泄露到公网                  
ip prefix-list NO-PRIVATE index 10 deny 10.0.0.0/8 le 32                  
ip prefix-list NO-PRIVATE index 20 deny 172.16.0.0/12 le 32                  
ip prefix-list NO-PRIVATE index 30 deny 192.168.0.0/16 le 32                  
ip prefix-list NO-PRIVATE index 1000 permit 0.0.0.0/0 le 32                  

                 
# 应用到所有EBGP对等体                  
bgp 100                  

peer-group EBGP-PEERS                  
ip-prefix NO-PRIVATE export

场景3:路由汇总控制

Bash                  
# 只允许特定粒度的路由                  
ip prefix-list SUMMARIZED index 10 permit 192.168.0.0/16 le 24                  
# 允许:192.168.0.0/16, 192.168.1.0/24, 192.168.2.0/24 等                  
# 拒绝:192.168.0.0/17(太具体)或192.0.0.0/8(太宽泛)                  

                 
ip prefix-list DEFAULT-ONLY index 10 permit 0.0.0.0/0                  
# 只允许默认路由

10.3.6 前缀列表与route-policy结合使用

Bash                  
# 复杂路由策略示例                  

                 
# 1. 定义前缀列表                  
ip prefix-list IMPORTANT-PREFIXES index 10 permit 10.1.0.0/16                  
ip prefix-list IMPORTANT-PREFIXES index 20 permit 10.2.0.0/16                  
ip prefix-list IMPORTANT-PREFIXES index 30 permit 10.3.0.0/16                  

                 
ip prefix-list BACKUP-PREFIXES index 10 permit 10.10.0.0/16 le 24                  
ip prefix-list BACKUP-PREFIXES index 20 permit 10.20.0.0/16 le 24                  

                 
# 2. 定义路由策略                  
route-policy IMPORTANT-ROUTES permit node 10                  

if-match ip-prefix IMPORTANT-PREFIXES                  

apply local-preference 200# 设置高本地优先级                  

apply community 100:666# 添加社区属性                  

                 
route-policy IMPORTANT-ROUTES permit node 20                  

if-match ip-prefix BACKUP-PREFIXES                  

apply local-preference 150                  

apply community 100:777                  

                 
route-policy IMPORTANT-ROUTES deny node 30                  

# 其他路由将被拒绝                  

                 
# 3. 应用路由策略                  
bgp 100                  

peer 10.0.0.1 as-number 200                  

peer 10.0.0.1 route-policy IMPORTANT-ROUTES import

10.3.7 前缀列表最佳实践

1. 合理使用deny规则:

Bash                  
# 先拒绝不需要的路由,再允许需要的                  
ip prefix-list FILTERED-ROUTES index 5 deny 0.0.0.0/0 le 15# 拒绝太宽泛的路由                  
ip prefix-list FILTERED-ROUTES index 10 deny 0.0.0.0/0 ge 25# 拒绝太具体的路由                  
ip prefix-list FILTERED-ROUTES index 100 permit 0.0.0.0/0 ge 16 le 24# 允许合理范围

2. 使用描述提高可维护性:

Bash                  
ip prefix-list INTERNET-ROUTES index 10 permit 0.0.0.0/0 le 24 description “Allow specific Internet routes”                  
ip prefix-list CUSTOMER-ROUTES index 10 permit 203.0.113.0/24 description “Customer A routes”                  
ip prefix-list CUSTOMER-ROUTES index 20 permit 198.51.100.0/24 description “Customer B routes”

3. 定期审计和清理:

Bash                  
# 查看前缀列表使用情况                  
display ip prefix-list statistics                  
display ip prefix-list used-count                  

                 
# 清理未使用的前缀列表                  
undo ip prefix-list UNUSED-LIST                  

                 
# 重置计数器                  
reset ip prefix-list statistics

10.3.8 前缀列表与ACL对比

特性

前缀列表 (Prefix List)

访问控制列表 (ACL)

主要用途

路由过滤

数据包过滤、路由过滤

匹配精度

基于CIDR前缀长度

基于通配符掩码

性能

针对路由优化,性能高

通用匹配,性能一般

语法复杂度

简单直观

相对复杂

范围匹配

支持ge/le操作符

支持通配符掩码

应用场景

BGP、路由策略、路由过滤

接口过滤、路由过滤、QoS

灵活性

针对路由场景优化

更通用,功能更丰富

总结与最佳实践

1. 工具选择指南:

  • 基本ACL:适用于简单的源IP地址过滤

  • 高级ACL:适用于复杂的协议、端口、时间等多条件过滤

  • 前缀列表:专门用于路由过滤,特别是BGP路由选择

2. 配置通用原则:

  • 从具体到一般:具体规则在前,通用规则在后

  • 最小权限原则:只允许必要的访问

  • 明确拒绝:在列表末尾明确拒绝其他所有流量

  • 使用描述:为每条规则添加描述,提高可维护性

  • 定期审查:定期检查规则使用情况和效果

3. 性能优化建议:

  • 将最常匹配的规则放在前面

  • 避免过度复杂的通配符掩码

  • 使用前缀列表替代ACL进行路由过滤

  • 合并相似规则,减少规则数量

4. 测试与验证:

Bash                  
# ACL测试验证命令                  
display acl all                  
display acl all statistics                  
display packet-filter interface GigabitEthernet 0/0/0                  

                 
# 前缀列表测试验证命令                  
display ip prefix-list all                  
display ip prefix-list used-count                  
display bgp routing-table ip-prefix IMPORTANT-PREFIXES                  

                 
# 路由策略测试                  
display route-policy IMPORTANT-ROUTES                  
display bgp routing-table peer 10.0.0.1 advertised-routes

基础过滤工具是网络安全和流量管理的基石。通过合理配置ACL和前缀列表,可以构建安全可靠、性能高效、易于管理的网络环境。在实际部署中,需要根据具体业务需求和网络架构,灵活选择和组合使用这些工具,并持续优化和维护配置策略。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 第10章:基础过滤工具技术文档

猜你喜欢

  • 暂无文章