设为首页收藏本站language 语言切换
查看: 2117|回复: 11
收起左侧

[求助] OSPF数据包求问

[复制链接]
发表于 2022-5-21 19:59:48 | 显示全部楼层 |阅读模式
3鸿鹄币

OSPF hello包在广播型网络中为什么会出现单播包

                               
登录/注册后可看大图

最佳答案

查看完整内容

当路由器开启OSPF后,路由器之间就会相互发送HELLO报文,HELLO报文中包含一些路由器和链路的相关信息,发送HELLO报文的目的是为了形成邻居表,然后,路由器之间就会发送LSA(LINK STATE ADVERTISEMENT,链路状态通告),LSA告诉自己的邻居路由器和自己相连的链路的状态,最后,形成网络的拓扑表,其实这个过程是很复杂的,他们经过发LSA,记录LSA,装发LSA,最后形成LSDB(链路状态数据库,即拓扑表),形成拓扑表之后,在经过SPF ...
发表于 2022-5-21 19:59:49 | 显示全部楼层
当路由器开启OSPF后,路由器之间就会相互发送HELLO报文,HELLO报文中包含一些路由器和链路的相关信息,发送HELLO报文的目的是为了形成邻居表,然后,路由器之间就会发送LSA(LINK STATE ADVERTISEMENT,链路状态通告),LSA告诉自己的邻居路由器和自己相连的链路的状态,最后,形成网络的拓扑表,其实这个过程是很复杂的,他们经过发LSA,记录LSA,装发LSA,最后形成LSDB(链路状态数据库,即拓扑表),形成拓扑表之后,在经过SPF算法,通过计算LSDB,最后形成路由表。
形成路由表后,路由器就可以根据路由表来转发数据包,但是,这只是理想情况,如果之后,网络拓扑发生了变化,或是网络链路出现了问题,OSPF协议还是会经过这三张表来重新计算新的路由,只不过不会这么复杂了,路由器在默认情况下,10S就会发送一次HELLO报文,以检测链路状态,保证链路始终是正常的。
沙发 2022-5-21 19:59:49 回复 收起回复
回复

使用道具 举报

发表于 2022-5-22 11:40:29 | 显示全部楼层
因为只有开启了ospf协议的路由器才能对这个hello进行响应,从一定程度上仅能寻找到开启ospf包的路由器,同时也能减少ospf相关协议包的流量。
板凳 2022-5-22 11:40:29 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2022-5-22 12:41:17 | 显示全部楼层
wjlovezzd 发表于 2022-5-22 11:40
因为只有开启了ospf协议的路由器才能对这个hello进行响应,从一定程度上仅能寻找到开启ospf包的路由器,同 ...

意思是只有第一次响应组播的hello包才会用单播回复hello包吗
地板 2022-5-22 12:41:17 回复 收起回复
回复

使用道具 举报

发表于 2022-5-23 07:45:56 | 显示全部楼层
HELLO包只对运行OSPF协议的路由器进行响应,不对所有的路由器进行发送HELLO 包  
5# 2022-5-23 07:45:56 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2022-5-23 16:43:53 | 显示全部楼层
wjlovezzd 发表于 2022-5-23 07:49
当路由器开启OSPF后,路由器之间就会相互发送HELLO报文,HELLO报文中包含一些路由器和链路的相关信息,发送 ...

非常感谢您如此详细的回答,但是我的疑惑任然没有解开。我通过查找网上资料了解到了ospf在广播型网络中均是通过组播地址224.0.0.5和224.0.6传播hello包,但是从我抓包的结果来看,每次建立邻居最初都会出现一个单播包,这是我提问时没显示出来的图,这是我唯一疑惑的点,能否麻烦您再次赐教
1.png
6# 2022-5-23 16:43:53 回复 收起回复
回复

使用道具 举报

发表于 2022-5-24 08:32:07 | 显示全部楼层
(224.0.0.5代表所有ospf路由器的组;224.0.0.6代表DR,BDR)
这里简单说一下对组播地址的理解:可以把组播地址看成一个微信群号,任何成员(组播源)往微信群(组播IP)里发送消息(组播数据),这个群里的成员(组播接收者)都会接收到此消息。
7# 2022-5-24 08:32:07 回复 收起回复
回复

使用道具 举报

发表于 2022-5-24 08:42:47 | 显示全部楼层
hello包:(组播)
hello包的目的地址是224.0.0.5,他是一个组播地址,这个很好理解,在一开始路由器之间都不知道对方的存在的时候,通过组播的方式去寻找相邻的邻居路由器是最好的选择,因为只有开启了ospf协议的路由器才能对这个hello进行响应,从一定程度上仅能寻找到开启ospf包的路由器,同时也能减少ospf相关协议包的流量。

DD报文:(单播)
DD报文主要功能是进行OSPF的LSDB摘要信息的传递,那么双方在接收到路由器的摘要信息后就会知晓自己缺少的LSA是什么,同时在DD报文的交互中还会进行主从的选举以此来同步双方路由器交换路由摘要的过程,其主要原因就是保证摘要信息交互的有序性,那么这种同步的过程若使用组播来让一台路由器同时与其他路由器进行这种同步机制可能会出现一些问题。

LSR报文(单播)
至于LSR为什么使用单播,这个原因十分的显而易见,因为只有DR与other之间,BDR和otherDR与other之间,BDR和other才建立完整的邻接关系,也就是说DR和BDR与other之间就像建立了一个无环路的图,同样是因为其类似星形的结构,在这样的关系下,没有必要通过组播去请求路由信息,通过单播足够了。使用组播反而浪费带宽。

LSU报文(单播和组播)
因为DR要向DRother同步LSDB,所以它要向224.0.0.5发送LSU来帮助它们将LSDB同步为最新的状态。若某个路由器发送LSR给某个路由器,那么此时LSU又是单播的了。



组播地址的理解:可以把组播地址看成一个微信群号,任何成员(组播源)往微信群(组播IP)里发送消息(组播数据),这个群里的成员(组播接收者)都会接收到此消息。

评分

参与人数 1好评度 +2 收起 理由
rossusheng + 2

查看全部评分

8# 2022-5-24 08:42:47 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2022-5-24 16:53:38 | 显示全部楼层
wjlovezzd 发表于 2022-5-24 08:42
hello包:(组播)
hello包的目的地址是224.0.0.5,他是一个组播地址,这个很好理解,在一开始路由器之间 ...

那么这唯一单播的hello是否可以看做组播接收者对组播源的回复呢?
9# 2022-5-24 16:53:38 回复 收起回复
回复

使用道具 举报

发表于 2022-5-24 20:23:28 | 显示全部楼层
shion_nanami 发表于 2022-5-24 16:53
那么这唯一单播的hello是否可以看做组播接收者对组播源的回复呢?

可以这么理解。

10# 2022-5-24 20:23:28 回复 收起回复
回复

使用道具 举报

 楼主| 发表于 2022-5-25 10:27:21 | 显示全部楼层

非常感谢您耐心的回答
11# 2022-5-25 10:27:21 回复 收起回复
回复

使用道具 举报

发表于 2022-9-30 11:25:10 | 显示全部楼层
围观学习一下
12# 2022-9-30 11:25:10 回复 收起回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-2 15:48 , Processed in 0.141972 second(s), 16 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表