123sw 发表于 2015-11-5 11:43:19

3.CCNP闫辉视频笔记OSPF

简介
  

[*]OSPF(开放式最短路由优先协议)
[*]IGP
[*]LS 发送的是LSA(链路状态通告Link Status Advertisement),包含的是拓扑信息。加入LSDB,用SPF计算出Routing Table
[*]VLSM/CIDR
[*]四层协议 三层报头中的上层协议号为89



[*]7中邻接关系
[*]7中LSA
[*]5中报文
[*]3张表

[*]邻居表(邻接数据库)
[*]拓扑表(LSDB)
[*]路由表(转发数据库)


链路状态协议特点

[*]链路状态路由协议比距离矢量路由协议更加了解网络拓扑
[*]每台路由器都会保存同一区域的拓扑
[*]不会产生环路
OSPF区域

[*]两个层次

[*]骨干区域(area 0),或者叫传输区域
[*]非骨干区域

[*]减少路由表表项

[*]OSPF中没有自动汇总的概念,因为OSPF中传递的是LSA,而不是路由条目。
[*]不能进行域内汇总,只能进行域间汇总和域外汇总。

[*]将拓扑变更的影响限制在一个区域内
[*]特定LSA泛洪停止在域边界上,不同类型的LSA有不同的传递性
名词骨干路由 backbone routersABR area border router 区域边界路由器将其他区域连接到area 0
OSPF邻接关系
在OSFP中,对邻居关系(Neighbor)和邻接关系(Adjacency)严格区分。邻居关系是指三层直连,邻接是指7层FULL邻接关系。

[*]P2P WAN

[*]两端邻居成为FULL邻接关系

[*]LAN

[*]邻居与DR和BDR形成FULL邻接关系
[*]DROTHER之间形成two-way state

[*]只有当邻接关系建立起来了,才能交换LSA,并同步LSDB。
[*]LSA是泛洪的。
OSPF算法计算
也叫Dijkstra算法

[*]同一个区域内的所有路由器拥有相同的LSDB
[*]度量值称为cost,将每段路径用10^8/BW(bit/s)计算,然后求和,得到整条路径的cost
LSA
OSPF和RIP一样,既支持周期发送,也支持触发发送。序列号最小值 0x8000 0001最大值 0x7FFF FFFF
序列号使用的最右边的棒棒糖型空间
OSPF报文类型

[*]HELLO

[*]Hello timer:10s或者30s,取决于接口类型。
[*]Dead timer是发送周期的4倍,修改hello时间,dead时间将自动变为4倍,反过来,修改了dead不会改变hello。

[*]DBD(Database Description)

[*]LSDB的摘要信息,防止不必要的LSA交换

[*]LSR(Link-State Request)

[*]请求自己没有的LSA

[*]LSU(Link-State Update)

[*]包含LSR请求的LSA信息

[*]LSAck(Link-State Acknowledgment)

[*]确认收到了LSU中的LSA,有多少条LSA,就有多少LSAck进行确认

OSPF的确认机制

[*]显示确认 使用LSU确认LSR使用LSAck确认LSU
[*]隐式确认(基于序列号的确认机制) 不使用额外的报文确认,而是用相同序列的同类型报文进行确认。如DBD
OSPF包封装


Router ID的选择:
[*]手工配置
[*]所有状态为UP UP的环回口中选举最大的IP地址
[*]所有状态为UP UP的物理接口最大的IP地址
Router ID和Area ID都可以用点分十进制表示。
HELLO报文

[*]Router ID
[*]Hello and dead intervals *
[*]Neighbors 包含邻居的RID
[*]Area ID *
[*]Router priority 在P2P接口中,这个字段是没有意义的
[*]DR IP address
[*]BDR IP address
[*]Authentication password *
[*]Stub area flag *
*表示建立邻接关系必须协调成功的条目
邻接关系建立过程的7种状态
[*]Down 初始状态,接口被宣告进OSPF,没有发送任何报文
[*]Init 通过接口发送一份Hello
[*]Two-Way 通过接口收到了一份Neighbor字段包含自身RID的Hello
[*]Exstart 交互3个不带LSA报头的DBD,选择Master/Slave
[*]Exchange 由Master发起的带有LSA报头的DBD信息交互
[*]Loading 交互LSR LSU以及LSAck实现LSDB的同步
[*]Full 一旦LSDB同步,邻接关系到达Full

Two-Way状态并不是同时到达的。到达了Two-Way State之后,MA网段将进行DR选举。
在进入Exstart State之后,将交换3个DBD,以确立主从关系(Master/Slave),由RID更大的作为Master。
图中,I指initial,M指more,M/S指Master/Slave。在Exchange State阶段中,由Master主导DBD交换。


OSPF小特性

[*]MTU更改
[*]在OSPF中,Loopback口将会处理成一台stub host,其路由以32位主机路由通告出去,可以防止路由黑洞。
DR/BDR选举
选举原则
[*]参与该MA网段的路由器接口的OSPF优先级,越高越好(0-255),缺省值是1。值为0,表示不参与选举。
[*]该MA网段所连接的路由器的RID,越高越好。
选举时间为wait time,从第一台路由器到达Two-Way State开始计算,默认为40s或者120s,是必须选满的。选举完成之后,就不再进行选举了。与根桥选举不同,根桥选举是时时进行的。特点:

[*]DR/BDR无法被抢占
[*]DR挂了,BDR会立即抢占成为新的DR,新的BDR通过在所有DROther之间重新选举得出
[*]DR和BDR是接口级别概念,每个MA网段的DR和BDR是单独选举的
[*]BDR并不是必需的,可以使用ip ospf priority 0将除了DR以外的接口置为0。这个在FR中很重要,只将HUB节点作为DR,没有BDR。
[*]如果一个网段中,没有DR和BDR,所有都为DROther,2-way state,不会有任何邻接关系,也没有任何LSA传递。
只要一个接口开启了OSPF进程,该接口会立即监听224.0.0.5,仅当该节点成为DR或BDR时,该接口才会同时监听224.0.0.5和224.0.0.6。所有路由器发送给DR和BDR的报文的目的地址都是.6,DR发给其他路由器的是.5。

OSPF路由器类型ABR 连接骨干区域和非骨干区域ASBR 连接其他路由协议AS
LSA类型

LSA类型1:Router LSA

[*]传递范围: 在该区域内泛洪,不穿越ABR
[*]通告者: 区域内的每个路由器将发送一条Router LSA,用Router ID标识
[*]包含内容: 纯拓扑信息,包括宣告进该区域的所有直连链路的前缀、掩码和网络类型、度量值
[*]Link-ID: 通告该LSA的RID
[*]ADV Router: 通告该LSA的RID
LSA类型2:Network LSA

[*]传播范围: 在该区域内泛洪,不穿越ABR
[*]通告者: DR
[*]包含内容: 纯拓扑信息,该MA网段所连接的Router的RID、该MA网段的掩码
[*]Link-ID: DR接口的IP地址
[*]ADV Router: DR的RID
LSA类型3:Summary LSA
用来传递域间路由的这里的Summary只是一个名字,默认是不做汇总的

[*]传递范围: 除了本区域外的所有区域
[*]通告者: ABR
[*]包含内容: 纯路由信息,一条域间路由对应一条Summary LSA
[*]Link-ID: 3类LSA路由的前缀
[*]ADV Router: ABR的RID,每跨域一个ABR都会自动改写为该ABR的RID
LSA类型4:Summary ASB LSA

[*]传递范围: 除了ASBR所在区域的所有区域
[*]通告者: ABR
[*]包含内容: 拓扑信息,
[*]Link-ID: ASBR RID
[*]ADV Router: ABR RID,每跨域一个ABR都会自动改写为该ABR的RID
LSA类型5:External LSA

