基于AS进行分类
AS-自治系统 标准16位二进制 0-65535 其中 1-64511公有 64512-65535 私有
扩展32位二进制
AS之内运行—IGP协议 –内部网关路由协议 -- RIP/OSPF/ISIS/EIGRP
AS之间运行—EGP协议 -外部网关路由协议 -- EGP/BGP
IGP协议的分类:
【1】基于更新时是否携带子网掩码 --- 有类别(不带) 无类别 (携带)
【2】基于工作特点进行分类
- 距离矢量-DV RIP/EIGRP 直接共享路由表 – 直接学习路由条目 更新量小
- 链路状态-LS OSPF/ISIS 共享拓扑信息 -- 本地计算路由条目 更新量大
OSPF:开放式最短路径优先协议 无类别链路状态型路由协议
公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6
触发更新、周期更新(30min);
OSPF为了适应中大型网络,需要进行----结构化部署---区域划分
区域划分的目的---区域内部传递拓扑信息,区域之间传递路由信息。
1,OSPF的数据包类型
hello包---用来周期发现,建立和保活邻居关系。
hello默认以10s为周期来进行周期保活的。--- hello时间
OSPF中进行失效判断的时间为4倍的Hello时间 --- dead time死亡时间
因为OSPF需要收集网络拓扑信息,所以就必须区分和标定不同的路由器。我们给每台路由器设计了一个RID。
1,全网唯一;2,格式统一---必须按照IP地址的格式来进行配置。
这个RID可以手工配置---手工配置仅需满足以上两个要求即可。RID也可以自动生成---1, 如果存在环回接口,则在环回接口中取IP地址最大的为RID。2,如果不存在环回接口, 则需要在所有的物理接口中选择IP地址最大的作为RID。
hello包中会携带RID。
DBD包---数据库描述报文---携带的是路径信息的摘要
LSR包---链路状态请求报文---基于DBD包请求未知的LSA的信息
LSU包---链路状态更新报文---真正携带LSA信息的数据包
LSACK包---链路状态确认报文---确认包
OSPF协议存在30min—次的周期更新。
2,状态机
down状态---启动OSPF,发送hello包之后进入下一个状态
init状态(初始化状态)--- 收到Hello包中有自己本地的RID,则进入下一个状态
Two-way (双向通讯)状态---标志着邻居关系的建立。
(条件匹配)条件匹配成功,则可以进入下一个状态,如果条件匹配失败,则仅保持邻 居关系即可。周期性的发送hello包进行保活即可。
exstart(预启动)状态---使用未携带数据的DBD包进行主从关系选举,为主的优先进入下一个状态
exchange(准交换)状态---使用携带目录信息的DBD来共享数据库目录。
loading (加载)状态---基于对端发送的DBD包和本地数据库进行对比,之后,使用LSR包请求自己未知的LSA信息,对端使用LSU包进行LSA信息的传递。需要使用ACK进行确认。
FULL状态---标志着邻接关系的建立。
3、OSPF的工作过程
启动配置完成后,OSPF向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包。hello包中携带本地的RID以及本地已知的邻居的RID。之后,将收集到的邻居关系记录在一张表中---邻居表。
邻居关系建立完成后,进行条件匹配;失败则停留在邻居关系,仅使用Hello包进行保活。
匹配成功,则开始建立邻接关系。首先先使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包共享数据库目录信息。之后使用LSR/LSU/LSACK来获取本地未知的LSA信息。完成本地数据库的建立---生成数据库表。(LSDB---链路状态数据库)
最后,基于本地链路数据库中的LSA信息,生成有向图,之后使用SPF算法转换成最短路径树,之后,计算到达未知网段的路由信息。将生成的路由信息添加到路由表中。
收敛完成后,依然使用hello包没10S进行周期保活。每30min进行一次周期更新。
结构突变的情况
1,新增网段---触发更新,将变更信息第一时间使用LSU包进行传递,需要ACK确认。
2,断开网段---触发更新,将变更信息第一时间使用LSU包进行传递,需要ACK确认。
3,无法沟通--- dead time
4、OSPF的配置
[r1]ospf 1 router-id 1.1.1.1 启动时,需要定义进程号;进程号仅具有本地唯一性; 建议同时配置全网唯一的router-id;
生成顺序—手工、本地环回接口中最大ip地址数值、本地物理接口中最大数值的ip地址
1,启动OSPF的进程
[r1]ospf 1 router-id 1.1.1.1 ---手工配置RID在启动进程时配置
[r1-ospf-1]
2,创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
3,宣告
[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255---反掩码---由连续的0和1组成,0对应的位不可变,1对应的位可变
[r1]display ospf peer ---查看邻居表
[r1]display ospf peer brief ---查看邻居关系简表
[r1]display ospf lsdb ---查看数据库表
[r1]display ospf lsdb router 2.2.2.2---展开一条LSA信息
OSPF的拓展配置
1,手工认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher123456
2,手工汇总
OSPF中拓扑信息是没有办法汇总的,所以只能是针对区域之间传递的路由信息进行汇总。称为区域汇总。
[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0 ---在ABR设备上进程中需要汇总的区域视图里配置
3,沉默接口
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
4,加快收敛
[r1-GigabitEthernet0/0/0]ospf timer hello 5 ---修改hello时间的方法,hello时间修改,死亡时间将自动按照四倍关系进行匹配。邻居之间,Hello时间和死亡时间必须一致,不一致将导致邻居关系断开
5,缺省路由
[r3-ospf-1]default-route-advertise ---需要保证边界路由器本身存在缺省路由,才能下发缺省。
[r3-ospf-1]default-route-advertise always ---可以强制下发缺省信息
关于OSPF,DBD包的几个知识点:
1、DBD包中携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;
默认华为未开启MTU检测
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable
2、隐性确认—不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD
3、OSPF标记位 I M MS
I 为1本地发出的第一个DBD包
M 为0,表示本地发出的最后一个DBD;
MS 为1代表主,为0代表从;
数据库建立后,本地基于SPF选路规则,计算到达未知网段最短路径加载于路由表中;
字母的解释
Cisco
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
O 同一区域内,本地通过拓扑计算所得
O IA 域间路由,ABR通过其他区域的拓扑计算所得路由,然后共享到另一个区域;本地区域另一区域
O E1/2 域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议
ON1/2 NSSA域外路由 其他协议或其他进程产生后,通过ASBR重发布进入到OSPF协议,同时学习到这条路由的设备处于ospf的一种NSSA的特殊区域中
<r1>display ospf routing 华为查看
管理距离(华为为优先级)
Cisco设备定义管理距离为110 在华为设备上优先级为10
度量(cost)
开销值 参考带宽/接口带宽 华为设备,环回接口不计算为一段路径;默认的参考带宽为1000M;
优选cost值之和最小路径;
OSPF协议邻居成为邻接关系的条件
在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;---在每一个MA网络中均需要进行一次选举;
选举规则:
1、优先级数值大优,默认为1; 若为0为放弃选举;
2、优先级一致,比较参选接口所有设备的router-id,数值大优;
[r1-GigabitEthernet0/0/1]ospf dr-priority 2
修改参选接口的优先级
切记:DR选举非抢占 ,选举时间为40S(和死亡时间一致),故在修改优先级后,必须重启参选设备ospf进程来重新选举
<r1>reset ospf process
OSPF的收敛被称为LSA洪泛,也被称为LSDB同步;
OSPF接口网络类型
OSPF协议在不同网路类型的接口下,其不同的工作方式
接口网络类型 OSPF接口网络类型(ospf工作方式)
LoopBack 0. Cisco – LoopBack 没有hello包 以32位主机路由发送
华为—显示为p2p类型 实际为LoopBack工作方式
点到点
(串线HDLC/PPP/GRE) p2p. hello time10s 自动建邻 不选DR/BDR
BMA
以太网 Broadcast hello time 10s 自动建邻 选DR/BDR
NBMA
帧中继 nbma hello time 30s 手工建立邻居 选DR/BDR
MGRE p2p. hello time10s 自动建邻 不选DR/BDR –在一个网段中只
能存在一个邻居;华为设备在一个MGRE网段,接口为点到点工
作方式时,仅和最先收到hello的设备建立邻居关系;
Cisco在这种情况将出现邻居的翻滚;
注:在MGRE环境中,接口默认的ospf工作方式为点到点,这种方式无法实现该NBMA网段的邻居全连;故只能去修改接口的工作方式:
修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;
【1】同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;
【2】若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置
或者将所有接口的工作方式修改为点到多点工作方式;
Ospf的点到多点工作方式:只能手工配置,适用于部分网状结构拓扑;
Hello time30s,不选DR/BDR,自动建立邻居关系;
OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不能进行区域间路由的共享
1、远离了骨干的非骨干区域
2、不连续骨干
解决方案:
1)在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
缺点:
1、周期更新、保活,触发更新对中间穿越区域产生资源占用
2、选路不佳 -- ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;
Tunnel区域应该宣告在同一个区域
2)虚链路 --- 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;
使得非法ABR可以进行区域间路由的共享;
因为并没有增添新的路径,故不存在选路不佳的问题;
[r2-ospf-1]area 1 两台ABR共同所在的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
Cisco为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为;---不可靠
华为在虚链路上依然保持周期的保活、更新 --- 对中间区域的资源占用
3)多进程双向重发布(推荐)
多进程--- 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得路由加载于同一张路由表内;一个接口只能被一个进程来宣告;
双向重发布,ASBR(自治系统边界路由器、协议边界路由器),将不同进程或不同协议产生的路由进行双向共享;
[r2]ospf 1
[r2-ospf-1]import-route ospf 2
[r2-ospf-1]q
[r2]ospf 2
[r2-ospf-2]import-route ospf 1
OSPF的各种LSA --- 数据库表
<r1>display ospf lsdb
<r1>display ospf lsdb router 1.1.1.1
类别名 link-id(在目录中的编号)
所有类别的LSA,均携带以下信息
Type : Router 类别名 此处为1类
Ls id : 1.1.1.1 link-id 在目录中的编号
Adv rtr : 1.1.1.1 通告者 --- 该LSA的更新源设备的RID
Ls age : 1359 老化时间 1800s周期刷新为0 触发更新归0 最大3609s
Len : 48
Options : E
seq# : 8000000c 序列号
chksum : 0x818c 校验码
OSPF的LSA是1800会更新一次更新一次序列号会加一
LSA的新旧比较
1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条
什么情况下LSA会更新:
1、1800到期会周期更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)
类别名 | 传播范围 | 通告者 | 携带的信息 | link-id | 通告者 |
1类LSA-router | 本区域内 | 本区域内的每台路由器 | 该区域每台设备的直连拓扑 | 通告者的RID | 本区域内的每台路由器 |
2类LSA-Network | 本区域内 | 该网段的DR | 该网段的拓扑 | DR接口的ip地址 | 每个MA网段中的DR |
3类LSA-summary | 整个OSPF域 | ABR | O IA 域间路由 | 域间路由的目标网络号 | ABR,在经过下一台ABR时,修改为新的ABR |
4类LSA-asbr | 除ASBR所在区域外的整个ospf域;ASBR所在区域使用1类标记位置 | ABR | ASBR的位置 | ASBR的RID | ABR,在经过下一台ABR时,修改为新的ABR |
5类LSA-ase | 整个OSPF域 | ASBR | O E 域外路由 | 域外路由的目标网络号 | ASBR 在ospf内部传递时不变 |
7类LSA-nssa | 单个的NSSA区域内 | ASBR | O N 域外路由 | 域外路由的目标网络号 | ASBR |