jjzjj

动态路由协议之OSPF基本原理、区域划分及配置

网工学姐 2024-03-13 原文

 

       什么是OSPF?

       OSPF是我们平时使用最多的一种链路状态协议,其实OSPF协议可以视为是为了解决距离矢量协议所出现的一些系列问题而出现的(距离矢量协议RIP协议收敛慢、最大跳数为15跳、易产生环路)

       1、区域划分

       OSPF是可以支持单区域也可以支持多区域的,有一个非常好的功能就是它可以把一个网络划分为各个区域,多区域划分中就包括骨干区域area 0和其它普通区域。要注意的是,在OSPF的多区域网络中,所有的区域之间的通信都需要通过骨干区域。假设没有area 0,不同区域之间是不能够传递信息的,因为骨干区域就是用于汇总每个区域的路由信息然后再发送出去的,各区域只有得到了这些汇总信息才能进行通信。

(骨干区域就好像是军训时候的教官队,他们各自带的班就是一个区域,整个团里面有什么消息都要在教官队之中进行整合,然后再传给每个区域。例如,某个班的某某同学翻墙出去打游戏被发现,然后由教官上报,再进行通报批评)

 

可能有人会问,单个区域简单粗暴为什么要进行区域划分呢?

一是怕骨干区域太大,带给核心路由器太大的压力;二是可以缩小链路状态数据库(LSDB)的规模,每个区域内都有各自的LSDB,再由骨干区域来汇总;三是可以减少或避免某区域内的路由变化对整网带来路由震荡,在网络大的时候非常有用的。

ps:如果你需要以下或更多网工资料,可以私信找我要~

 

       2、路由器类型

       由于OSPF可以进行区域划分,那么处于区域不同地方的路由器也有其各自的功能。区域或自治系统的划分边界并不是某一条链路,而是路由器。

内部路由器:主要是用于收集保存自己区域内的链路信息状态

区域边界路由器:用于连接自治系统内的各个区域

自治边界路由器:用于连接使用OSPF的自治系统和其它自治系统的路由器

     基本原理

      之前已经了解过了链路状态协议的基本工作原理,是通过路由器LSP的泛洪来实现的。当一个自治系统内的路由器都运行的是OSPF协议时,那么相互之间就可以交互信息。

       首先发送的是HELLO报文,用来发现自己的邻居路由器,以及与其建立关系,如果一个路由器在收到的邻居hello报文中看到了自己的Router ID信息,就代表双方之间已经建立了联系。(这个时候就表示人家已经知道的你的存在了,不需要再打招呼了)

      在与邻居路由器建立连接后,两者之间就要进行链路状态数据库(LSDB)的交互同步了。这个时候,路由器是使用DD报文来进行主从路由器的选取以及描述自己的LSDB。

       在最后一个DD报文发送完毕之后,路由器A会将路由器B的状态设为Loading,然后再向邻居B发送另外一种报文LSR,用于询问上一步中DD报文发现的但是路由器B传过来的LSDB信息。路由器收到后,会返回给A一个LSU报文来回答A的问题。

     最后,路由器A再给B发送一个确认信息LSACK,告诉B自己已经接受到了信息。这个时候,A与B之间的状态就变成了完全邻接(full)

 

      OSPF的配置

      对下图进行OSPF分区配置,实现区域之间的通信

 

以R2为例

1、进行IP地址的配置

interface GigabitEthernet0/0/0

ip address 192.168.3.2 255.255.255.0

interface GigabitEthernet0/0/1

ip address 192.168.1.1 255.255.255.0

2、OSPF分区域配置

ospf 1 router-id 2.2.2.2

area 0.0.0.0

network 192.168.1.0 0.0.0.255

area 0.0.0.1

network 192.168.3.0 0.0.0.255

有关动态路由协议之OSPF基本原理、区域划分及配置的更多相关文章

  1. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  2. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  3. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  4. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  5. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  6. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  7. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  8. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  9. 神州数码无线产品(AC+AP)配置 - 2

    注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配

  10. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

随机推荐