[*]传递范围: 整个AS
[*]通告者: ASBR
[*]包含内容: 纯路由信息,一条域外路由对应一条External LSA
[*]Link-ID: 5类LSA路由的前缀
[*]ADV Router: ASBR的RID,不会改变
小特性
O E1和O E2

[*]当外部路由引入是,需强制添加Seed Metric(种子度量值)。
[*]对于OSOF而言,如果将BGP路由重分发进入,默认为1;所有其他外部路由缺省Seed Metric为20。
[*]当我们更加关心内网路径好坏的时候,可以手动指定类型1,逐跳累加cost。
[*](config-router)#redistributed eigrp 90 subnets metric-type 1
汇总
域间汇总:需要在该区域的所有ABR上实施对3类LSA汇总ospf的汇总是在进程内设置的,不是链路的。
(config-router)#area 0 range 202.10.8.0 255.255.252.0该命令之后可以加cost,调整度量值,也可以加not-advertise,不通告该汇总,这样明细和汇总路由都不会有,相当于路由过滤。但是,这种路由过滤的方法并不推荐。正常做法是:(config)#ip prefix-list 10 seq 10 deny 202.10.8.0/23 ge 24 le 24(config)#ip prefix-list 10 permit 0.0.0.0/0 le 32(config-router)#area 1 filter-list prefix 10 in域外汇总:需要再ASBR上对5类LSA汇总(config-router)#summary-address 192.168.8.0 255.255.252.0

OSPF LSDB过载保护
(config-router)#max-lsa maximum-number改变cost
(config-if)#ip ospf cost <1-65535>或者(config-router)#auto-cost reference-bandwidth ref-bw改变cost计算公式中的分子,ref-bw单位是Mbits,默认是100,也就是10^8bps。
OSPF建邻接的条件

[*]相同的hello时间和dead时间
[*]直连接口属于相同的区域
[*]使用相同的认证类型和密钥
[*]相同的末节区域标识
[*]相同的MTU
[*]相同的网络类型
OSPF特殊区域
Stub区域
目的
  过滤4/5类LSA
部署条件

[*]建议只有一个ABR,否则每个ABR都会发送缺省路由,可能导致内网路由器根据自己的情况选择它认为更近的缺省路由,从而产生次优路径。
[*]同区域内的所有路由器全部配置为stub路由器
[*]没有ASBR
[*]不能是区域0
[*]没有虚链路
部署
(config-router)#area 1 stub
在该区域的所有路由器上部署STUB特性,ABR将入区域方向的4/5类LSA同时过来,同时该ABR会主动向区域内部下放一条O IA的0.0.0.0/0的3类缺省路由,Seed Metric为1。
Area 1成为Stub Area,R2将过滤4/5类LSA,同时将发送缺省路由。部署之前
部署之后

假设Area 1还有一个ABR R6,那么R6也下放缺省路由,可能产生次优路由。防止次优路由的方法:在R6上,使用area 1 default-cost修改默认cost,改高一些。Totally Stub区域
目的
过滤3/4/5类LSA部署
在ABR上部署,内网路由器上并不需要加no-summary参数(config-router)#area 1 stub no-summary部署之后


次末节区域
Not-So-Stubby Areas(NSSA)
过滤4/5类路由允许区域内部有ASBR
NSSA中的ASBR将外部路由重分发进来的时候,就是以7类LSA发送的,仅在NSSA内存在。NSSA中的ABR把从内到外的7类LSA转换成5类LSA,一个NSSA只能有一个ABR(RID最大)充当转换器。7类LSA与区域是相关的,在R1上以O N2表示,并转换为O E2的5类LSA发送给Area 0。凡是能发送5类LSA的都是ASBR,因此R1的身份变成了ABR/ASBR,也变成了5类LSA的ADV Router。因此,NSSA内部的ASBR R3并不为外界知道,外界知道的是转换器R1作为ASBR。forward address就是用来告知真正需要转发的是R3而不是R1。NSSA中的ABR默认不会向区域内部下放缺省路由,建议下放。下放方法是:(config-router)#area 2 nssa default-information-roginate O N2 0.0.0.0/0 Seed-Metric = 1

