OSPF更新机制
主打一个:谁产生的,谁负责更新(谁的孩子谁管)
定时更新
默认情况下,产生这条LSA的路由器每隔1800s会更新自身的LSA,此时seq + 1 、 chksum重新计算、Ls age置0。
触发更新
当产生这条LSA的路由器发现这条LSA的状态发生了变化,会产生触发更新的行为,此时seq + 1 ,、chksum 重新计算、 ls age置0。
如何判断LSA的新旧:
- seq 越大越新
- chksum 越大越新
- ls age = 3600 最新
ls age 差值 > 900,ls age小的最新
ls age 差值 < 900,ls age一样
实验用图:
在路由器R4上面做参数修改动作,是状态参数更新:
更新后参数变化,为使得LSA的状态最新,在状态参数没有变化的情况下,经历1800s后也会定时更新。
默认类型type 2,可在执行路由引入时做开销、类型、tag修改。
删除静态路由后,在其他路由器上如何也跟着删掉呢?
可以利用3600s的老化时间(seq chksum的参数不变),此时原路由器新产生的这条LSA的ls age变成3600,随后传递到其他路由器上面,在比对完LSA标识参数后,确认为同一条LSA,发现传过来的LSA 的ls age为3600,执行删除操作。
参数如下:在seq 不变,chksum 不变的情况下,将ls age设置为3600,告诉其他路由器执行删除操作
OSPF认证机制
路由协议的认证:保护协议报文的安全性(LSR LSU LSACK),不对数据加密
数据安全:
数据的机密性,只有通信的双方才能看懂数据,其他任何人都无法了解数据内容
数据的完整性,数据无法被伪造或者被篡改
数据的不可抵赖性,不能否认你做过或者你没做过
路由协议的认证:只实现数据完整性保护
OSPF协议认证方式:
1、区域认证
在属于这个区域的所有接口上启用认证,批量性的接口认证
2、接口认证
仅在该接口上启用认证,单个接口可以连接区域认证中的一个接口,只要认证类型一致
3、接口认证优先于区域认证
支持的认证模式:
- null(不认证):即不做认证,auth type 0 auth data 0
- simple (明文):只要密码一致,就可以认证通过auth type 1,但,无法实现数据完整性保护,无法防护欺骗攻击和篡改攻击。
- MD5以及HMAC-MD5(华为加强版),要求key id 一致(两端的秘钥一样),一致才能认证成功。
- 认证的模式两边要一致
- ospf authentication-mode null 将接口从区域认证中排除掉,做空认证(只在接口认证下有空认证)
- 如果做了area 0 认证,并且存在vlink,那么vlink也要做认证,因为vlink属于area 0 。
区域认证
[R2-ospf-1]a 0
[R2-ospf-1-area-0.0.0.0]au
[R2-ospf-1-area-0.0.0.0]authentication-mode
接口认证
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/1
ip address 10.1.23.2 255.255.255.0
#
return
[R2-GigabitEthernet0/0/1]ospf au
[R2-GigabitEthernet0/0/1]ospf authentication-mode
接口下明文认证
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/1
ip address 10.1.2312 255.255.255.0
#
[R2-GigabitEthernet0/0/1]ospf au
[R2-GigabitEthernet0/0/1]ospf authentication-mode si
[R2-GigabitEthernet0/0/1]ospf authentication-mode simple
[R2-GigabitEthernet0/0/1]ospf authentication-mode simple plain huawei
[R2-GigabitEthernet0/0/1]q
接口下明文认证,密码抓包后直接可以看到,安全性低,但是有比没有好,聊胜于无。
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode simple
[R2-GigabitEthernet0/0/1]ospf authentication-mode simple cipher huawei #密码是huawei,cipher 密码修饰后显示
只有接口下可以做空认证,目的:将接口从区域认证中排除掉,为了兼容
[R3-GigabitEthernet0/0/0]ospf authentication-mode null\simple\MD5\HMAC-MD5\keychain
区域下面没有空认证
[R2-ospf-1-area-0.0.0.0]authentication-mode simple\md5\hmac-md5\keychain
区域下MD5认证
[R2]ospf 1
[R2-ospf-1]a 0
[R2-ospf-1-area-0.0.0.0]au
[R2-ospf-1-area-0.0.0.0]authentication-mode md
[R2-ospf-1-area-0.0.0.0]authentication-mode md5 1 p
[R2-ospf-1-area-0.0.0.0]authentication-mode md5 1 plain huawei@123 #这里的key-id是1,两边要一样,plain 密码直接显示
[R2-ospf-1-area-0.0.0.0]
接口下明文认证,密码抓包后直接可以看到,安全性低,但是有比没有好,聊胜于无。
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode simple
[R2-GigabitEthernet0/0/1]ospf authentication-mode simple cipher huawei #密码是huawei,cipher 密码修饰后显示
只有接口下可以做空认证,目的:将接口从区域认证中排除掉,为了兼容
[R3-GigabitEthernet0/0/0]ospf authentication-mode null\simple\MD5\HMAC-MD5\keychain
区域下面没有空认证
[R2-ospf-1-area-0.0.0.0]authentication-mode simple\md5\hmac-md5\keychain
MD5算法的特点,数学上是一种哈希函数:
- 不可逆,无法通过哈希值,反推出原始数据。
- 雪崩效应,原始数据任何的bit被修改,得到的哈希和原始的哈希存在很大区别。
- 随机输入,固定输出,无论原始数据大小如何,哈希结果长度一致,MD5为128bit,SHA为160bit。
两端的key一致,也就是秘钥一致,hash = data + key
可以区域下面做认证
[R3]ospf1
[R3-ospf-1]dis this
[V200R003C00]
#
ospf 1 router-id 3.3.3.3
import-route static
areea0.0.0.1
network 10.1.23.3 0.0.0.0
area 0.0.0.2
network 10.1.34.3 0.0.0.0
nssa
auth type 0
#
return
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]authentication-mode md
[R3-ospf-1-area-0.0.0.0]authentication-mode md5 1 p
[R3-ospf-1Marea-0.6.0.0Jauthentication-mode ma5 1 plain huaweie123
当然也可以在接口下做认证,接口下先指定协议,然后是认证类型
[R3-ospf-1]int g0/0/0
[R3-GigabitEthernet0/0/0]ospf authentication-mode md
[R3-GigabitEtherneto/0/0]ospf authentication-mode md5 1 p
[R3-GigabitEthernet0/0/0]ospf authentication-mode md5 1 plain huawei@123
说明:如果做了area 0 认证,并且存在vlink,那么vlink也要做认证
R2的配置,area 0 区域认证 MD5
[R2-ospf-1]dis this
[Vz00RO03C001T19
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
authentication-mode md5 1 plain huawei@123
network 10.1.23.2 0.0.0
area 0.0.0.1
network 10.1.12.2 0.0.0,0
#
return
开始做虚链路
[R2-ospf-1]a 1
[R2-ospf-1-area-0.0.0.1]vlink-peer 1.1.1.1
R1配置,先同R2之间建立vlink
<R1>system-view
[R1]ospf 1
[R1-ospf-1]dis this
[V200R003C00]
#
ospf 1 router-id 1.1.1.1
import-route static
area 0.0.0.1
network 10.1.12.1 0.0.0.0
network 172.16.0.0 0.0.255.2553
#
return
[R1-ospf-1]a 1
[R1-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
[R1-ospf-1-area-0.0.0.1]q
此时,R1和R2之间的虚链路还无法建立成功,处于down状态,原因就是虚链路属于area 0 ,而area 0 做了区域认证,但是虚链路另一端area 1 没有做认证。
第一种方法:非 area0 上建立虚链路的同时,对虚链路做认证
[R1-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2 md5 1 plain huawei@123
[R1-ospf-1-area-0.0.0.1]dis this
[V200R003C00]
#
area 0.0.0.1
network 10.1.12.1 0.0.0.0
network 172.16.0.0 0.0.255.255
vlink-peer 2.2.2.2 md5 1 plain huawei@123
#
return
第二种方法:当然也可以在R1上创建area 0 ,然后做区域认证,此时虚链路两端同一种认证类型
[R1]ospf 1
[R1-ospf-1]a 0
[R1-ospf-1-area-0.0.0.0]authentication-mode md5 1 plain huawei@123
[R1-ospf-1-area-0.0.0.0]dis this
[V200R003C00]
#
area 0.0.0.0
authentication-mode md5 1 plain huawei@123
#
return
第三种方法:在R2上面,把area 0 中的虚链路的接口认证设置为空认证,即把vlink接口从区域认证中排除,此时状态也可以建立
[R1-ospf-1-area-0.0.0.1]vlink-peer 1.1.1.1 authentication-mode null
虚链路虽然属于area 0 ,但是在配置的时候都是在area 1 中的,所以这里是area 1 下面进行空认证。
最后,完成虚链路两端认证,状态建立: