本帖最后由 杨童 于 2023-9-27 17:38 编辑
深信服防火墙从8070版本开始支持OSPF调用访问列表做路由过滤,8070以下不支持
OSPF中配置访问列表的作用: 用于在区域之间限制出入两个方向的三类LSA传播,就是控制(允许或禁止)一个区域的三类LSA传播到另一个区域 & 控制(允许或禁止)本区域接收三类LSA。只能在在ABR设备上配置生效。 此配置对应到华为&华三的OSPF配置就是在ospf区域视图下执行filter命令调用acl做进出控制
以上引出了几个概念要先了其中的原理,这里做一下简单的介绍,详细的原理建议单独学习OSPF,这里不做赘述: 1、什么是区域? ospf中存在区域(area)的概念,可以通过area将网络划分成不同的区域,用于精细化控制路由信息传播。区域分为骨干区域(区域0、area0)、非骨干区域(除区域0以外的),所有的非骨干区域必须和骨干区域互联,非特殊情况不允许非骨干区域直接互联。 2、什么是ABR? 基于区域划分的概念,需要有路由器作为桥梁将区域互联到一起,那么所有将两个区域互联起来的路由器,都叫做ABR,具体来说应该是:将骨干区域和非骨干区域互联起来的设备,叫做ABR 3、什么是LSA,什么是三类LSA? OSPF在传播路由信息的时候,传播的并不是单纯的路由表项,而是LSA(链路状态通告),OSPF中每一条路由信息最初始的状态就是LSA,路由器之间通过交互学习LSA,形成LSDB(链路状态数据库),LSDB计算后再形成路由表写入到路由器的路由表中; LSA分为很多种类型,常见的有1、2、3、4、5、7类,分别对应不同的来源 而三类LSA的定义是:ABR生成的LSA,具体指一个区域的LSA传播到另外一个区域时,这个跨区域传播的LSA就是三类LSA,因为要基于跨区域的特性,所以也只能在ABR设备上控制
以下图举例,三台路由器串联,AB之间属于area0,BC之间属于area1,此时路由器B作为桥梁连接了两个区域,所以路由器B就是ABR
area0中存在一条10.0.0.0/24的LSA,当这条LSA通过路由器B传播到area1后,这条LSA在area1中就属于三类 同理
area1中存在的20.0.0.0/24的LSA,当这条LSA通过路由器B传播到area0后,这条LSA在area0中就属于三类 而访问列表,就是在LSA传播时进行限制,可以限制(允许/禁止)LSA从本区域传播到其他区域,也可以限制(允许/禁止)其他区域的LSA传播到本区域
4、访问列表是什么? 其实就是简单ACL,用于设置网段,提供给OSPF调用(8070以上版本才支持OSPF调用,之前只支持给BGP使用),以8085配置举例,如下图位置新增访问列表,如果要给一个ACL创建多条规则,在新建时使用相同名字即可,创建后,所有同名的规则都会放在一起,可以通过上移下移配置匹配顺序,注意默认规则是拒绝,配置路由过滤时需要注意保底规则的配置 5、OSPF怎么调用访问列表? OSPF新增或编辑区域时,选择出入站访问列表配置,出站表示对从源自本区域传播到其他区域的LSA做控制,入站表示对从源自其他区域传播进入本区域的LSA做控制
配置思路:
1、整理当前网络拓扑结构; 2、遵守最小化原则,避免路由过滤影响过大,选择适当的区域配置出&入站; 3、先配置访问列表,调整好匹配顺序,再从ospf区域配置中调用。
以下图举例,路由器B作为ABR,作为三个区域之间的桥梁负责区域间的LSA传播
提问1:要求10.0.0.0/24网段禁止传播到area2。那么在哪个区域配置出&入站规则才能实现精细化控制? 答:需求是禁止area0的网段传播到area2,也就是说不禁止传播到area1,所以不能影响area1的路由学习,所以配置时需要保证既能让area2学不到,也要保证area1能学到,所以只能在area2的入站方向做拒绝规则,禁止10.0.0.0/24的网段进入到area2中(如果直接在area0的出站方向禁止掉,那area1也会无法学习到该LSA),配置思路为: 首先配置访问列表,访问列表要配置两条 一条设置网段为10.0.0.0/24,动作为拒绝 一条设置网段为0.0.0.0/0(表示所有IP),动作为允许 如下图,要注意顺序,第一条拒绝,第二条作为保底允许所有,因为ACL特性,如果不配置保底的允许所有,那其他所有路由都会被拒绝传播 然后在OSPF的区域配置中,在area2上的入站访问调用ACL即可
提问2:要求只允许30.0.0.0/24可以传播进入area1。那么在哪个区域配置出&入站规则才能实现精细化控制? 答:只允许30.0.0.0/24进入area1,也就表示要禁止除此之外的其他网段传播进入area1,配置思路为: 首先配置访问列表 第一条为允许30.0.0.0/24,第二条为禁止0.0.0.0/0 然后在ospf区域1中入站访问列表调用即可
|