完全次末节区域
过滤3/4/5类LSA主动下放缺省路由 O IA 0.0.0.0/0 Seed-Metric = 1(config-router)#area 2 stub no-summary

加表优先级O > O IA > O E1/E2 == O N1/N2

OSPF不规则区域
网络设计时,不要使用不规则区域。不规则区域的产生,大多是由于项目割接。这里提供的是临时应急方案。远离骨干区域的非骨干区域

单点双向重分发
在没有与Area 0直连的ABR上,使用OSPF双进程,启用单点双向重分发。(config)#router ospf 110(config-router)#redistribute ospf 100 subnets(config)#router ospf 100(config-router)#redistribute ospf 110 subnets
缺点:全部是O E2路由。tunnel
在没有与Area 0直连的ABR上,建立一个Tunnel链路连接到离其最近的Area 0中的ABR路由器上。在这两台ABR上对Tunnel配置IP地址为同一个IP子网段,并且将其宣告进OSPF的Area 0.让tunnel状态为Up的条件有3个:(1)配置了tunnel接口的IP地址;(2)配置了源地址和目的地址;(3)源和目的地址之间要有可达的路由。R1(config)#int tunnel 1R1(config-if)#ip add 31.1.1.1 255.255.255.0R1(config-if)#tunnel source 1.1.1.1R1(config-if)#tunnel destination 3.3.3.3R3(config)#int tunnel 3R3(config-if)#ip add 31.1.1.3 255.255.255.0R3(config-if)#tunnel source 3.3.3.3R3(config-if)#tunnel destination 1.1.1.1这样就建立了逻辑接口tunnel。1.1.1.1和3.3.3.3必须有可达路由,这样tunnel口才能up up。在ospf进程内宣告tunnel接口的IP地址,如果此时源地址和目的地址(分别是1.1.1.1和3.3.3.3)也宣告进了ospf进程,将造成ospf邻接关系翻动现象。因此,只有将1.1.1.1和3.3.3.3做成静态路由,就可以同时解决翻动现象和tunnel up up的问题了。
缺点:配置量大且繁琐。
Virtual-Link在没有与Area 0直连的ABR和离其最近的Area 0中的ABR路由器上部署。不能跨域骨干区域和特殊区域。R1(config-router)#area 2 virtual-link 93.3.3.3
R3(config-router)#area 2 virtual-link 91.1.1.1
Virtual-Link是一根按需链路,DoNotAge LSA,简称DNA,也就是说LSA的老化计数器不会计数。Virtual-Link没有Hello时间和Dead时间被分割的Area 0
OSPF认证
不管是链路级认证还是区域级认证,密钥id和密钥字符串是配置在接口(包括Virtual-Link)上的,因此每个网段内保持一致即可。
链路级认证
明文认证
(config-if)#ip ospf authentication-key cisco(config-if)#ip ospf authentication
密文认证
(config-if)#ip ospf message-digest-key 13 md5 cisco(config-if)#ip ospf authentication message-digest区域级认证
明文认证
(config-if)#ip ospf authentication-key cisco(config-router)#area 0 authentication密文认证
(config-if)#ip ospf message-digest-key 13 md5 cisco(config-router)#area 0 authentication message-digest
针对于虚链路认证如果在R1和R2上做了Area 0的区域级认证,由于虚链路是area 0的一部分,因此虚链路上不做认证,邻接关系是起不来的。因此,还需要在虚链路两端配置密钥,并在R3上开启Area 0的区域级认证

OSPF网络类型

