策略路由中if-macf中的acl写deny是不生效的吗?例如我想拒绝某条流量不走策略路由
(0)
最佳答案
拒绝某个网段不走策略路由,在策略路由的ACL中的permit里面不包含就可以了。
以下是策略路由的配置举例:
通过策略路由控制Router A产生的报文:
· 指定所有TCP报文的下一跳为1.1.2.2;
其中,Router A分别与Router B和Router C直连。
# 配置Serial接口的IP地址。
[RouterA] interface serial 2/0
[RouterA-Serial2/0] ip address 1.1.2.1 24
[RouterA-Serial2/0] quit
[RouterA] interface serial 2/1
[RouterA-Serial2/1] ip address 1.1.3.1 24
[RouterA-Serial2/1] quit
# 定义访问控制列表ACL 3101,用来匹配TCP报文。
[RouterA-acl-adv-3101] rule permit tcp
[RouterA-acl-adv-3101] quit
# 定义5号节点,指定所有TCP报文的下一跳为1.1.2.2。
[RouterA] policy-based-route aaa permit node 5
[RouterA-pbr-aaa-5] if-match acl 3101
[RouterA-pbr-aaa-5] apply next-hop 1.1.2.2
[RouterA-pbr-aaa-5] quit
# 在Router A上应用本地策略路由。
[RouterA] ip local policy-based-route aaa
# 配置Serial接口的IP地址。
[RouterB] interface serial 2/0
[RouterB-Serial2/0] ip address 1.1.2.2 24
# 配置Serial接口的IP地址。
[RouterC] interface serial 2/1
[RouterC-Serial2/1] ip address 1.1.3.2 24
从Router A上通过Telnet方式登录Router B(1.1.2.2/24),结果成功。
从Router A上通过Telnet方式登录Router C(1.1.3.2/24),结果失败。
从Router A上ping Router C(1.1.3.2/24),结果成功。
由于Telnet使用的是TCP协议,ping使用的是ICMP协议,所以由以上结果可证明:Router A产生的TCP报文的下一跳为1.1.2.2,串口Serial2/1不发送TCP报文,但可以发送非TCP报文,策略路由设置成功。
(0)
只需要写允许的流量即可,匹配的是流量特征
(0)
ACL中不写那些网段,匹配不到策略路由走默认
那我某些流量不想让他走策略路由如何配置?
ACL中不写那些网段,匹配不到策略路由走默认
如果一定要在一个大的网段里扣掉几个小网段让它们别被匹配的话才会写deny。一般不写deny,permit就够用了。
比如匹配172.16.0.0/16,但唯独单单不想让其中的172.16.123.0/24被匹配,可以这么写。
acl advanced 3000
rule 5 deny ip source 172.16.0.0 0.0.255.255
rule 10 permit ip source 172.16.123.0 0.0.0.255
讲一下原理:
因为acl默认是顺序匹配,也就是先查看rule 5,再查看rule 10。。。。。。直到有rule符合或着确认所有rule都不符合为止。所以源为172.16.123.0/24的流量会直接和rule 5相符合而被deny掉;而172.16.0.0/16中的其他ip与rule 5不符合,进而会查找rule 10,发现和rule 10符合,因此被permit,进而触发策略路由指导转发。如果是192.168.0.0/24的话,与所有rule都不符合,那就会匹配默认规则而被deny(可以理解成默认有一条rule 10000000000000,它会deny所有报文),因此不会受到策略路由影响。这就实现了只匹配172.16.0.0/16中剔除172.16.123.0/24后的那部分。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明