OSPF使用IP协议号89,EIGRP使用IP协议号88
链路:本地路由器的接口,
1.通过拓扑表构建ospf的拓扑图出来
将图中的拓扑跑ospf,然后根据拓扑数据库将拓扑图还原
记得当时参加培训时,我们的老牛人就是用这个告诉我们OSPF可以依照LSDB构建出网络完整的拓扑。
show ip ospf database
ospf:每台路由器都有相同的拓扑数据库
eigrp:show ip eigrp topology all-links,eigrp不能构建完整的数据库
链路状态:在同一区域内的每台路由器拥有相同的拓扑数据库,能构建出整个区域的完整拓扑结构,去往区域的任何目标都是在自己本地计算完成的
高级距离矢量:邻居间相互通告彼此的路径信息,依赖于传闻进行路由选择
OSPF邻居关系的建立:通过交换hello包。如果hello包里面有相应的信息匹配,则可以成为邻居,不匹配不能成为邻居,邻居关系的状态是two-way。
Hello包的内容 |
是否需要匹配才能成为邻居 |
始发路由器的路由器ID |
否 |
始发路由器接口的区域ID |
是 |
始发路由器接口的地址掩码 |
是 |
始发路由器接口的认证类型和认证信息 |
是 |
始发路由器接口的hello时间间隔 |
是 |
始发路由器接口的路由器无效时间间隔 |
是 |
路由器的优先级 |
否 |
指定路由器和备份指定路由器 |
否 |
标识可选性能的5个标记位 |
是,如stub标记 |
始发路由器的所有有效邻居的路由器ID |
信息交换的不同
ospf交换的是lsa,是链路状态的通告,lsa包括:序列号、链路类型、邻居的rid、网络前缀、stub等信息
eigrp交换的是路由条目
LSA:关于邻居的信息、网络前缀、网络类型<链路的类型>
一、ospf的工作机制:
初始化的工作过程:数据包类型、建立邻居 <邻接表>、信息交换<拓扑表>、路由的算法<SPF>、路由表
路由协议的维护:邻居的状态、检测、链路状态变化的通告和更新
OSPF的网络类型:点到点、广播、NBMA
二、扩展性结构设计:多区域设计架构---区域的类型
三、稳定性与可靠性:路由汇总、虚链路的应用
四、安全:其验证的方式
邻居 明文
区域 密文
虚链路
序列号、确认、重传
数据包的类型:
hello:建立、维护邻居关系
dbd:链路状态数据库的目录、摘要
lsr:链路状态的请求
lsu:链路状态更新,打包了lsa
lsack:对关键的数据包进行确认,包含了lsa的头部
确认:
显式确认——lsu使用显式确认。
隐式确认——DBD、LSR一般使用隐式确认。
EIGRP的数据包类型:hello 查询 更新 应答 确认
ospf邻接关系的建立过程:
1.hello包:10S发送一次,间隔40S
建立邻居的条件:子网掩码、hello计时器、区域ID、验证、stub节点路由器必须要相同,才可以视为邻居
router-id:拓扑数据库或邻居表中对路由器的标识
配置:手工配置>环回口优先>活动物理接口地址最大优先,router-id一旦被选定,无法更改,解决办法:clear ip ospf process
邻接关系建立过程:
down:
init:路由进程启动,开始发送和接收hello
two-way:双向邻居状态,从邻居接收到的hello包中发现了自己的相关信息,即邻居router把本地router自己当成邻居
DBD
exstart:预启动状态,双方在开始交换信息之前,进行master中slave的选举,确定由谁来发起信息交换过程
此时的DBD用于选举、交换DBD信息,router-id大的成master,router-id小的成slave
exchange:交换链路状态数据库的目录,(DBD:包含数据库的摘要)由master先开始发起信息交换的过程,双方相互发送链路状态数据库的摘要信息,由DBD完成
loading:加载,双方经过链路状态数据库的目录对比,发现有些内容是自己所没有的,通过lsr向对方索取具体的内容,对方接收到lsr后,以lsu打包对方所请求的LSA,发送给对方。LSACK用于确认
full:双方经过LSDB的交换,最终LSDB完全相同,此时LSDB进入同步状态,邻接关系才进入到full
ospf也可以在接口下启动:
int s0/1
ip ospf 110 area 1
调试信息: R1 debug ip ospf adj,抓包R1 S0/0
ospf的信息都是组播的:hello dbd lsr lsu lsack 组播地址224.0.0.5
eigrp的信息有组播也有单播,hello、更新、查询 有组播;更新、查询、应答、确认有单播
在广播网络环境下:drother与dr、bdr建立全邻接关系,224.0.0.6 drother之间的邻接关系状态为two-way
DR和BDR的选举在two-way状态下面进行。
DR:
BDR:只监测DR的状态,当DR出现故障down后,bdr成为dr,BDR不能转发数据
先举dr、bdr的作用:减少lsa的泛洪,选举规则:优先级高的优先(优先级从0到255的整数,默认优先级为1),优先级相同,RID高的优先
优先级0表示不参与选举,在选举出dr/bdr之后,将接口的优先级设置为0后会放弃对dr/bdr的选举
在实际工程中间,如果要改变DR/BDR的话,一般不允许清进程,所以修改dr other接口的优先级为0
DR/BDR的选举在two-way状态之后
OSPF交换信息的内容是LSA,包含在LSU中,LSA里面包括邻居、网络类型、网络前缀。其中前两项用来构建拓扑表
由LSA构成LSDB(链路状态数据库),所有路由器维护相同表项
3.路由算法
cost值的计算:10^8/带宽(本地链路开销),去住目的开销,是所经历的每段链路的开销之和
SPF算法:最短路径优先,以自己为根结点 (计算自己到直连邻居的最短路径,计算邻居到下级邻居的cost),计算自己到网络中任何结点的最短路径,构建一棵SPF最短路径树
路由表:根据SPF,将每个节点的网络前缀附加到结点,此时构建出路由表
SPF算法:以本地路由器为根结点,逐级计算去住目标节点的最短路径,最终构建出以本路由器为根节点的去住所有节点的最短路径树(STP),将每个节点相关的网络前缀附加在最短路径树上,即构建出路由表
运行维护过程:
1.邻居状态检测:hello 10S→holdtime 40S
NBMA:hello 30S→holdtime 120S
2.链路状态变化如何通告:→触发更新,LSU
接口状态变化:UP DOWN,地址的变化,接口的网络类型改变
通过LSU发送LSA,对方收到用LSACK回应
LSU判断:根据LSA的序列号判断处理
A.LSA不存在,将LSA放入LSDB,运行SPF算法,计算出最新的路由变化,泛洪给邻居
B.LSA的序列号更新,说明这是新的链路状态变化,更新LSDB,运行SPF算法,反映出路由的变化,然后泛洪,
C.LSA序列号与自己数据库相同,忽略
D.LSA序列号比自己数据库的序列号更小,说明对方还不知道最新的通告,将最新的LSA通告给对方
LSA定期更新与老化
LSA在拓扑数据库的老化时间是一个小时(超时清除),用于删除因为路由器down掉或失效的拓扑数据库,但在稳定的拓扑数据库,因为LSA是触发更新,所以正常情况不发送LSA,有可能得LSA到达才华时间超时,采用定期更新来防止LSA的才华,采用DBD,每30min发送一次。
LSBD的过载机制:
避免LSDB过载 防止router崩溃
OSPF:采用组播包
224.0.0.5
224.0.0.6
OSPF的各种运行方式
模式 |
首选NBMA拓扑 |
子网地址 |
Hello定时器 |
邻接关系 |
RFC/CISCO |
示例 |
广播 |
全互联、部分互联 |
相同 |
10S |
自动发现、选DR/BDR |
cisco |
LAN接口 |
非广播 |
全互联、部分互联 |
相同 |
30S |
手工配置、选DR/BDR |
RFC |
串行接口 |
点到多点 |
部分互联或星型 |
相同 |
30S |
自动发现,不需DR/BDR |
RFC |
无需DR的帧中继OSPF模式,在VC支持组播、广播时使用 |
点到多点非广播 |
部分互联或星型 |
相同 |
30S |
手工配置、不需DR/BDR |
CISCO |
无需DR的帧中继OSPF模式,在VC支持组播、广播时使用 |
点到点 |
部分互联或星型拓扑 使用子接口 |
每个子接口各不相同 |
10S |
自动发现、不需DR/BDR |
CISCO |
包含点到点子接口的串行接口 |
关系:
IP子网,只有点到点模式各子接口的IP子网各不相同,其余均在同一子网
邻居发现:广播、点到点、点到多点为自动发现;非广播、点到多点非广播为手工配置
选DR/BDR:广播、非广播选举DR/BDR,点到多点、点到多点非广播,点到点不需要DR/BDR
OSPF在点到点子接口上使用点到点模式,在多点子接口使用非广播模式
要在多路访问模式下面选举DR/BDR,防止LSA泛洪。广播、非广播多路访问模式下面采用
非广播环境下面不能自动发现邻居,需要手工指定。非广播、点到多点非广播
OSPF的网络类型
点到点:专线
广播:以太网
NBMA:有五种类型
1>、点到点的网络,不需要二层寻址,把二层单播、组播、广播都当成单播,OSPF不需要做特殊设置
2>在以太网,可以认为以太网是全互联,LSA泛洪,解决办法是选举DR/BDR
单播→目标MAC地址,通信对方的MAC地址
广播→255.255.255.255,目标MAC是FFFF.FFFF.FFFF,针对所有用户
组播→三层224.0.0.5/224.0.0.6,网络中的一组用户,二层封装,将组播IP映射成MAC,由0100.5e开头,接着一位为0,后面的23位用IP的23位,构建出224.0.0.5/224.0.0.6。交换机能识别
对于该组播MAC:
A.交换机支持组播,监听组播包,并发现组用户,构建转组播MAC发表
B.交换机不支持组播,交换机不能构建出组播的转发表,而会将组播MAC当成未知单播进行泛洪,所有用户都能接收
NBMA:非广播多路访问
在帧中继网络里面,可以构建全互联,依赖于虚电路,企业中通学采用部分部分互联或HUB—SPOKE结构,中心站点有多条虚电路与每个分支连接
1.单播包:根据路由表以及二层虚电路的映射来决定二层封装的DLCI号,本地dlci与对方的IP地址为一对
2.广播包:三层地址是255.255.255.255,二层也不存在广播,虚电路只存在单播
二层:a.不支持广播,丢弃
b.模拟广播运行,在每条虚链路上复制一份数据包,从每一条虚链路上发送
frame-relay map ip dlci 对方IP broadcast
如果没有指定broadcast参数,不会将模拟广播发往该dlci
3.组播包:网络中一组用户,帧中继不支持组播,把组播当成广播来处理
a.不支持广播,丢弃
b.支持模拟广播,以多个二层framge-relay单播帧在每条虚链路转发来模拟广播运行
OSPF在NBMA环境下:
网络类型 |
标准 |
拓扑 |
是否支持广播 |
Hello包 |
LSA泛洪 |
DR/BDR |
NBMA |
IETF |
全互联 |
不支持 |
30 |
是 |
选举 |
点到多点 |
IETF |
部分互联或星型 |
模拟广播 |
30 |
不 |
不 |
广播 |
CISCO |
全互联 |
支持广播 |
10 |
是 |
选举 |
点到多点非广播 |
CISCO |
部分互联或星型 |
不支持 |
30 |
不 |
不 |
点到点 |
CISCO |
点到点 |
支持 |
10 |
不 |
不 |
ospf在点到点或者广播环境下
网络类型 |
拓扑 |
是否支持广播 |
Hello包 |
LSA泛洪 |
DR/BDR |
点到点 |
点到点 |
支持 |
10 |
不 |
不 |
广播 |
全互联 |
支持 |
10 |
是 |
选举 |
OSPF的NBMA网络环境,IETF定义了两种网络,非广播多路访问和点到多点
NBMA:不支持模拟广播,二层虚电路为全互联
配置:手工指定邻居,(neighbor 192.168.1.1)以单播建立邻居关系
选举DR/BDR来减少泛洪
点到多点:支持模拟广播,二层虚电路为部分互联或星型结构。
配置:不需要做特殊设置,不会存在LSA泛洪,不需要DR/BDR
让三层知道有模拟广播,二层支持模拟广播
CISCO对IETF的补充
广播:全互联拓扑,支持广播,是基于NBMA的广播,选举DR/BDR,减少LSA泛洪
点到多点非广播:部分互联或星型拓扑,不支持广播,用单播建立邻居,不选DR/BDR
点到点:点到点子接口的虚电路连接,点到点的子接口,每个子接口在不同的IP网段
虚链路:指一条通过一个非骨干区域连接到骨干区域的链路
虚链路的作用:通过一个非骨干区域连接到骨干区域;通过一个非骨干区域连接一个分段的骨干区域两边的部分区域。
使用虚链路注意事项:
虚链路必须配置在两台ABR之间;配置了虚链路所经过的区域必须拥有全部的路由选择信息,这样的区域又被称为传送区域;传送区域不能是一个末梢区域
以上内容为本人去年笔记,如有错漏之处,敬请批评指正,谢谢!