EIGRP和OSPF对比
EIGRP: OSPF:
Hello :5s dead 15s hello :10s dead:40s
这俩个hello 和 dead时间都是一样的,都是为了建立邻居关系,保持邻居关系
EIGRP更新是触发更新,有变化了才会更新。而且是增量更新,只会发送额外增加的更新部分
OSPF在EIGRP更新的基础上额外增加了一个周期更新——每隔30min例行更新一次(防止触发更新没有及时的收到)但是这种更新某种程度上没有意义,因为触发更新会有确认机制。
不同于EIGRP的是,OSPF有一个区域的概念,会进行分割区域。原本是想针对不同的区域,做单独的优化处理。
R1——————R2
运行EIGRP
彼此发送给对方路由条目,把自己的路由表发送给对方。对方收到后,放进自己的拓扑表,计算拓扑表,算出最优的放进自己的路由表
R1——————R2
运行OSPF
彼此发送给对方自己的数据库信息,对方收到后,也放到自己的数据库内。之后自己计算数据库,算出最优的,放入自己的路由表。
RIP EIGRP——单纯的更新自己的路由表——保存的是去往每个目的的最佳路径
OSPF——开放式最短路径优先(链路状态路由协议)
OSPF是不更新路由表的
OSPF掌握了全网的路由i信息,整个网络的链路环境。——运行了OSPF的设备,可以了解整个的网络的拓扑情况
OSPF也有三张表
邻居表——邻居路由器信息——show ip ospf neighor
拓扑表LSDB(链路状态数据库)——收到对方发来的更新,再计算,保存主线路以及各种备用线路——show ip ospf database
路由表——到达目标网络的最佳路径——show ip route ospf
OSPF只参考cost值——带宽 | 计算公式:10的八次方/接口带宽(bit)
OSPF计算最优路径算法——SPF(最短路径优先)算法
Area (区域)0为骨干区域,除了区域0之外的其他区域都是常规区域,所有的常规区域必须是和骨干区域直接相连的
————————————————————————————————————————————————
角色:
ABR——区域边界路由器(一台路由器上连接着多个区域)
————————————————————————————————————————————————
Hello包:用于建立邻居关系(组播发送,发送到224.0.0.5)
224.0.0.6组播地址是用于DRothers发送更新给DR和BDR的
DR和BDR使用组播地址224.0.0.5发送更新给其他的DRothers
DR和BDR要监听224.0.0.5(先建立邻居关系)之后监听224.0.0.6————俩个都要监听
hello包包含:RID(router id )——本路由器运行OSPF的进程标识(不能重复),是以IP地址为格式的标识 | 可自动获取,可手动配置(手动配置稳定)
hello和dead时间——10s/40s
我自己的邻居信息
Area ID(区域ID)——我自己的区域号
router priority (路由器优先级)——在OSPF中,默认都是1(涉及到DR和BDR的选举 ——设备接口的角色)
DR和BDR的IP地址(选取DR和BDR的参考条件:1、路由器的优先级 2、RID)
认证密码
末节区域标识位
—————————————————————————————————————————————————
网络类型:
-基于OSPF的网络类型——运行OSPF的设备,宣告的接口网段,设备的接口网段在默认的情况下都是广播类型(原因:现在的接口都是以太网接口)
——广播网络类型
——点对点网络类型(生活中最常用)
——点对多点网络类型
——NBMA(非广播多路访问)网络类型 | 又叫帧中继(已被淘汰)!!!(NBMA网络现实中基本绝种)
—————————————————————————————————————————————————
OSPF为什么要选取DR和BDR?——防止重复更新
R1,R2, R3,R4互为邻居,当1发生变化时,会触发增量更新。将更新的内容传给2,3,4.而2,3,4收到后又会发送更新给彼此的邻居。2收到会发送给3,4。3收到会发送给2,4以此类推。会出现重复更新。所以会导致浪费带宽,消耗设备。
所以OSPF将邻居关系分类,分为邻居关系和邻接关系。是为了不同的关系发送的信息不太一样。
——邻居关系(2-way)——只发送hello消息,不发送LSA(链路状态通告)(OSPF中的路由更新)
——邻接关系(full)——发送hello包,也发送LSA
OSPF中,有三类角色(不是路由器角色,是路由器的接口角色): DR | BDR | Drothers
第一原则(所有书本上没写的原则):在面对RD和BDR选举的时候,谁先起来的OSPF,谁就是DR
DR——老大
BDR——老二——主要用于备份关系
Drothers——其他人物
这三个角色是选举产生——比较优先级(越大越好),优先级默认是1.最大255——ip ospf priority XX(如果优先级是0,代表弃权,甘愿成为小弟)必须要修改,不修改比较不出 ——clear ip ospf process(改完优先级重启一下OSPF)
——比较Router id(越大越好)
Router id可以手动指定也可以自动选取RID,当有环回口时,环回口IP地址最大的当RID,在物理接口中,物理口的IP地址最大的当RID
小弟更新了,只会给DR和BDR发送LSA,再由DR将更新的信息统一的发给其他小弟
DR和DRothers为邻接关系
DRothers和DRothers为邻居关系——————因为邻接关系才发送LSA,邻居是不发送LSA的
BDR和DRothers为邻接关系
DR和BDR在广播网络中属于邻接关系
不同的关系(邻居——邻接,邻接——完全邻接)由不同的关系(DR,BDR,Drothers)来代表。不同的关系由选举(优先级和RID)来决定
————————————————————————————————————————————————————
OSPF的五种更新信息类型
hello信息——邻居关系的维持作用(邻居,邻接)
DBD——database description(数据库描述信息)——将自己的数据库进行摘要,做成缩略图
LSR——link static requst——链路状态请求信息——针对我所需要的发出请求
LSU(动词)——link static updata——更新的就是LSA(名词)——链路状态更新信息
LSACK——link state ackonwledge——链路状态确认信息
————————————————————————————————————————————————————
OSPF更新过程
R1——————R2
首先发送DBD的描述信息,看一下有没有重复的,对比一下
之后请求我没有的LSA——发送LSR
R2收到了R1的请求(LSR),接下来R2就会给R1发送实际的LSA信息,R1实际请求的LSA
当R1收到了R2发来的LSA,R1会给R2发送一个LSACK的确认信息,告诉R2收到了更新。保存到链路状态数据库中,再计算最优路由
————————————————————————————————————————————————————
在OSPF中,与我相连的周围的设备所接收到的设备带宽,接口信息,角色信息所收到的内容都是相同的——每一台路由器都是主人翁,都可以以自己为根。计算出到达
每一个目的的最佳路径
————————————————————————————————————————————————————
OSPF七种状态
Down——初始化状态,OSPF初始化进程
Init——装载状态,发送了hello消息,并且准备接收hello的状态(将对方置于init状态)
2-way——邻居,发送了hello,并且接收对端发送来的hello,而且看到了自己的信息
Exstart——选举主从,Hello包发完了,选举谁先发DBD消息,默认都想自己先发DBD,通过空的DBD(带有自己的序列号和确认号)消息选举,默认只比较RID(谁大谁先发),目的:为了协商使用谁的序列号,谁先发就是用谁的序列号。当发送过去的时候就已经携带了DBD消息
Exchange——交换状态,交换带有LSA描述信息的DBD报文,对比完了LSA目录。我先发送了上面那一步,我就已经进入了这个状态了
Loading——加载状态,发送LSR,LSU,LSACK——当双方链路状态数据库达到了一致的状态,收敛完成,达到
Full——邻接状态
cost值越小越优,带宽越大越优