CCNA-第八篇-OSPF
OSPF,最常用的路由协议,他来了他来了
OSPF呢怎么说呢
是一个比较重要而且比较基础的点,出到去外面要是说不会OSPF,那还算啥网络工程师
但是呢,他也不是那么的完全重要.因为很多小地方压根就用不到.但是列你不能不会呀
到了OSPF呢,配置就会逐渐的多那么一点点,就那么一点点,比如啥区域啊,MD5密码
不扯皮了,开干
OSPF
Open shortest path first 开放式最短路径优先协议
ospf呢是公有化协议,不像eigrp是思科私有化的,在任何设备上都可以使用,只要他支持首先说说更新机制这个问题
EIGRP:触发更新,只有当路由表变动的时候才会触发弥漫更新(DUAL)
OSPF;周期更新+触发更新 周期更新是每30分钟一次
所以OSPF比EIGRP慢,但是这并不代表OSPF就不比EIGRP好,
当然路由协议没有好坏之分,只有不同的网络环境.
但是启动EIGRP的条件很苛刻,只有全思科的网络环境下才可以.
这个条件在大中国,CHINA,比较难,除非是外企.
但是OSPF是公有化的,任何设备只要支持都可以使用链路状态会对以下信息进行跟踪
1.邻居信息
2.本区域里的所有路由器
3.到达目标网络的的最佳路径(发送给路由表)
Area(区域)
OSPF中对比EIGRP
多了一个区域(Area)
当一个大型网络中,有些地方是不需要接收到全网路由的
比如说,我出口没必要拿到核心的全部路由表吧
所以就有区域的概念,区域是用来划分地方的
比如这个区域干嘛的,那个区域干嘛的.
作用是减少路由表的大小.
但是有一个要求,两条线之间的左右必须处于同一个区域OSPF中有两种区域 一个呢叫骨干区域 一个呢叫常规区域 但是骨干区域只有一个 但是这个是一个大类 所有的骨干区域成为Area0 例子如下说白了就是核心区域使用区域0
OSPF一样也是三张表
路由表,拓扑表,邻居表
在OSPF中的拓扑表也叫链路状态数据库(LSDB)
上操作
网络环境如图,从左到右为R1-R4启动OSPF的几个元素
1,AS启动,启动一个OSPF的进程,编号有效是1-65535,这个没有要求,互联设备之间的进程编号是允许不一样的
2.宣告网段+掩码+区域 //由于这里是初级,所以这一阶段只会讲Area0区域
宣告有两个作用
一,建立邻居关系(宣告直连网段)
二,宣告网段并且发送对方路由表
先来个方便的省事的
这两条命令的作用是一模一样的
只不过,一个是在接口下直接宣告,很方便,而且不容易出错,因为IP和接口已经固定好了
一个是在进程里面宣告网段.同样的宣告,但是要打的东西多一点点.
上面的命令代表着,每个互联的接口同时宣告本接口地址进入OSPF的进程,并且位于区域0(核心区域,同时也叫骨干区域)
不过呢,输入的命令不同,show-run输出的东西也不同
在R1的路由表上已经可以看到已经收到了来自OSPF的其他路由条目.
Router-id
这是个啥呢,这是一个进程标识符
手动加上去的.
如果没有手动加的话
有两个选择条件
一,如果有环回口,则选择最大的环回口
二,如果没有环回口,选择最小的物理口
这个大小指的是什么呢,IP地址,比如最小的就是1.1.1.1
但是,有一点.这个Router-id,可以是不存在的地址
因为他只是一个标识符
但是呢有一个点,在本地网络中凡有启动OSPF的,Router-id不能重复
邻居关系
OSPF也是有hello包滴
每10秒发送一次,40秒得不到回复不会再发
EIGRP呢是5/15,就这里上面OSPF已经比EIGRP慢了一大截
hello包里面包含什么呢?
1.RID
2.hello包
3邻居信息
4.区域
5.拓扑表
6.DR
7.BDR
8.认证密码
9.stub区域
邻居建立的条件有几个呢?
思科官网PPT是有12点,但是我个人感觉挺多废话。
所以总结了以下几点,
1·Route-ID不相同 //自治系统唯一标识符
2.同一个网段也就是基本互通
3.同样的area(区域)
4.同样的发送Hello包/死亡时间,默认值:10/40(S)
5同样的MTU(最大传输单元)
6.同样的认证类型与密码(比如无认证,明文认证,密文认证,邻居需要都一样才可以建立邻居关系)
7.网络类型要一致
8.版本一致,OSPF中有V1.V2.V3。
其中V1是实验室版本,并没有公之于世。V2是IPv4版本,V3是IPv6版本。不可以让V6和V4互通建立邻居,但是V2和V3版本可以同时存在一个路由器/交换机/FW上。
Seceond:OSPF协议号=89,注:端口号与协议号不一样。
自治系统进程编号(AS)号范围:1-65535
在OSPF中,不同的进程号影响不大,但是在EIGRP中和BGP中却影响很大,不同EIGRP进程号无法建立邻居,同样的进程号的BGP为IBGP,不同的进程号的BGP邻居为EBGP。
然后上面的暂时放一放,来讲一个东东,他叫DR/BDR
OSPF中的结构
1.广播结构
2.点对点(P2P)增快速度
路由协议呢,他是一个共享的,比如A-B-C-D是一个环形结构,那就是广播结构
假如1宣告了一个路由条目
那么2收到了,他会发给3,4
3收到了,他会发给2,4
4收到了,他会发给3,4
所以这样就会浪费带宽,这个时候再来个加密解密,就会非常浪费带宽.
这个时候就有了DR/BDR
DR/BDR
DR:指派路由器-皇上
BDR:备份指派路由器-太子
Dhothers-群众
为什么会有太子呢,总有不在的时候吧,万一DR挂了呢?
在这个环境下,其设备收到路由条目,更新只会发给DR和BDR
然后又DR下发给全部设备.这样就只需要一次更新
这个过程叫作组播
组播的地址
224.0.0.5-通用地址,全部人都会监听
224.0.0.6–DR/BDR,只有这两个设备会去监听这个地址
然后drothers的更新的LSA只会发到去224.0.0.6问题来了,这个DR,BDR怎么来的呢?
选举呗
选举的条件是什么呢?
一.接口的OSPF的优先级
这个优先级,越大越好.可以手动修改, 默认值为1
但是在默认情况下,他们都是1,在没修改的情况下,都是1,那就选不出来DR了.
所以到下一步,对比Router-id,也跟优先级一样,越大越好(所以为什么不能一样)
但是上面的都是理论哈!!!
实际上的顺序是
1.比较优先级
2.谁先启动谁就是DR
3.就没有3了,上面都是扯皮的
如果这个时候新接入一个设备,他的优先级比DR大,也没用.不会改变DR
如果DR挂了,那么BDR就会成为DR.
问题来了,这个BDR怎么来的呢?BDR
其实很假单滴
在选举DR的时候,次优的就是BDR,由第一就有第二,身下的就都是Dhothers分清楚DR/BRD是怎么来的了
然后回到那个浪费带宽的问题
他是这样的
当非DR/BDR设备收到路由更新後,它会通过组播发送给DR/BDR.然后再有DR统一下发给OSPF内的所有设备.
Link state Database-链路状态数据库
简称LSDB,他就是OSPF中的拓扑表
先来看个顺序
1.Hello
2.DBD
3.LSR
4.LSU
5.LSACK
过程示意图
1.Hello包,这个不用解释,这是用来建立邻居和维持邻居关系使用的
2.DBD,这个是啥呢,发送镜像的
为啥要发送镜像呢?
举个例子
A-B 都是路由器
假如A有10w条路由,B有9W条路由,其中8W条重复的
总不能更新的时候全部发过去吧,多浪费呀.
所以这个时候A会发送一个镜像.过程称之为DBD
3.LSR,这个呢就是B的选择过程,并且单独发送请求本机没有的,有的就丢弃了.(R其实就是Reqly的意思,请求的意思)
4.LSU.然后这个就是A的回复,他就是实实在在的LSA的更新信息,它的全称是链路状态更新.但是他为什么叫LSU呢,别问,问就是翻译的问题.动词名词,
5.LSACK,B确定收到了,给A一个回复