HCIP-5.5OSPF路由过滤及认证
1、OSPF路由过滤
Filter-Policy:Filter-Policy(过滤-策略)是一个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于IS-IS、OSPF、BGP等协议。
OSPF支持使用路由策略对路由信息进行过滤。缺省情况下,OSPF不进行路由过滤。
OSPF可以使用的路由策略包括route-policy,访问控制列表(access-list),地址前缀列表(prefix-list)。
过滤器ip-prefix地址前缀列表。和acl不同的是,acl只能匹配前缀是否相同,但是可以在接口过滤,因为acl有行为(premit和deny),地址前缀列表没有。
OSPF路由过滤可以应用于以下几个方面:
类型 | 描述 |
---|---|
路由引入 | OSPF可以引入其它路由协议学习到的路由。在引入时可以通过配置路由策略来过滤路由,只引入满足条件的路由。 |
引入路由发布 | OSPF引入了路由后会向其它邻居发布引入的路由信息。可以通过配置过滤规则来过滤向邻居发布的路由信息。该过滤规则只在ASBR上配置才有效。 |
路由学习 | 通过配置过滤规则,可以设置OSPF对接收到的区域内、区域间和自治系统外部的路由进行过滤。该过滤只作用于路由表项的添加与否,即只有通过过滤的路由才被添加到本地路由表中,但所有的路由仍可以在OSPF路由表中被发布出去。 |
区域间LSA学习 | 通过命令可以在ABR上配置对进入本区域的Summary LSA进行过滤。该配置只在ABR上有效(只有ABR才能发布Summary LSA)。区域间LSA学习和路由学习之间的差异在于:区域间LSA学习直接对进入区域的LSA进行过滤;路由学习不是对LSA进行过滤而是对LSA计算出来的路由是否添加本地路由表进行过滤,学习到的LSA是完整的。 |
区域间LSA发布 | 通过命令可以在ABR上配置对本区域出方向的Summary LSA进行过滤。该配置只在ABR上配置有效。 |
1.1、调用工具或者过滤工具
1.1.1、filter(过滤3类lsa)
配置说明:
- 可以在ospf的 area下调用,可以在接口下调用
- 只能过滤3类lsa,不能过滤其它类型lsa
- 可以在通告区域的出方向过滤
- 可以在要接受的区域入方向过滤
- 需要配置在ABR上
filter 2000 export : R3、R4出方向不能访问R1的回环口11.11.11.11/32。
filter 2000 import:R4不能访问R1的回环口11.11.11.11/32。
注意:如何理解出方向,当我们ping某个路由器时,就是从源头发出报文,从源头而言是发出,而目的IP地址是接收报文,为入方向。
11.11.11.11 0在Area 0区通过OSPF发布,其它路由器接收到这条路由,出现在路由表中。
<R4>dis ospf lsdb
Area: 0.0.0.1
Type LinkState ID AdvRouter Age Len Sequence Metric
Sum-Net 11.11.11.11 2.2.2.2 201 28 80000001 1
ABR进行3类LSA过滤。
[R2]acl 2000
rule 10 deny source 11.11.11.11 0
rule 100 permit source any //最底层默认规则是拒绝所有
ip ip-prefix 10 deny 11.11.11.11 32
ip ip-prefix 100 permit 0.0.0.0 0 less-equal 32 //允许所有
[R2]ospf 1
area 0 //在area 0 的出方向过滤3类lsa
filter 2000 export //所有接口发出的路由进行过滤
filter ip-prefix 100 export //也可调用ip-prefix实现
area 1 //也可以在其它区域(1 or 2)的入方向过滤
filter 2000 import
当执行filter 2000 export 命令后,R2出方向Area 0区域过滤3类LSA,R3、R4的路由表中都没有11.11.11.11/32这条路由。
[R4]dis ospf lsdb
没有发现11.11.11.11/32这条路由信息。
R2入方向area 1区域过滤3类LSA,filter 2000 import,在Area 1区域没11.11.11.11/32这条域间路由,Area 2区域存在11.11.11.11/32这条域间路由。
带源(地址)ping
格式:ping -a <源地址> <目的地址>
1.1.2、filter-policy过滤策略(过滤3类LSA,5类LSA)
路由过滤工具,只能过滤路由,无法过滤LSA,不能修改路由属性。
对于链路状态协议,Filter-Policy不能对发布和接收的LSA进行过滤,故Filter-Policy不影响链路状态通告或链路状态数据库的完整性以及协议路由表,而只会影响本地路由表,且只有通过过滤的路由才被添加到路由表中,没有通过过滤的路由不会被添加进路由表。
配置说明:
- 在ospf进程下调用
- 可以调用acl,也可以调用ip-prefix
- import,仅对本路由器计算出的路由做过滤,将不符合条件的路由条目滤出路由表,对LSA没有任何过滤作用。
- 只在ASBR上配置export出方向过滤5类LSA,不允许不符合条件的路由条目转换为五类LSA发出。
1、区域内:
各路由设备之间传递的是LSA信息。由于filter-policy无法过滤LSA,同一个区域内type-1和type-2的LSA泛洪,进行数据库同步。所以在区域内的路由器LSDB表中仍然存在着过滤的目的地址。只是在路由表中对引入的路由信息进行过滤。
ABR入方向对3类LSA过滤:filter-policy import
import可以在任意设备上配置,只控制是否加入路由表不过滤LSA传递。
[R2]
ip ip-prefix 10 deny 44.44.44.44 32
ip ip-prefix 100 permit 0.0.0.0 0 less-equal 32 //允许所有
[R2]ospf 1
filter-policy ip-prefix 100 import //需要在入方向
没有发现44.44.44.44/32这条路由。
[R2-ospf-1]dis ip rou
在LSDB表中仍然存在着44.44.44.44/32。
[R2-ospf-1]dis ospf lsdb
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 44.44.44.44 10.0.24.4 1405 36 80000001 1
OSPF路由表中这条路由还是存在
[R2-ospf-1]dis ospf rout
OSPF Process 1 with Router ID 2.2.2.2
Routing Tables
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
44.44.44.44/32 1 Type2 1 10.0.24.4 10.0.24.4
由于LSA泛洪,在R1、R3的路由表中都存在着这条路由。filter-policy仅对本路由器有效。
由于R2路由不存在这条路由。从R1和R3上不能拼通44.44.44.44/32。
2、区域间:
ASBR出方向对5类LSA过滤:filter-policy export //仅配置在Asbr
[R4]acl 2000
rule 5 deny source 44.44.44.44 0
rule 10 permit
ospf 1
filter-policy 2000 export //asbr上过了5类lsa
OSPF中filter-policy export仅能在ASBR上配置,直接不允许规定的路由进行转换为五类LSA传递。
这时在R4路由器路由表和LSDB表中都存在着44.44.44.44/32。被阻止生成5类LSA。
1.1.3、router-policy路由策略
Route-Policy是一种比较复杂的过滤器,它不仅可以匹配给定路由信息的某些属性,还可以在条件满足时改变路由信息的属性。
route-policy test permit / deny node 10
if-match ip-prefix 1
apply cost 10
test:route-policy 的名称
permit / deny:动作,允许 or 拒绝
node 10:编号,从小到大依次匹配
if-match:条件语句,如果
apply:执行语句,执行
- 同样可以调用acl 和 ip-prefix
- 调用acl和 ip-prefix 时,修改一些路由参数。
配置方式:
1、如果路由匹配ip-prefix 10 的定义的特征,则允许被引入、发布、接收,并修改路由的cost 为10
route-policy R4 permit node 10
if-match ip-prefix 10
apply cost 10
如果路由匹配ip-prefix 1 的定义的特征且cost等于1,则允许被引入、发布、接收,并修改路由的cost 为10,tag为100
<Huawei> system-view
[Huawei] route-policy policy permit node 10
[Huawei-route-policy] if-match route-type nssa-external-type1
用于ASBR引入外部路由时的过滤:
[R4]
ip ip-prefix 10 deny 44.44.44.44 32
ip ip-prefix 100 permit 0.0.0.0 0 less-equal 32
route-policy WaiBu permit node 10 //路由策略WaiBu编号10节点。
if-match ip-prefix 10 //匹配ip-prefix 10 的条件语句
apply cost 200 //开销为200,执行语句
ospf 1
import-route direct route-policy WaiBu //R4在OSPF 1下调用路由策略WaiBu
Abr入方向上过滤3类lsa
[R2]acl 2000
rule 10 deny source 11.11.11.11 0
rule 100 permit source any
route-policy 11 permit node 20 //路由策略11编号20节点。
if-match acl 2000 //匹配acl 2000 的条件语句
apply cost 200 //开销为200,执行语句
filter route-policy 11 import //跟上述filter调用acl,ip-prefix差不多,但是此命令是立即生效
1.1.4、接口过滤方式
- 模拟器在测试时,R2的0口上配置完后,R1上不会立马出效果
- 需要等lsa老化完,3600秒
- R1上 reset ospf process 后立马出效果
- 可以调用acl筛选要过滤的lsa,不支持调用ip-prefix
- 可以过滤 3 5 7 all 种类的lsa
注意:接口下只能配置一条 filter-lsa-out …
[R2]inte g0/0/0
ip address 10.0.12.2 255.255.255.0
ospf filter-lsa-out all //过滤所有类型lsa,包括1,2类型
ospf filter-lsa-out summary //过滤3类
ospf filter-lsa-out ase //过滤5类
ospf filter-lsa-out nssa //过滤7类
ospf filter-lsa-out summary ase nssa //过滤3 5 7类lsa
ospf filter-lsa-out summary ase acl 2010 //调用筛选工具过滤
2、OSPF多进程
OSPF支持多进程,在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。
路由器的一个接口只能属于某一个OSPF进程。OSPF多进程的一个典型应用就是在VPN场景中PE(汇聚层设备)和CE(边缘设备)之间运行OSPF协议,同时VPN骨干网上的IGP也采用OSPF。在PE上,这两个OSPF进程互不影响。
命令:
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ]
参数 | 参数说明 | 取值 |
---|---|---|
process-id | OSPF进程号。 | 整数形式,取值范围是1~65535。缺省值是1。 |
router-id router-id | Router ID。 | 点分十进制格式。 |
vpn-instance vpn-instance-name | 指定VPN实例名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~31。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
<Huawei> system-view
[Huawei] ospf 100 router-id 10.10.10.1 vpn-instance huawei
3、OSPF认证
3.1、在OSPF header 包头格式中:
AuType:
1).null --type=0
2).明文–type=1
3).密文–type=2
3.2、接口认证及区域认证:
接口认证优于区域认证
3.2.1、接口认证
authentication-mode simple [ plain plain-text | [ cipher ] cipher-text ]
simple:使用简单验证模式。plain:指定明文类型的认证密码。此模式下只能明文键入密码。
cipher-text 指定密文验证字。
明文认证配置
interface GigabitEthernet0/0/0
ip address 24.1.1.4 255.255.255.0
ospf authentication-mode simple cipher huawei //huawei为密文验证字
authentication-mode { md5 | hmac-md5 | hmac-sha256 } [ key-id { plain plain-text | [ cipher ] cipher-text } ]
md5 使用MD5密文验证模式。 hmac-md5 使用HMAC MD5密文验证模式。
hmac-sha256 使用HMAC-SHA256验证模式。
key-id 接口密文验证的验证字标识符,必须与对端的验证字标识符一致。整数形式,取值范围是1~255。
plain-text 指定明文验证字。 认证模式为simple时,长度为1~8;认证模式为md5、hmac-md5、hmac-sha256时,长度为1~255。
keychain 使用Keychain验证模式。
keychain-name 指定Keychain名称。
cipher-text 指定密文验证字。
密文认证配置
interface GigabitEthernet0/0/0
ospf authentication-mode md5 1 cipher huawei //1为参数key-id表示接口加密认证中的认证密钥ID。huawei为密文验证字
3.2.2、区域认证
明文认证配置
ospf 1 router-id 22.1.1.1
area 0.0.0.1
authentication-mode simple cipher huawei
配置选择
[R1-ospf-1-area-0.0.0.0]authentication-mode ?
hmac-md5 Use HMAC-MD5 algorithm
hmac-sha256:表示使用hmac-sha256密文验证模式
keychain Keychain authentication mode
md5 Use MD5 algorithm
simple Simple authentication mode
密文认证配置
ospf 1 router-id 22.1.1.1
area 0.0.0.1
authentication-mode md5 1 cipher huawei
注意:
如果区域0认证,存在虚链路时,虚链路也要进行认证.
3.2.3、系列号的防重放功能
系列号的作用防重放,就是防止黑客截获报文后,以相同密码和密码ID发送报文与黑客电脑建立邻居关系,因为系列是不断增长的,黑客无法与原机的系列号增长值相符。这样其他路由收到不符合增长的系列号会丢弃这个数据包。系列号的大值是2^32。
3.2.4、Keychain认证保护
OSPF使用KeyID的好处:当换认证或更新认证时,由于我们使用Key ID 1、2同时都进行认证交换,我们可以在不中断路由器运行时进行,因为我们换Key ID 1认证时,Key ID 2在工作运行;在更新Key ID 2时Key ID 1在运行。在核心路由器上不可能因为更换密码而使邻居中断。
md5表示使用MD5密文验证模式。
hmac-md5:表示使用hmac-md5密文验证模式。
hmac-sha256:表示使用hmac-sha256密文验证模式
key-id:表示密文验证的验证字标识符。
Keychain:keychain authentication-mode
执行命令authentication-mode keychain keychain-name,配置OSPF区域的Keychain验证模式。
Keychain认证:Keychain由多个认证密钥组成,每个密钥包含一个ID和密码。密钥存在生命期,通过密钥的生命期可以在Keychain中滚动选择不同的认证密钥。Keychain可以滚动选择认证密钥来增强防攻击性。
Keychain为OSPF提供了认证保护,Keychain通过动态的更改认证算法和密钥,提高了OSPF的安全性。应用Keychain认证,除了可以对OSPF协议报文进行认证之外,还可以对TCP建立连接的过程进行认证。
OSPF是双向论证,连接的路由两边都要配置区域认证。
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123.com //1为ID
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123.com
推荐配置方法:
[R1] keychain apple mode ?
absolute Absolute timing mode 绝对计时模式
periodic Periodic timing mode 周期定时模式
[R1] keychain apple mode absolute //绝对计时模式
[R1- keychain]key-id 1
[R1- keychain- keyid -1] algorithm ?
hmac-md5
hmac-sha1-12
hmac-sha1-20
md5
sha-1
simple
[R1- keychain- keyid -1] algorithm hmac-sha1-20 //对密钥进行hmac-sha1-20加密
[R1- keychain- keyid -1] key-string cipher 111.com //密码内容
[R1- keychain- keyid -1]q
[R1- keychain]key-id 2
[R1- keychain- keyid -2] algorithm hmac-sha1-20
[R1- keychain- keyid -2] key-string cipher 123.com
[R1- keychain- keyid -2]key-id 1
[R1-keychain-keyid-1]?
send-time 发送的有效时间
receive-time 接收的有效时间
[R1-keychain-keyid-1] receive-time utc 00:00 2020-5-1 to 00:00 2020-6-1 // keyid-1发送密码到2020-6-1结束。
00:00 2020-5-1 to到什么时间
00:00 2020-5-1 duration 持续多少时间
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]authentication-mode keychain apple
4、OSPF被动接口
原理概述
OSPF被动接口也称为抑制接口,成为被动接口后将不会接收和发送OSPF报文。
本地路由器不接收网络中其他路由器发布的路由更新消息 在已经运行OSPF协议进程中的接口不与本链路上,其余路由器建立邻居关系时,可通过配置被动接口来静止此接口接收和发送OSPF报文。
注意事项:
- 接口静默之后,接口的直连路由可以发布出去。
- 但是Hello报文被阻塞,无法建立邻居关系。
配置:
ospf 1
silent-interface GigabitEthernet0/0/0