[*]Loopback 只有环回口是Loopback的,其他类型接口都不能改为Loopback无论接口掩码多少,都以/32主机路由通告
[*]Point-To-Point Serial/ISDN BRI/FR point2point SubIf支持组播,没有DR HELLO时间10s
[*]Broadcast Ethernet支持组播,有DR HELLO时间10s
[*]NBMA FR主接口/FR多点子接口不支持组播,有DR HELLO时间30s
[*]Point-To-Multipoint 默认情况不会是这种支持组播,没有DR HELLO时间30s
[*]Point-To-Multipoint Non-Broadcast 默认情况不会是这种 不支持组播,没有DR HELLO时间30s
这些网络类型是高层的概念,与物理接口的类型没有一一对应的关系,也就是说,串口可以是点到点的,也可以是广播的。
修改网络类型(config-if)#ip ospf network &#43; TYPE
NBMA
(config-if)#ip ospf network non-broadcast
(config-router)#neighbor &#43; IP地址这里指neighbor只需要单向指就可以了,不需要双向。应用场景:
在帧中继环境中,由于Hub接单和Spoke节点物理相聚很远,一般在Hub上单向指S1/S2/S3就可以了。NUMA中,Hello时间为30s
Point-To-Multipoint
(config-if)#ip ospf network point-to-multipoint
支持组播,有DR自动生成关于直连邻居接口的/32主机路由
Point-To-Multipoint Non-broadcast
(config-if)#ip ospf network point-to-multipoint non-broadcast
不支持组播,无DR自动生成关于直连邻居接口的/32主机路由
在sh ip ospf interface中看不到non-broadcast,只有在sh run中可以看到

OSPF在帧中继中的部署

在帧中继环境中,应用OSPF会比其他环境复杂很多。帧中继概念回顾
星型拓扑PVCDLCI 相当于MAC地址LMI 本地管理接口有三类:ANSI/CISCO/Q933a帧中继映射 本地DLCI与对端IP地址有两种方式:自动映射 Inverse-ARP(目的IP地址为0.0.0.0,本地DLCI )自动开启关闭命令:(config-if)#no frame-relay inverse-arp(config-if)#no arp frame-ralay手工映射只能发送单播,不能发送组播和广播,但是可以发送伪广播伪广播在DLCI自动映射中是自动开启的,在DLCI手工映射中是手工开启的
帧中继拓扑

R1作为HUB节点,R2和R3作为SPOKE节点,分别从R1建立两条PVC通往R2和R3。配置步骤:1.将R1~R6的serial口上,设置封装类型frame-relay,并打上时钟率(模拟器不需要)(conig-if)#encapsulation frame-relay ietf2.在R4~R6上,配置以太网接口IP地址,运行某个IGP(如EIGRP)3.将R4~R6模拟为帧中继交换机(config)#frame-relay switching4.将R4~R6上的serial口上,在数据链路层上,配置为DCE。不能打时钟率(物理层概念)(config-if)#frame-relay intf-type dce5.定义lmi类型(config-if)#frame-relay lmi-type ansi6.在真实环境中,R1、R2、R3之间距离很远,为了使其在逻辑上在同一网段,因此必须在R4~R6上创建tunnel接口如:R4(config)#interface tunnel 45R4(config-if)#tunnel source 45.1.1.4R4(config-if)#tunnel destination 45.1.1.5
R4(config-if)#frame-relay route 102 interface tunnel 45 500(任意一个DLCI号)
目前,通过帧中继自动映射,R1可以ping通R2和R3。但是,R2和R3之间并不能ping通。原因是:当R2 ping R3时,目的IP地址是123.1.1.3,查路由表发现从serial 1/1发出;serial 1/1是帧中继封装的,因此,必须将DLCI号封装进二层。但是,R2上并没有123.1.1.3和DLCI的映射关系。此时,必须手动指定该映射,命令是:R2(config-if)#frame-relay map ip 123.1.1.3 201 broadcast ietfR3(config-if)#frame-relay map ip 123.1.1.2 301 broadcast ietf
这时,R2和R3可以相互ping通,R2的ping先发给R1,再发给R3。
但是,此时,R1并不能ping通自己。即R1#ping 123.1.1.1是不通的。解决方法是:在R1上手动指定123.1.1.1的映射R1(config-if)#frame-relay map ip 123.1.1.1 102 broadcast ietfping包先从R1发给R2,再从R2发回R1。不仅在帧中继环境中,在PPP或HDLC中,也是这样的。只有在以太网环境中,是在接口上打了个环,就通了。
帧中继环境中的OSPF
假设帧中继环境中,只有自动映射,将所有的手工映射先删除掉。
NBMA网路类型
1.为了建立邻居,需要在Hub节点手工指Neighbor,SPOKE节点不需要回指。R1(config-router)#neighbor 123.1.1.2R1(config-router)#neighbor 123.1.1.3

