热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

路由原理_路由原理

篇首语:本文由编程笔记#小编为大家整理,主要介绍了路由原理相关的知识,希望对你有一定的参考价值。一、什么是路由

篇首语:本文由编程笔记#小编为大家整理,主要介绍了路由原理相关的知识,希望对你有一定的参考价值。


一、什么是路由

  路由(routing)是指路由器从一个接口上收到数据包,根据ip数据包的目的地址进行定向并转发到另一个接口的过程。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。

 

二、路由器工作内容

  (1)支持路由协议

  (2)维护路由表项

  (3)根据路由表项进行数据包转发

 

三、路由表

  路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库,路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值),路由表中含有网络周边的拓扑信息。

  查看路由表:dis ip routing-table

  路由表包含的内容:Destination/Mask目的网段和掩码,Proto协议,Pre优先级,Cost开销,NextHop下一跳,Interface出接口。

  技术图片

 

四、路由的来源

  (1)直连路由:路由器本地接口所在网段

  (2)静态路由:手工配置的路由条目

  (3)动态路由:路由器间运行的动态路由协议

  

  静态路由的配置

  (1)关联下一跳IP的方式

    [Router] ip route-static 网络号 掩码 下一跳IP地址

  (2)关联出接口和下一跳IP的方式

    [Router] ip route-static 网络号 掩码  出接口 下一跳IP地址

 

五、默认路由

   默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。

  [Router] ip route-static 0.0.0.0  0.0.0.0  下一跳IP地址    或      [Router] ip route-static 0.0.0.0  0  下一跳IP地址

 

六、LoopBack接口

  Loopback接口,也叫环回口,是一个逻辑接口,虚拟的接口

  Loopback接口在手工创建后,是不会DOWN的,除非手工禁用

  Loopback接口用于:

    模拟路由器的直连网段,可用于测试链路畅通情况

    用于设备的网管接口(不会DOWN)

    供动态路由协议的RouterID使用

    作为SNMP traps 消息的源地址

 

七、路由汇总

  路由汇总的“含义”是把一组路由汇聚为一个单个的路由广播,路由汇总的最终结果和最明显的好处是缩小网络上的路由表的尺寸。路由汇总是一种重要的网络设计思想,一个可汇总的网络设计方案将使得我们的路由条目更为精简、网络管理更精细。

  如:192.168.1.0 /24、192.168.2.0 /24、192.168.3.0 /24 可以汇总成为 192.168.0.0 /22

  

八、路由最长匹配原则

  路由条目的类型:  

  (1)主机路由:192.168.1.1/32

  (2)子网:192.168.1.1/25

  (3)汇总路由(包含几个子网):192.168.0.0/22

  (4)主类网络号:根据子网网段,计算出的A、B、C类地址的网段如:10.0.0.0/8、172.16.0.0/16、192.168.1.0/24

  (5)超网(CIDR):根据A、B、C类地址的地址网段,超越A、B、C类地址的网段如:172.16.0.0/8是172.16.0.0/16的超网

  (6)缺省地址(默认路由):0.0.0.0  0.0.0.0

  技术图片

  当路由器在将数据包的目的地址在路由表中查找时,采用的原则是“最长匹配原则”,也就是查找目的IP地址与路由前缀匹配度最长的表项,使用该表项作为最终数据转发的依据。

  

九、路由查找小结

  (1)不同的前缀(网络号+掩码),在路由表中属于不同的路由

  (2)相同的前缀(网络号+掩码)相同,先比较路由协议优先级,然后比较路由条目的度量值

  (3)在查找路由时采用最长匹配原则,有匹配就转发,没有匹配就根据缺省路由转发,没有缺省路由则丢弃

  (4)路由器的路由行为是逐跳转发数据包的,没有关于目的数据包的路由,则丢弃数据包

  (5)数据流是双向的,需要考虑流量的往返

 

十、浮动静态路由

  浮动静态路由是一种特殊的静态路由,通过配置一个比主路由的管理距离更大的静态路由,保证网络中主路由失效的情况下,提供备份路由,但在主路由存在的情况下它不会出现在路由表中

  [Router] ip route-static 网络号 掩码  下一跳IP地址 preference integer

  注:在配置静态路由时,手工指定的路由条目的优先级默认为60

 

十一、汇总路由存在的问题

  在设置路由汇总的时候要特别注意,要规避路由环路的产生

  黑洞路由:[Router] ip route-static 网络号 掩码  null 0

 

十二、静态路由BFD

  BFD是一种双向转发检测机制,可以提供毫秒级的检测,可以实现链路的快速检测,BFD通过与上层路由协议联动,可以实现路由的快速收敛,确保业务的永续性。


推荐阅读
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 本文介绍了如何利用 Delphi 中的 IdTCPServer 和 IdTCPClient 控件实现高效的文件传输。这些控件在默认情况下采用阻塞模式,并且服务器端已经集成了多线程处理,能够支持任意大小的文件传输,无需担心数据包大小的限制。与传统的 ClientSocket 相比,Indy 控件提供了更为简洁和可靠的解决方案,特别适用于开发高性能的网络文件传输应用程序。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 这篇文章 | 夕阳下的防火墙命令全解 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案
    深入剖析Java中SimpleDateFormat在多线程环境下的潜在风险与解决方案 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 本文首先介绍了BGP的基本概念和基础知识,详细解析了BGP的不同邻居类型及其作用。接着,文章对BGP的报文格式、状态机以及路由宣告原则进行了深入探讨,包括本地宣告、引入宣告和缺省路由的处理方法。通过这些内容,读者可以全面了解BGP路由协议的核心机制及其在实际网络中的应用。 ... [详细]
author-avatar
_______王晓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有