-
ospf
建立过程
刚学完了
ospf
(
< br>open shortest path first
)、
eigrp
、
bgp
等三大
协议,这也是路由原理所要求会的知识,尤其
ospf
< br>,是我们这门课的重点的重
点,所以在这里也觉得有了一些自己的看法,也分享一
下吧!!!
在理解
之前,我觉得,脑中最好有这些东西,它们就像是
ospf
学习
的一
些主干吧!!
首先有
5
个报文
报文
se
dscription
(
DBD
)数
据描述报文
-state request (LSR)
链路状态请求报文
-state
update
(LSU)
链路状态更新报文
-state
ACK(LSAck)
链路状态确认报文
然后是七个状态
状态
状态
-WAY
状态
T
状态
GE
状态
状态
状态
只有有了这些东西
,
然后
把
5
个报文分别放入相应
的状态里
,
相信你就会有
一个新的理解
了
!!!!
好了先从状态入手吧
!
状态
在这状态下
,
所有的设备刚起动
,
所以相互之间没有交换任何数据
,
所以也称
关闭状态
!
状态
这个状态又称准启动状态
,
这时所有的设备开始交换
hello
报文了
p>
(
有了报
文了注意
,hello
报文就是在这里出现了
,
内容是通告自己是谁
,
谁在这个链路上
),
邻居收到同样也用
hello
报文
回复一个
(
我是谁
,
< br>我有这个链路上
)
这时
,
设备知道
了对方的存在了
,
< br>所以开始进入下一个状态
-WAY
状态
承上启下
,
通过比较
hell
o
报文中
(
是否
routr-id
唯一、
是否有相同的生存
< br>时间和死亡时间等条件
)
所有要求符合了,这时就建立了
邻居关系(补一点,
hello
报文也是区分链路状态和距离矢
量的重要之处)
&&&
如果所属的网络类型是广播类型,这时就要在这里选举
DR/BDR
(靠优先级选,优先级相同时,由
router-
id
来选举),再进入下一状态
T
状态
邻居已建立了(从这里到最后都属于邻接关系的建立了
),开始传送一个
DBD
报文(又出现了一个
报文),开始交换自己的(
LSDB
的一个摘要数据),当彼此
收到了
DBD
报文后就回复一个
LSA
ck
报文(出现
了一个报文)表示我收到了,双方确认后,进入
下一个状态
GE
状态
这时设备之间就开始用这个
< br>DBD
报文描述的内容与自身的
LSDB
(
Link-state database
链路状
态数据库)比较,当发现了
DBD
报文中的
自己没有的内容时,这时便进入了下一个状态
状态
设备由对方的
DBD<
/p>
报文比较出了自己没有的内容,
所以要开始发送
< br>LSR
报文(出现了一个报文)向邻居学习,这时邻居没有的也会向自己发送
p>
LSR
报
文学习,当彼此收到了
LSR
便发送一个
LSAck
报文确认收到,并且再向对方
发送一个
LSU
报文(出现了一个报文)告诉邻居所请求的内容,彼此收到了
LSU
报文后也要发送一个
LSAck
报文确认!!这
时都开始记录了,随之也进
入了下一个状态
状态
设备都学习到了
LSU
报文内容,
p>
这时邻接建立完成!
!
FULL
状态也完成!
在时,其实设备的路由表中是不会有任何学习来的条目的,因为
ospf
是
基于报文来让其它设备学习记录的,(这也是链路状态与距离矢量的区别
吧)
这时如果在设备上
show ip
route
只能看到直连网段,因为
ospf
协议在进行完了上面的七种状态后,还要进行
spf<
/p>
计算,最后再由管理距离决定最后进入路由表中的条目!!
是不是看了上面的过程有点晕,呵呵!毕竟是我
的理解,由于知识及表达
能力上的不足,所以也希望你能多看山山几遍!希望对你有些帮
助吧!!
状态
:
刚刚开启
ospf,
还没有收到任何数据
,
此时
路由器本
身是可以发送
hello
企图
寻找
ospf
邻居
t
状态
:
这
是在特殊网络条件下才有的状态
,
就是不支持广播
的网络
(
非广播网络
),<
/p>
以太网是没有的
,
因为
< br>ospf
需要使用组播发送
hello,
所以在这种网络环境下
,
必须要指定使用单播来发送<
/p>
hello,
这种
状态叫做
attempt
状态
状态
:
一方
收到了另一方的
hello.
在这个
h
ello
包中还看不到自
己是对方的邻居
,
这种状态叫做
init
状态
.
-way
状态
:
双方的
hello
已经交换完成
,
建立了邻居关系
(
注意区
别于邻接关系
),dr,bdr
选举成功
,
若两端都是
drother
路由器则会一直
停留在这个状态
t
状态
:
交换
LSA
之前
,
两端路由器会选择一个主从关系
,
确
定由谁来先发起数据
(DBD,LSR
等
),router-id
较大者成为主路由器
,
先
发送
,
选举主从关系的状态叫做
exstart
状态
ge
状态
:
交换
DBD
的过程
,
DBD
相当于一个路由器自己的
链路状态数据库的目录
,
对方收到
DBD
根据
目录来索要自己需要的信
息从而发送
lsr
g
状态
:
邻居收到了对方发来的
LSR,
回复对
方索要的信息
LSU,
这是一个学习的过程
,
叫做
loading
状态
状态
:
完全邻接状态
,
数据库已经同步
,
网络收敛完成
,
就是最
后达到的正常的状态
这就是整个
osp
f
建立的过程
,
若有某处不解请明示<
/p>
,
详尽解答
!
邻居停滞于
Attempt
状态
只有在
NBMA
中才会出现
ATTEMPT
状态,
p>
ATTEMPT
状态是路由器在
NBMA<
/p>
模式中必须
经过的一个普通状态。
p>
如果路由器如果一直停滞于
ATTEMPT
状态,则表明路由器发送了
Hello
分组给一个邻居,
但是没有收到回应。
这个问题仅仅在定义了
neighbor
语句的
NBMA
p>
网络中才会出现。
①
Neighbor
指向了错误的邻居
②在
NBMA
中单播连接中断。例如:
ACL
阻止了单播
邻居停滞于
INIT
状
态
<
/p>
路由器收到第一个分组将使路由器进入正常的
INIT
状态。
当一个路由器从邻居收到一个
OSPF Hello
分组的时候,它在
Hello
分组中包含进邻居
的路由器
ID
并发送这个
Hello
分组。
如果它
不包含邻居的路由器
ID
,那么邻居将停滞于
< br>INIT
状态。
①
验证只在某一边启用。
②
ACL
在
某一边阻止了
Hello
分组。
3
.
OSP
F
邻居停滞于
2-WAY
状态
正常情况下,在
M
A
网络等广播介质中,
Drother
之间的邻居状态是
2-WAY
状态,
D
rother
与
DR
和
BDR
之间形成
FULL
状态
。
停滞于
2-WAY
状态的原因:路由器上都配置了优先级
0,DRother
与
DR/BDR
关系都为
full ,DRother
与
DRother
之间全部都是
2-way
邻居停滞于
EXSTART /
EXCHANGE
状态
在
EXSTART / EXCHANGE
状态阶段:
路由器选择一个主设备、一个从设
备、一个初始序列号。(
EXSTART
状态)
整个数据库交换。(
EXCHANGE
状态)
停滞于
EXSTART
/ EXCHANGE
状态的原因:
①不匹配的接口
MTU
。(邻居关系
还没有建立好时)重传
25
次后
DOW
N
掉后,等待一
分钟,然后再次建立邻居关系
< br>
结论:
1
.如果邻居建不起来(
2-way
状态之前)
网络类型为
NBMA
,邻居表显示一边是
ATTEMPT
状态,一边是
p>
INIT
状态;
网络类型为
point-to-
multipoint NBMA
,
邻居表显示一边是
DOWN
状态;
一边
是
INIT
状态。
网络类型为
Broadcast /
P2MP / P2P /
,邻居表显示一边为空,一边是
IN
IT
状态。
2
.对于
MA
网络,如果路由器优先
级都设为
0
,则会停滞于
2-way
状态,因为这个状态下
需要选举
DR
/ BDR
。
3
.
如果<
/p>
MTU
不匹配,会卡在
Exstart<
/p>
状态;这个字段是携带在
DBD
中的。<
/p>
4.
网络类型为
NBMA / P2MP NBMA
,
所有的包只能通过单播发送(
Neighbor
命令)
.
5
.如果网络类型是
point -
to - point
,则所有的包通过组播发送。
224.0.0.5
6
.如果网络类型是
Broadcast / P2MP
,则发包既有组播,又有单播。
EXCHANGE
状态之前的包是用组播发送的。
EXCHANGE
状态之后的包是用单播发送的。(带
LSA
摘要信息的
DBD
包)
224.0.0.5:DR/BDR
与
Drother
通讯
,
同时
BDR
p>
监听此地址
224.0.0.6:DRo
ther
找
DR
时用的地址
.
7
.
p>
Attempt
状态只会出现在
NBMA<
/p>
网络中,如果路由器发了
Hello
包而
收不到回复,则
会置于
Attempt
状态。
-
-
-
-
-
-
-
-
-
上一篇:细胞分化与基因表达调控
下一篇:TF卡class级别真正定义