2.由于轴幅型拓扑,只有HUB节点连接了所有其他节点。默认情况下,选举DR/BDR,可能造成某些节点缺乏某些路由信息。为了保证路由传递没问题,需要手工修改接口的OSPF优先级,保证HUB为DR,spoke节点为DRother。R1(config-if)#ip ospf priority 255R2(config-if)#ip ospf priority 0
R3(config-if)#ip ospf priority 0
此时,R1#ping 2.2.2.2 source 1.1.1.1R1#ping 3.3.3.3 source 1.1.1.1
都是通的,但是R2#ping 3.3.3.3 source 2.2.2.2不通。原因是缺少映射。
3.为了保证spoke节点所连接的下游网段内的PC可以互访,需要在spoke节点彼此指手工FR映射。R2(config-if)#frame-relay map ip 123.1.1.3 201 broadcast ietfR3(config-if)#frame-relay map ip 123.1.1.2 301 broadcast ietf此时,R2#ping 3.3.3.3 source 2.2.2.2就通了。

broadcast网路类型
在R1~R3上,指定广播类型。由于支持组播发送,不需要手工指neighbor(FR Map开启伪广播功能)(config-if)#ip ospf network broadcast
同样,需要手动指定优先级R1(config-if)#ip ospf priority 255R2(config-if)#ip ospf priority 0
R3(config-if)#ip ospf priority 0彼此指手工FR映射。R2(config-if)#frame-relay map ip 123.1.1.3 201 broadcast ietfR3(config-if)#frame-relay map ip 123.1.1.2 301 broadcast ietf
P2MP Non-broadcast网络类型
(config-if)#ip ospf network point-to-multipoint non-broadcast
为了建立邻居,需要在Hub节点手工指Neighbor,SPOKE节点不需要回指。R1(config-router)#neighbor 123.1.1.2R1(config-router)#neighbor 123.1.1.3在这种情况下,因为不选DR/BDR,不需要手工修改接口OSPF优先级不需要手工帧中继映射,因为/32的主机路由
P2MP网络类型
(config-if)#ip ospf network point-to-multipoint
不需要指Neighbor不需要修改OSPF优先级不需要手工映射在帧中继网络环境中,使用P2MP是最理想的。但是,在考试中,一般会考“hub节点为P2MP,spoke节点为P2P”。更改网络类型,然后修改Hello时间,使其一致。此时,R2和R3之间ping不通,但是下游主机是可以ping通的。即:R2#ping 3.3.3.3 不通
R2#ping 3.3.3.3 source 2.2.2.2 通

OSPF高级特性
注入缺省路由
1.R1(config-router)#default-information originateR1(config)#ip route 0.0.0.0 0.0.0.0 INTERFACE
2.R1(config-router)#default-information originate always不管有没有0.0.0.0 0.0.0.0缺省路由,R1都会主动下放缺省路由
被动接口
OSPF的被动接口不能发送、接收任何报文。(config-router)#passive-interfac loopback 0
         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: 3.CCNP闫辉视频笔记OSPF