RIP(路由信息协议)
路由器通过周期性发送消息数据包来传递路由信息,支持路由认证,路由汇总
距离矢量型,使用贝尔曼福特算法
主要适用于小型网络
基于UDP发送,端口号520,周期性发送。
计时器:更新update 30s
无效 invalid 180s
刷新 flush 240s
抑制 holddown 180s
出现路由环路现象:
1.跳数会无限增大
2.数据会在环路循环直到跳数减为0
防环:1.水平分割:当路由从一个接口进,就不能从这个接口出。
2.毒性逆转:从一个接口学习的路由会发送回该接口,但是已经被毒化,跳数设置为16跳,不可达。
3.触发更新:一旦检测到路由崩溃,立即广播路由刷新报文,而不等到下一刷新周期。
4.抑制计时器:防止路由表频繁翻动,增加了网络的稳定性
5.最大跳数:定义最大跳数(最大为15跳),当跳数为16跳时,目标为不可达。
rip数据包: update
request
reply
RIP更新规则:1. 如果没有则学习
2. 如果有-判断是否同源
1. 如果同源无条件学习
2. 如果不同源--判断开销
1. 开销比现有小 学习
2. 开销比现有大 忽略
3. 开销相同 负载均衡
OSPF
距离矢量型 传递信息沿途路由器都会更改计算 内容携带是矢量信息(路由表) 分布式计算
链路状态型 传递信息沿途不会被更改 内容携带的是链路状态信息(拓扑信息) 集中式计算
OSPF的传递拓扑信息(LSA)的前提是路由器之间需要建立邻居关系
OSPF的运算过程:
1. OSPF建立邻居
2. OSPF洪范LSA
3. LSDB同步
4. 运行SPF算法
1. 第一步以自己为根计算到达其他路由器节点的最短路径树----计算树干
2. 第二步计算路由器节点上的网段信息----计算树叶
Router-ID (全网唯一性)
自动选举 ,有回环先选回环,多回环选大的,没回环选物理接口,多接口选大的
DR/BDR 指定路由器/备份的指定路由器
解决OSPF在多路网络中邻居数量过多以及信息重复传递问题
选举DR/BDR 1.先看接口优先级(0-255 默认是1)大的优先 0表示无选举权
2.如果优先级一致,router-ID大的优先
配置命令:接口-- ospf dr-priority xxx
不能抢占,如果要抢占需要重启OSPF进程 --- rest ospf process
Drother 224.0.0.6 发 收224.0.0.5
DR/BDR 224.0.0.6 发 收224.0.0.5
OSPF邻居状态
1.down
路由器刚刚启动OSPF进程,还没有从任何路由器收到任何数据包,Hello包也没有收到,在此进程,可以向外发送Hello包,以试图发现邻居。
2.init
只是OSPF路由器一方收到了另一方的Hello,但并没有双方都交换Hello,也就是对方的Hello中还没有将自己列为邻居。
3.two-way 邻居关系--邻居表--dis ospf peer(brief) 用到的包hello 、 DBD包(空)
双方都已经交换了Hello信息,并且从Hello中看到对方已经将自己列为邻居,此状态,就表示OSPF邻居关系已经建立,并且如果是需要选举DR和BDR的话,也已经选举出来,但OSPF邻居之间并不一定就会交换LSA,如果不需要交换LSA,则永远停留在此状态,如果需要形成邻接并互相交换LSA,则状态继续往下进行。(比如Drother与Drother之间将永远停留在Two-way状态,因为Drother与Drother之间不需要交换LSA。)
4.exstart 邻接关系--LSDB--dis ospf lsdb 用到的包DBD、 LSR、 LSU 、 LSACK
因为在OSPF邻居之间交换完整的LSA之前,会先发送Database Description Packets (DBD),Link-state Request (LSR)等数据包,邻居之间是谁先发,谁后发,需要确定顺序,在Exstart状态,就是确定邻居之间的主从关系(Master—Slave关系),Router-ID数字大的为主路由器,另一端为从路由器,由主路由器先向从路由器发送信息。在选举DR与BDR的网络环境中,并不一定DR就是主路由器,BDR就是从路由器,因为DR和BDR可以通过调整接口优先级来控制,所以DR也许是因为优先级比BDR高,而Router-ID并不比BDR高。
5.exchange
就是交换Database Description Packets (DBD)的过程,DBD只是LSA的简单描述,只包含LSA的一些头部信息,收到DBD的路由器会和自己的链路状态数据库作对比,确定需要哪些LSA的完整信息,就会发送LSR请求给邻居。
6.loading
邻居根据收到的LSR(Link-State Request),向对方回复Link-state update(LSU)。
7.full
等到OSPF都收到了邻居回复的所有Link-state update(LSU),那么此时的数据库状态就变成了收敛状态,此状态就是Full状态,但此时只是数据库已经同步,但路由表却还在计算当中。
OSPF包
1.hello
Hello包是用来建立和维护OSPF邻居的,要交换LSA,必须先通过Hello包建立OSPF邻居。
2.DBD
邻居建立之后,并不会立刻就将自己链路状态数据库中所有的LSA全部发给邻居,而是将LSA的基本描述信息发给邻居,这就是Database Description Packets (DBD),是LSA的目录信息,相当于书的目录,邻居在看完DBD之后,就能知道哪些LSA是需要邻居发送给自己的。
3.LSR
邻居在看完发来的LSA描述信息(DBD)之后,就知道哪些LSA是需要邻居发送给自己的,自己就会向邻居发送LSA请求(LSR),告诉邻居自己需要哪些LSA。
4.LSU
当邻居收到其它路由器发来的LSA请求(LSR)之后,就知道对方需要哪些LSA,然后根据LSR,将完整的LSA内容全部发给邻居,以供计算路由表。
5.LSACK
BR 骨干路由器
ABR ( 骨干区与普通区)边界路由器
IR 区域内路由器
ASBR 自治区边界路由器
OSPF开销
Cost=10^8/接口宽带 开销是路径叠加值
修改开销 :接口下 --ospf cost