OSPF**认证完整总结**
OSPF的认证有确切说是3种,OSPF头里其中认证字段0表示无认证, 1表示明文认证, 2表示MD5认证。明文认证发送密码进行认证,而MD5认证发送的是报文摘要。有关MD5的详细信息,可以参阅RFC1321.
?
OSPF的认证可以在链路上进行,也可以在整个区域内进行认证。另外虚链路同样也可以进行认证。
虚链路配置:两个ABR之间ospf进程下,指的是对方router-id 区域是中间穿越区域
area 1(中间穿越区域) virtual-link 3.3.3.3 (对方ABR router-id)
area 1(中间穿越区域) virtual-link 2.2.2.2 (对方ABR router-id)
注意:双方的RID不需要路由能通!
? 基于接口认证
1. 在**R1和R2的串行链路上进行OSPF**明文认证:
? (config-if)#ip ospf authentication**(启用认证)**
(config-if)#ip ospf authentication-key cisco**(配置密码)**
只有一端开启通过debug工具我们可以看到如下信息:
*Aug 15 22:51:54.275: OSPF: Rcv pkt from 10.1.1.2, Serial1/0 : Mismatch Authentication type. Input packet specified type 0**,** we use type 1
这里的type0是指对方没有启用认证,type1是明文认证。
2.**在R2和R3的串行链路上进行MD5认证的:**
(config-if)#ip ospf authentication message-digest**(定义认证类型为MD5) (config-if)#ip ospf message-digest-key 1 md5 cisco(定义key**和密码)
#show ip ospf int s1/0
Serial1/0 is up, line protocol is up
Internet Address 11.1.1.2/24, Area 1
Process ID 10, Router ID 3.3.3.3, Network Type POINT_TO_POINT, Cost: 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
? oob-resync timeout 40
? Hello due in 00:00:05
Index 1/1, flood queue length 1
Next 0x648352C8(13)/0x0(0)
Last flood scan length is 1, maximum is 2
Last flood scan time is 0 msec, maximum is 0 msec
? Flood pacing timer due in 0 msec
Neighbor Count is 1, Adjacent neighbor count is 1
? Adjacent with neighbor 2.2.2.2
Suppress hello for 0 neighbor(s)
Message digest authentication enabled
Youngest key id is 1
所以要修改链路的MD5认证的密码时,可以先将新的密码配置到启用认证的路由器后在将原来的密码删除,这样的话可以保证在修改配置的时候邻居关系依然存在。
区域**认证方法**(私有技术)
接口定义密钥,区域启用
明文认证**:
Router(config-if)#ip ospf authentication-key cisco启用明文密钥
Router(config-router)#area 1 authentication声明明文认证**
密文认证
Router(config-if)#ip ospf message-digest-key 1 md5 cisco 启用密文密钥
Router(config-router)#area 0 authentication message-digest 声明密文认证
如果R2在区域0采用认证,且重启进程,对于虚链路而言:
R2#sho ip ospf virtual-links
Virtual Link OSPF_VL0 to router 3.3.3.3 is up
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1, via interface Serial1/1, Cost of using 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
? Hello due in 00:00:06
Simple password authentication enabled
R3#sho ip ospf virtual-links
Virtual Link OSPF_VL0 to router 2.2.2.2 is up
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1, via interface Serial1/0, Cost of using 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
Hello due in 00:00:04
因为virtual-link属于Area0,因此在R2配置完成Area0区域认证后,R3也需要相应的配置。
R3(config)#router ospf 10
R3(config-router)#area 0 authentication
R3(config-router)#
*Aug 15 23:32:57.175: %OSPF-5-ADJCHG: Process 10, Nbr 2.2.2.2 on OSPF_VL0 from LOADING to FULL, Loading Done
R2#sho ip ospf virtual-links
Virtual Link OSPF_VL0 to router 3.3.3.3 is up
Run as demand circuit
DoNotAge LSA allowed.
Transit area 1, via interface Serial1/1, Cost of using 64
Transmit Delay is 1 sec, State POINT_TO_POINT,
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
? Hello due in 00:00:05
? Adjacency State FULL (Hello suppressed)
? Index 3/4, retransmission queue length 0, number of retransmission 1
? First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0)
? Last retransmission scan length is 1, maximum is 1
? Last retransmission scan time is 0 msec, maximum is 0 msec
Simple password authentication enabled
虚链路在建立起来后是不老化LSA,所以如果没有重启OSPF进程的话,即使一端配置了认证,虚链路也是不会断开的。
虚链路**认证方法**
明文认证
(config-router)#area 2 virtual-link 3.3.3.3 authentication-key cisco 启用明文(config-router)#area 2 virtual-link 3.3.3.3 authentication声明明文认证
密文认证
(config-router)#area 2 virtual-link 3.3.3.3 message-digest-key 1 md5 cisco
(config-router)# area 2 virtual-link 3.3.3.3 authentication message-digest
只支持等价负载均衡
默认4条,最大16条
Router(config-router)#maximum-paths 16
接口下修改优先级和cost
r1(config-if)#ip ospf priority 2**------大好**
r1(config-if)#ip ospf cost 65535
通告默认路由
r3(config-router)#default-information originate metric 100
r3(config)#ip route 0.0.0.0 0.0.0.0 null 0
两个ABR连接两个ISP,提供热备冗余备份。经测试,在骨干区域ABR打入这个命令会向骨干和非骨干都会通告,但一般用在边界的两个ABR上面。全ospf通告泛洪
r1(config-router)#default-information originate metric 100--通告默认,但是这个默认必须提前在路由表中
r1(config-router)#default-information originate always metric 15---即使我路由表中没有默认,也会自动创建一个广播出去,且还有一个作用,减少默认路由抖动引起的数据库操作,保证数据库稳定。因为我R1就没有产生一个默认路由,就无从谈起默认路由抖动问题了。默认metric为1
r1(config-router)#default-information originate always metric 15 metric-type 1-----其他路由器收到,这个15的外部cost值加上自己去ASBR(谁通告默认谁是ASBR)的cost值。在有多条链路去往ASBR的环境中适用。默认是oe2
ACL匹配路由:
r1(config)#access-list 1 per 3.3.3.0 0.0.0.255
r1(config)#route-map aaa per 10
r1(config-route-map)#match ip add 1
r1(config-route-map)#exit
----------------------------------------------------------------
前缀列表匹配路由:
ip prefix-list aaa seq 1 permit 34.1.1.0/24
ip prefix-list aaa seq 2 permit 35.1.1.0/24!
!
route-map aaa permit 10
match ip address prefix-list aaa
exit
------------------------------------------------------------------------------------------
r1(config)#router ospf 100
r1(config-router)#default-information originate always route-map aaa
在我是ASBR,连接一个后面路由器,这个路由器连接互联网,我作为R1,只有路由表中有3.3.3.0的路由才会向自己的ospf区域通告一个默认路由
路由汇总
ABR区域汇总:
area area-id range ip-address mask not-advertise**(不通告,就是抑制他,过滤LSA-3。路由聚合只针对域内路由做聚合,不能针对区域间路由做聚合)**
ASBR外部路由汇总:
summary-address ip-address mask
地址汇总计算方法:
1、简单的 ,同一子网的汇总
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
192.168.5.0/24
192.168.6.0/24
判断第几位发生变化,转换成二进制
192.168.00000 001.0/24
192.168.00000 010.0/24
192.168.00000 011.0/24
192.168.00000 100.0/24
192.168.00000 101.0/24
192.168.00000 110.0/24
将不变的位保留下来作为子网掩码的位数= 16+5=21
你也可以算变化的位 24-3=21
变化的位全部值0 那么这个时候的网络地址就是汇总后的地址
192.168.00000000.0/21=192.168.0.0/21
255.255.248.0
复杂一丁点的,不同子网的汇总
202.12.133.1/25 = 202.12.0.0/16
202.78.56.8/26 = 202.78.0.0/16
202.65.145.56/27 = 202.65.0.0/16
202.23.123.156/28 = 202.23.0.0/16
首先判断是第几段的地址位发生变化,后面的可以忽略
汇总成这个段的地址的主网络号
其次使用上面简单的处理方法
202.0 0001100.0.0/16
202.0 1001110.0.0/16
202.0 1000001.0.0/16
202.0 0010111.0.0/16
汇总后 子网为8+1=9 或者16-7=9
202.00000000.0.0/9
转发地址不可达情况
(config-router)#area 15 nssa translate type7 suppress-fa
ABR的路由器只有存在转发地址的OSPF路由时候,才会进行7转5. 如果我的转发地址不可达,可在NSSA区ABR处把转发地址设置成0.0.0.0,默认是NSSA区域的ASBR的router-id。如果是0.0.0.0就是代表直接去找7转5的ABR,不用去找转发地址了
其他路由器收到这个external的lsa后,还要检查是否有到达转发地址的路由,这个去往转发地址的路由必须是通过OSPF学习到的!如果没有,不会参与计算
可用静态路由测试!!!!!!!!!!!
--------------------------------------------------------------------------------------
过滤LSA-3:
该命令用来在ABR上作summary lsa过滤,如果是骨干区域(非骨干区域),就防止从其他非骨干区域(骨干区域)转换到该区域符合特定条件的summary lsa生成,过滤彻底。对应IOS命令为:
ip prefix-list bbb seq 1 deny 67.1.1.0/24
ip prefix-list bbb seq 2 permit 0.0.0.0/0 le 32
ABR(config-router)# area area-id filter-list prefix bbb in
如果是骨干区域(非骨干区域),就阻止从该区域转换到其他非骨干区域(骨干区域)符合特定条件的summary lsa生成,过滤彻底。对应IOS命令为:
Router(config-router)# area area-id filter-list prefix AAA out
T**unnel下启用ospf:只是通告tunnel接口IP地址,分析两层IP头部**
:tunnel源是自己物理接口,目的是对方物理IP地址,用于封装外层IP头部,在使用一条默认只想对方物理IP地址,tunnel接口才能使用,再在tunnel接口运行动态路由协议
r1(config-if)#ip ospf hello-interval 10----hello发送时间
r1(config-if)#ip ospf dead-interval 40----hello死亡时间
r1(config-if)#ip ospf retransmit-interval 5-----LSU重传时间
r1(config-if)#ip ospf transmit-delay 1-------age每次加一秒
r1(config-if)#ip ospf flood-reduction-----抑制hello和30分钟刷新时间(有问题点,测试不成功)
r1(config-router)#timers pacing lsa-group 240-----30分钟刷新时间后延时240秒,等待更多的LSA延时,以便组成一个组更新,这样更加节省CPU资源,数据库大,这个时间可以相对应设置小一点
Timers spf delay interval ---- 用于修改SPF计算的延迟和间隔,默认时间为 5s/10s
(config-if)#ip ospf dead-interval minimal hello-multiplier 3----hello是333毫秒,1秒除以3得到的
修改接口网络类型!!!点对点
管理距离
r1(config-router)#distance 110-------全部都改
? OR
r1(config-router)#distance ospf intra-area 10 inter-area 10 external 150
r1(config-router)#distance 110 1.1.1.1 0.0.0.0---从1.1.1.1的router-id学到的路由修改AD值(如指向直连邻居,且直连不是ABR,ABR在这个直连后面。对于这个直连的直连接口网段不起作用,但对于对方换回接口可以,指向后面的ABR更完美)如果修改的是区域间路由,后面IP地址设置为ABR的RID,如果修改的是域内路由指向ABR的RID不会生效,因为域内路由不是ABR给我的,反之,如果修改遇见路由把IP地址设置为我域内一台路由器的RID也不会生效,因为区域间路由不是域内路由器通告给我的,而是ABR通告被我的!
r1(config)#access-list 99 per 3.3.3.0 0.0.0.255
r1(config-router)#distance 130 1.1.1.1 0.0.0.0 99---从router-id为1.1.1.1收到的3.3.3.0修改它的AD值130
r1(config-router)#distance ospf inter-area 10(区间) intra-area 20 (区域内)external 30----修改域内,区域间,及外部路由AD值
改变外部路由的metric值
r1(config-router)#default-metric 20
但是如果在重分发时候手工已经指定metric,手工指定的优先
注意:充分发直连接口进来不会生效!!!
修改参考带宽值
r1(config-router)#auto-cost reference-bandwidth 1000
一个路由器,有个G借口,有个F接口,但算出来的cost值都是1,不公平!全局生效。单位是M
这个1000M实际是替代10的8次方
1G==1 000 000 000
100M==1 000 000 00
Distribute-list过滤
r1(config)#access-list 1 deny 3.3.3.0 0.0.0.255
r1(config)#access-list 1 deny 4.4.4.0 0.0.0.255
r1(config)#access-list 1 permit any
r1(config)#router ospf 100
r1(config-router)#distribute-list 1 in
过滤acl匹配的路由进入我的路由表,但数据库中仍在,也会更新给别人
利用前缀列表来匹配路由条目:
ip prefix-list aaa seq 1 deny 192.168.100.0/24
ip prefix-list aaa seq 2 permit 0.0.0.0/0 le 32
router ospf 100
distribute-list prefix aaa in
exit
r1(config)#access-list 1 deny 3.3.3.0 0.0.0.255
r1(config)#access-list 1 deny 4.4.4.0 0.0.0.255
r1(config)#access-list 1 permit any
r1(config)#router ospf 100
rr1(config-router)#distribute-list 1 in f0/0
从f0/0接口进来的3.3.3.0和4.4.4.0的LSA计算路由的时候忽略;不能进入我的路由表,但要防止他能从其他接口进来
r1(config-router)#distribute-list 1 out
r1(config-router)#distribute-list 1 out f0/0
不会把自己的路由条目通告出去,但是ospf是通告lsa,所以这两条命令对于ospf无效
r1(config)#access-list 1 permit 4.4.4.0 0.0.0.255
r1(config)#router ospf 100
r1(config-router)#distribute-list 1 out rip
只允许RIP路由4.4.4.0能进入我的数据库,用于控制重分布进来的路由进入我的数据库(ASBR处配置)
ip prefix-list aaa seq 1 deny 34.1.1.0/24
ip prefix-list aaa seq 2 permit 0.0.0.0/0 le 32
r1(config)#router ospf 100
r1(config-router)#distribute-list prefix aaa in
从我的邻居收到ospf路由,能进我的数据库,但是34.1.1.0不能进入我的路由表
防止**LSA**向这个接口泛
仅支持**NBMA和多点接口下应用,相应接口下面必须配置(config-if)#ip os network point-to-multipoint**
(config-router)#nei 1.1.1.1 database-filter all out------基于邻居的
r1(config-if)#ip ospf database-filter all out------------基于接口的
在**NBMA接口定义邻居死亡后hello**的查询间隔
r1(config-router)#nei 1.1.1.1 poll-interval 90------NBMA下邻居死亡后仍然向这个接口发hello!!!点对多点接口不能使用这个
修改优先级
r1(config-router)#nei 1.1.1.1 priority 10----------对于1.1.1.1来说,我的优先级是10
r1(config-if)#ip ospf priority 10-------我这个接口优先级是10
最大router-id为DR
被动接口
(config-router)#passive-interface s0/1
这个接口不发送**ospf**报文
r1(config-router)#passive-interface default
r1(config-router)#no passive-interface s0/1
所有接口置为**passive,除了S0/1以外。R1连接100个分支,且只和R2建立ospf邻居情况,这100个分支又包含在network**语句中
重分发
重分发**BGP默认cost==1,其他协议====2**
重点讲解**route-map与重分发的配合问题,能match什么,set**什么??
不能把默认静态充分发进OSPF
按需链路(收费链路)禁止**hello和30**分钟更新(需支持按虚链路,DC置位)但是需要在特定接口网络类型中:point-to-point
(config-if)#ip ospf demand-circuit
? donotage**标记**
(config-if)#ip ospf flood-reduction---**--发送带有donotage标记的LSA给邻居,让邻居age时间一直不变,相当于我这端每30分钟泛洪功能没有了,主要应用与大网中网络环境很稳定,每30**分钟发送更新没有必要的情况下
MTU**不匹配**
邻居起不来!!!!一直停留在**exstart状态,因为交换DBD数据库描述包,DBD描述包里有个MTU值,如果不匹配,我发的描述包对方不给确认,我会一直重发DBD描述包给对方,且状态一直停留在exstart**状态
r1(config-if)#ip ospf mtu-ignore------**忽略MTU检查(小的一方)**
或者修改接口下面的**MTU,但以太接口不能修改MTU**
? 记录ospf邻居状态
Router ospf 100
Log-adjacency-chenge [detail]-----------在控制台显示
Logging bufferad 4096 debugging-----------把ospf邻居变化存放到内存
Show logging------------------------------------查看日志
? 两个ABR选路问题**一个区域两个ABR,且COST相同,是走负载吗?不是,选择router-id大的转发**
OSPF与BGP协议联动
在存在备份链路的情况下,BGP在链路回切时,由于路由收敛速度滞后于OSPF路由收敛速度,从而造成流量丢失。
如图1所示,四台设备RouterA、RouterB、RouterC、RouterD之间运行OSPF协议,并建立IBGP连接。RouterC为RouterB的备份设备。当网络环境稳定时,BGP与OSPF在设备上是完全收敛的。
正常情况下,从RouterA到10.3.1.0/30的流量会途经RouterB。当RouterB发生故障后,流量切换到RouterC。RouterB故障恢复以后,流量回切到RouterB,此时会有流量丢失。
这是因为,在流量回切到RouterB的过程中,IGP收敛速度比BGP快,因此OSPF先收敛,BGP还没有完成收敛,导致RouterB不知如何到达10.3.1.0/30。
这样,当从RouterA去往10.3.1.0/30的流量被发送给RouterB时,由于没有必要的路由选择信息,这些流量就会被丢弃。
图1 OSPF与BGP联动
R**outer OSPF**
M**ax-metric router-lsa on-starup 5分钟**
? OR
M**ax-metric router-lsa wait-for-bgp**
? 帧中继
1,Ospf neighbor 1.1.1.1与ip ospf network broadcast
三个点,在同一个网段,全互联PVC
由于帧中继的NBMA环境不支持广播,可使用neighbor命令指定发送hello报文或者直接把NBMA配置成广播环境也行,二选其一
全互联情况下,C选DR和路由器B选成BDR,其实在全互联情况下选DR和BDR没有什么用处,但是如果非全互联环境就不一样了
但是全互联有一个致命缺点:费用太昂贵
{(n)(N-2)}/2 就是5台设备需要10个PVC,10台设备需要45个PVC,11台设备在额外增加11个PVC,可以采用hub-and-spoke联网技术
? hub-and-spoke联网技术
路由器C被选成DR,因为他的router-id最大,所有路由器与DR邻接,B和C之间没有直连,所以B不能成为DR的邻接邻居!!解决:路由器A始终成为DR,B和C优先级设为0就可以了
修改完成,三台设备路由表互相收敛完成,测试:
A ping 2.2.2.2 !!!!!
Ping 3.3.3.3 !!!!!
B ping 1.1.1.1 !!!!
Ping 3.3.3.3 ..........
C ping 1.1.1.1 !!!!!
Ping 2.2.2.2 ........
原因:B和C认为他们有直连关系,因为他们在同一个子网,而且网络类型为广播,在B的路由表中:去往3.3.3.3下一条直接是C的S0接口,但是他们实际没有直连PVC,肯定不通,必须让A作为中转才能通,解决方案:增加一个MAP映射
Frame-relay map ip 10.1.1.3 110 broadcast-----------------B
Frame-relay map ip 10.1.1.2 120 broadcast-----------------C
ip ospf network point-to-multipoint
ip ospf network point-to-multipoint------点对多点网络,我一个接口连接多个点对点
HUB可以配置成point-to-multipoint,两个分支可以配置成point-TO-POINT网络类型,但是邻居关系出不来,因为hello时间不匹配,因为多点网络hello是30s,点对点式10s
Ip ospf hello-interval 30----B和C
? IP OSPF POINT-TO-POINT
所有路由器没有打ip ospf network point-to-point, A只能和C形成邻居关系,因为子接口是point-TO-point情况下网络类型也是point-TO-point,匹配的,但是B使用的物理接口,接口ospf网络类型任然是NO-BROADCAST非广播类型,A和B肯定无法建立邻居关系,解决:B处手工指定邻居或者在B接口使用ip ospf network point-to-point解决!!!!!
帧中继下子接口反向ARP自动失效!!!!!!!!!
原文地址:http://blog.51cto.com/14067977/2348835