十、HCIP-OSPF-报文
动态路由
1.动态路由协议通过路由信息的交换生成并维护转发引擎所需的路由表。当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径
2.在动态路由中,管理员不再需要与静态路由一样,手工对路由器上的路由表进行维护,而是在每台路由器上运行一个路由协议。这个路由协议会根据路由器上的接口的配置(如IP地址的配置)及所连接的链路的状态,生成路由表中的路由表项。
动态路由协议的更新方式:1.周期更新2.触发更新
动态路由协议的种类:1.距离矢量2.链路状态
距离矢量路由协议:
采用距离矢量(Distance-Vector,DV)算法,是相邻的路由器之间互相交换整个路由表,并进行矢量的叠加,最后学习到整个路由表。
距离矢量算法具有以下特点:
1.路由器之间周期性的交换路由表
2.交换的是整张路由表的内容
3.水平分割技术
距离矢量路由协议的缺陷:
(1)metric的可信度。因为距离仅仅表示的是跳数,对路由器之间链路的带宽,延迟等无考虑。这会导致数据包的传送会走在一个看起来跳数小但实际带宽和延时大的链路上。
(2)交换路由信息的方式,即路由器交换信息是通过定期广播整个路由表所能到达的适用网络号码。但在稍大一点的网络中,路由器之间交换的路由表会很大,而且很难维护,导致收敛很缓慢。
距离矢量路由协议有rip、BGP等。
链路状态路由协议:
采用链路状态(Link State LS)算法。
链路状态是一个层次式的,执行该算法的路由器不是简单的从相邻的路由器学习路由,而是把路由器分成区域。收集区域内所有路由器的链路状态信息,根据链路状态信息生成网络拓扑结构,每一个路由器再根据拓扑计算出路由。
链路状态协议有OSPF、IS-IS等。
内网网关路由协议--IGP(用在局域网)
典型代表:RIP、EIGRP、OSPF、IS-IS
外部网关路由协议--egp 典型代表:BGP(用在广域网)
ospf基础1
链路状态路由ospf
1、路由信息传递与路由计算分离
2、基于spf算法
3、以累计链路开销作为选路参考值
router id:用于在自治系统中唯一标识一台运行OSPF的路由器,每台运行ospf的路由器都有一个router id。
1、建议手动配置ospf的router-id(可以不是接口的IP地址)
ospf 1 router-id 1.1.1.1
2、如果没有手动配置,那么会使用环回接口IP地址最大的作为router-id
3、如果路由器没有环回接口,那么会使用物理接口IP地址最大得作为router-id
实际情况:
1、建议手动配置
2、如果没有手动配置,会使用路由器全局router-id作为ospf的router-id(display router id)
3、路由器第一个UP的接口将会作为全局router-id
发现并建立邻居-Hello报文
hello包是组播更新
1.邻居发现:自动发现邻居路由器
2.邻居建立:完成Hello报文中的参数协商,建立邻居关系
3.邻居保持:通过keepalive机制,监测邻居运行状态。
dd:lsa的摘要信息
lsr:请求没有的路由条目
lsu:发送没有的路由条目
lsack:确认收到报文
ospf协议号89
ttl生存时间,路由器每转发一次减一,三层防环
ospf报文:
ospf通用头部:
version 2 ospf版本信息(版本2 版本3) message type: ospf报文类型 1 2 3 4 5 packet length: ospf报文长度(头部+具体报文) source ospf router:发出该报文的路由器router-id area id 区域ID 骨干区域和非骨干区域之分 auth type 认证类型 auth data 认证数据(密钥)
hello包:
network mask 发出该报文接口的子网掩码
hello interval hello时间
option 特殊区域标记
E=1说明是普通区域,可以是骨干区域,也可以是非骨干区域
E=0 N=0 说明这是stub区域
E=0 N=1 说明这是NSSA区域
router PRI 路由器接口的DR优先级
router dead interval 邻居失效时间,一般是hello时间的4倍
DR 选举出DR是谁
BDR 选举出BDR是谁
active Neighbor 激活的邻居route-id,用来标识存在的邻居信息
DD报文:
interface MTU 发出该报文接口的MTU值,默认为0 (华为在实现ospf时,忽略了MTU的比较,可以手动开启监测)
option 特殊区域标记
db descripter 数据库描述信息
I 初始DD报文,用来选举主从关系
M 用来标识是否还有后续报文,如果为0,代表这是最后一个摘要信息,如果为1,代表后续还有摘要信息
MS 代表主从置位,如果为1:代表是master 如果是0,代表是slave
DD seq 序列号:用来做隐式确认
LSA lsa的摘要信息
LSR报文:
链路状态信息请求报文(携带LSA的三要素)
LSU报文:
携带真正的LSA
LSACK:
确认报文(使用LSA摘要信息做确认)
OSPF邻居建立过程概述: 1、两台路由器宣告会发送Hello报文。 2、2台路由器收到了对方发来的Hello报文后,会将对方的router-id放到自己的Hello包,作为active neighbor,发出。此时。此时的邻居状态为init,也叫1way。 3、2台路由器再次收到对方发来的携带了active neighor为自己的Hello包以后,建立邻居,此时为2way。在init到2way这个阶段,OSPF要判断是否和邻居建立邻接关系。也决定着路由器是否要发送DD报文给邻居。 4、2台路由器分别发送DD报文给,init=1 m=1 ms=1 开始选举主从,两台路由器都认为自己是主,此时为exstart。 5、比较route-id后,从路由器开始发送DD-LSA摘要信息,init=0 m=0 ms=0其中M为取决于后续是否还有摘要信息。此时从路由器为exchange,主路由器依然是exstart 6、主路由器收到DD报文摘要后,发送LSR。之后发送DD摘要给从路由器,init=0 m=0 ms=1,M取值取决于后续是否还有摘要信息。此时从路由器为loading,主路由器为exchange。 7、从路由器收到DD摘要后,发送LSR,之后发送DD报文给主路由器,这个DD报文没有摘要,init=0 m=0 ms=0为了告知主路由器摘要已经交换完毕。此时主路由器为loading。 8、路由器之间更新LSU后,回复LSACK,后置为FULL DD报文的作用 a、选举主从 b、传递摘要信息 c、摘要传递完毕,将对方位置loading
ospf隐式确认
两台路由器发送DD报文,比较router-id后,选出从路由器后,其中主路由器的seq是129,那么从路由器的seq会变得比主路由器大。
ospfMTU
正常情况下,ospf建立邻居关系是需要两端MTU值一致,但是华为对ospf实现邻居关系建立,MTU检测是默认忽略的
如果要检测需要两端都开启检测ospf mtu-enable
一条DD报文能装多少摘要信息,整个ospf的报文是1472,加上IP报文长度20,总共是1492,一条摘要是20字节。
MA网络问题
n *(n-1)/2个临接关系,管理复杂
重复LSA泛洪,造成资源浪费
DR、BDR
降低ospf协议流量
减少邻接关系
选举DR、BDR,1.先比较优先级,可以手动修改,优先级越大越优先 2.比较route-id,越大越优先。