首页 > 代码库 > OSPF详解
OSPF详解
OSPF绝对无环的原因:SPT生成一张地图,将整张拓扑记录下来
初始化配置
检查是否配置完成,通过检查三张表“路由表”、“邻居表”、”拓扑表”
路由认证
跟前面学习的认证过程有些区别,没有所谓的key chain等信息
链路认证
在接口下开启认证
在R1-R2之间建立一个基本的认证,其实这个也是没办法建立邻居的原因之一
区域认证
在进程下开启认证
在同一个区域里面的密码是共享的,配置起来跟链路认证没啥区别
完整过程
注意:
不同接口的密钥可以不同;
一边开启认证,另一边邻居没开启,则认证失败
OSPF默认路由
跟RIP的默认路由部署非常相似
方法一
效果是在R1和R3都能看到R2下发的默认路由信息
方法二
我们R2的默认路由删除仍然是可以ping通信息的
其实更多的在工程项目中用得更多的是这个方法,因为没必要再多写个默认路由啊
拓展参数
这个地方先记着OE1要比OE2大就对了
主要应用以下这个场景,增加链路储备场景
路由分组
首先有明确,路由分组可以实现流量优化的目的
重新部署新的拓扑表
回顾一些概念
Full状态会互相发送hello包,在某些情况下很是消耗带宽资源,没必要,因此出现优化的地方
DR/BDR选举会在hello包中体现,这个后面再说
观察现象
先将邻居关系清除
总体观察
我们仅仅观察192.168.1.0网段,一共四台路由器,一共建立起4*3/2=6个邻居。就是用到很普通的数学公式n*(n-1)/2
DR选举
DR:Designated Router指定路由器
BDR:Backup DR备用指定路由器
DROther:
1.选择优先级较大<1-255,默认为1>;
2.选择邻居RID较大
DR/BDR特征:
1.不支持抢占;(一般来说角色定下来之后就不会改变了,目的是为了网络稳定,因为选举的过程需要发送大量的hello包通过碰撞进行选举,减少会话数。然而ISIS是支持抢占的,后面在讲)
2.DR/BDR是针对接口的概念,
不同接口角色可能不同.
3.若接口优先级为0,则表示退出选举.
我们可以修改优先级的
就算我们修改优先级了,也不会一步上位,需要将原来的DR取消,此时原来的BDR成为DR,修改后的DROTHER成为BDR,依次迭代上位
DR/BDR地址:
DR/BDR对外发送路由条目,以224.0.0.5(表示DRother接收)发送;
DRother对外发送路由条目,以224.0.0.6(表示DR/BDR接收)发送;
一个路由器在不同的局域网的角色不一定一样的,尽管只有一段(两台路由器)但是他们之间仍然会选举出DR/BDR
通过这些选举我们可以发现
主从选举
实现DBD的可靠更新,通过DD Sequence得值来决定。观察这四个包
实现的机制
主从选举表面只是一种关系选举,实际上是一种可靠更新机制,保证DBD数据库描述信息可靠交互。
M/S角色是否由序号决定?DR/BDR角色决定?还是由RID决定?(确定为RID)
11种LSA
术语说明
LSDB | Link-state Database | 链路状态数据库 | 一张地图 |
LSU | Link-State Update | 链路状态更新 | 地图的某条路径 |
LSA | Link-State Advertisement | 链路状态通告 | 某条路径的具体描述 |
ABR | AREA BOREDER ROUTER | 连接多个区域的路由器 | 连接多个区域,且其中一个区域是骨干区AREA 0的路由器 |
LSU里面有很多LSA,同理LSDB中有很多LSU
LSA Type | Description | ||
1 | Router LSAs | 描述路由器所有的直连信息 | 生成O路由,即所以带O开头的路由信息 Show ip route ospf看到的O开头的,而且他们都是本区域的 |
2 | Network LSAs | 描述DR/BDR的直连信息 | |
3 or 4 | Summary LSAs | 描述区域间相互发送路由的关键生成OIA路由 | 4和5一般是外部信息,所以都会生成一种OE2的路由 |
5 | Autonomous system external LSAs | ||
6 | Multicast OSPF LSA | ||
7 | Defined for not-so-stubby areas | ||
8 | External attributes LSA for Border Gateway Protocol (BGP) | ||
9, 10, 11 | Opaque LSAs |
LSA Type 1: Router LSA
One router LSA (type 1) for every routerin an area
Includes list of directlyattached links
Each link identified by IPprefix assigned to link and link type
所有直连链路的IP网段、开销
Identified by the router ID of the originating router即只能发送向本区域的路由器
我们增加一条以太网链路增加实验覆盖面
Floods within its area only; does not cross ABR
R1和R2都要写的,我就贴一个就行啦,省点力气~~
Type1: 描述点对点广域网环境下的直连拓扑
Type2:描述以太网广播环境下DR的信息
Type3:所有直连IP网段
这些地图信息都是统一的,我们在其他的路由器仍然可以看到
LSA Type 2: Network LSA
这个其实是对type1信息的补充,因为带多了掩码信息,内容相对简单一些,跟type1形成互补关系
One network (type 2) LSA for each transit broadcast or NBMA network in
an areaIncludes list of attached routers on the transit link
Includes subnet mask of link
直连路由器,广播网段
Advertised by the DR of the broadcastnetwork 只能DR发送
Floods within its area only; does notcross ABR 本区域
LSA Type 3: Summary LSA
Type 3 LSAs are used to flood network information to areas outside the originating area (interarea)
Describes network number and mask of link.
OSPF所有路由
Advertised by the ABR of originatingarea. 由ABR发送
Regenerated by subsequent ABRs to flood throughout the autonomoussystem.
By default, routes are not summarized,and type 3 LSA is advertised for every subnet. 区域间路由
把type1,type2中的简单信息,发送到其他区域中去
为了验证效果,需要相应修改一下拓扑图,并在箭头位置抓包
【3.4 5类LSA】External LSA
一般情况下,只会出现123类
事实上是先有Type5 LSA再有Type 4
LSA Type 5: External LSA
External (type 5) LSAs are used to advertise networks from other autonomous systems.
Type 5 LSAs are advertised and owned by the originating ASBR.
外部路由Type5发送的
Type 5 LSAs flood throughout the entire autonomous system.在自治系统内
The advertising router ID (ASBR) is unchanged throughout theautonomous system.
Type 4 LSA is needed to find the ASBR.用于找到ASBR,Type4一般是Type5的附属
By default, routes are not summarized.
区别于Type3通告的是区域间的路由信息
还是在R3和R4之间抓包
看下图
对于E1来说,更优先于E2,认为需要继承,需要cost累加
对于E2来说,外部路由没必要增长
LSA Type 4: Summary LSA
涉及到路由递归的问题,没有Type 4,Type5根本跑不起来的
Summary (type 4) LSAs are used to advertise an ASBR to all other areas in the autonomous system. 用来通告ASBR
They are generated by the ABR of the originating area.
They are regenerated by all subsequent ABRs to flood throughout theautonomous system.
Type 4 LSAs contain the router ID of the ASBR.
OSPF路由类型
默认重分发外部的路由,OSPF都是O E2类型,并且默认cost为20;
E2代表后续外部路由不再累加沿途的cost;
但是同时有多根O E2的情况下,度量值都是20的情况下,还是有路径优劣对比
E1代表后续外部路由累加沿途的cost;
通往统一目的地的OE1 和 OE2路由,O E1要优先于 O E2,即便O E1的cost
劣质于 O E2
OSPF选路机制
最长匹配原则
管理距离 AD
路由类型 O > O IA > O E1 > O E2
度量值 Cost
区域设计
常规区域 | 骨干区域 | 常规区域 | |||
特殊区域 | 脱节区域 | 末节区域 Stub | 完全末节区域 Totally Stub | 非纯末节区域 NSSA | 完全非纯末节区域 Totally NSSA |
路由器类型:骨干路由器(骨干区域)、常规路由器(常规区域)、ABR(边界路由器)、ASBR(位于协议之间)
路由类型:OOIA OE1 OE2 ON1 ON2
区域类型: 骨干区域、常规区域、STUB、NSSA 、脱节区域
LSA类型:LSA1-5、LSA7
实验拓扑
此时,我们可以观察到R5可以获得Area0、Area1、Area2、Area3的路由信息
然而,R6的路由表~~
这个就是所谓的脱节区域的原因
脱节区域
背景:网络发生迁移时,常规区域无法直接挂接到骨干区域,此时没有与骨干区域相连的区域则为脱节区域-无法学习到其他区域的路由信息。(场景:部门合并)
ABR:当区域路由器连接到多个区域的时候,至少要有一个接口放入区域0,此路由器才能算ABR。
解决方案1
非常推荐使用这种解决方案
使用虚拟链路“升华”脱节区域与骨干区域的关系。在进程里面写的
Area +承载区域+virtual-link+对方RID
此时的R6出现了路由信息
解决方案2
使用tunnel技术。这个比较麻烦,我们需要在编辑上,写出隧道的头和尾,加上隧道本身的地址信息,这个主要是使用在IPv6和IPv4之间的转换的,用在这里有些浪费了
首先将原来虚链路删除
观察到R6的地址开销非常大
使用show ip ospf intface tunnel x专门用来查看OSPF下的接口信息
由于有这个GRE的封装才能实现跨越多个路由器的目的,相当于打了一个马甲,是啊”建立”隧道不过如此啊,穿越高山大海~~
末节区域Stub Areas
External LSAs are stopped.
Default route is advertised into stub area by the ABR.
All routers in area 50 must be configured as stub.
有些区域认为,在小区域的中没必要存储全网的路由,完全可以把外部的信息屏蔽,取而代之的是一条默认路由。末节区域、完全末节区域、非纯末节区域、完全非纯末节区域,其实就是为了节省内存,尽最大可能的节省路由表空间
末节区域不接受O E1 E2路由<LSA5>;不接受外部信息
末节区域不能是骨干区域;区域不能有虚链路
ABR会向末节区域下发O IA*的默认路由
实现这个效果,先把原来的tunnel删除,此时的R6就先当作花瓶好了
此时Area2就多了两个角色
而且此时我们还可以ping通
完全末节区域Totally Stubby Areas
这个是思科的首先提出来的,然而由于效果感人,其他厂商纷纷效仿
External LSAs are stopped.
Summary LSAs are stopped.
Routing table is reduced to a minimum.
All routers must be configured as stub.
ABR must be configured as totally stubby.
This is a Cisco proprietary feature.
思科觉得,在末节的基础上不再汇总路由不是更好吗?所以可以在ABR上实现这个效果
Not-So-Stubby Areas非纯末节区域!?
相对于末节区域的外部情况是不能进来的,现在这种特别的情况
NSSA breaks stub area rules.
ASBR (R1) is allowed in NSSA.
Special LSA type 7 defined, sent by ASBR.
ABR (R2) converts LSA type 7 to LSA type 5.
ABR sends default route into NSSA instead of external routes fromother ASBRs.
NSSA is an RFC addendum.
整体思路还是换马甲
外部的OE2进不来,然而外部OE2的还是想要进来,所以就用ON2进来<Type7>进来之后,如果需要出去再把ON2转换成OE2
跟Type5一模一样的
特征:
NSSA不接受外部路由OE1/2<LSA5>,但是会生成O N1/2<LSA 7>;
NSSA默认不下发默认路由,可以手工通过default-information xxx下发;
生成O * N2的默认路由 area 1 nssadefault-information-originate (可选)
完全非纯末节区域
特征:在NSSA的基础上,不接受 O IA路由
总结
末节:不要5类 OE1/E2
完全:不要3类 O IA
非纯:要7类 ON1 / N2
1、 末节区域:不接收外部路由O E2 area 24 stub;
2、 完全末节区域:不接收外部和区域间路由 O IA O E2 area 24stub no-summary(工程环境中最常用的)
3、 非纯末节区域:不接收OE2,能够接收O N2路由 area 24 nssa
4、 完全非纯末节区域:不接收O E2 O IA,能够接收O N2路由,area 24 nssa no-summary
网络类型
这个其实也是一个网络环境的优化点
修改网络拓扑:改成帧中继实验
在OSPF有5种网络模式,广播(全互连)、非广播、点对点(自动建立没有DR/BDR)、点对多点、点对多点非广播。OSPF会自适应的调整相应的网络类型,一般情况下,这些模式也可以是人为控制的,当你需要的话
点对点模式
把R3配置完全
空的!!!!!
由于在点对点环境下,需要手工指定邻居
广播模式
其实这种广播是一种伪广播,在帧中继环境下,其实也是单播,抓包可知R2和R3是不会互相联系的
观察到主备角色相当的混乱
因此相应的需要修改角色优先级
结果
点对多点模式
不选择DR/BDR的话~~修改为点对多点模式
会发现,有邻居,但没有角色信息,验证完毕
后记
认为OSPF实现可靠传输的原因:会回复反馈信息
有没有负载均衡可以通过看cost值啊
OSPF的内容真的好多~~~写了好久,也理解了好久~~
本文出自 “11421505” 博客,转载请与作者联系!
OSPF详解