IP路由原理——技术详解
一. 路由工作原理:
路由转发数据过程其实很简单,简单的总结就是:
路由接收数据包→查看目的地址→与路由表进行匹配找到转发端口→转发到该端口
具体路由器工作过程:
1)、PC1要给PC2发送数据,因为地址不在同一个网段,PC1会将数据包发送给本网段的网关路由R1的G0/1接口,
2)、R1路由器接收到数据包,查看数据包IP头部中目的地址是2.100,再查询自己路由表,发现到达192.168.2.0/24网段需要从G0/0接口出去,于是R1路由器将数据包发送到G0/0接口,并由此接口将数据发出去到达R2路由器。
3)、R2路由器收到一个来自R1的数据包,同样查看IP首部包中的目的地址是2.100,再查询自己路由表。发现192.168.2.0/24网段在G0/1接口下,R2路由器将数据包再转发到G0/1接口,并由此接口发送到PC2设备上,到此路由工作过程结束。
1、路由表
再来看一下概念的东西,通过工作过程基本上可以了解什么是路由表及其作用,总结如下:1)路由器中维护的路由条目的集合2)路由器根据路由表做路径选择:
2、路由表分类
1)直连(Direct):本地接口、回环地址
2)静态(static):需要手动指定
3)动态(dynamic):距离矢量:rip
距离矢量(增强型):BGP
链路状态:ospf、isis等
4)默认路由:0.0.0.0 0.0.0.0是一种特殊的静态路由,如果报文的目的地址无法匹配路由表中的任何一项,路由器将选择依照缺省路由来转发报文。
注:如果没有默认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。
3、路由表形成
路由形成主要分为几个部分,按大类主要就两类:1)直连网段:配置IP地址,并且状态UP形成直连路由。就像上图中R1直连网段就是G0/1和G0/0端口下的IP地址对应的地址段。2)非直连网段:非直连的网段就需要通过路由协议学习后,将学习到的网段写入路由表,就像上图中红色标出来的部分,路由协议会在后面讲解。
4、路由及转发匹配原则
1)学习路由表:ip地址相同情况下,比协议优先级,优先级相同比cost(度量值)。
2)转发数据:数据转发时多条协议到相同目的地时,则匹配最长子网掩码,长的优先选择发送。
注:学习路由表=不同协议到相同目的地址只学习一条,比优先级和cost;
转发数据=多条协议发送相同目的地时,比子网长度;
转发数据路由没有条目则丢弃;
5、路由协议优先级值
6、路由注意事项
1)、网线连接:属于广播类型,必须配置下一跳地址,串口模式(点到点)可以不指定;
2)、路由发送数据包流程:确认目的地址–查缓存表–转发数据;
3)、静态路由一般情况下,收发数据双方需要都配置路由才可以正常通信;
7、路由转发数据封装过程
1)PC1在网络层将来自上层的报文封装成IP数据包,其首部Header字段包含了源目IP地址。源地址即本机PC1的地址192.168.1.1,目的地址为PC2的地址192.168.2.1。PC1会用本机配置的子网掩码与目的地址进行与运算,得出目的地址与本机地址不属于同一网段,因此发往PC2的数据包需要经过RTA路由器进行转发。
2)PC1通过ARP请求获得默认网关RTA路由器的G0/1接口MAC地址00:11:98:70:22:22,在数据链路层PC1将IP数据包封装成以太网数据帧,在以太网数据帧首部的源MAC地址为00:11:98:70:11:11,目的MAC地址为网关G0/1口的MAC地址00:11:98:70:22:22。
3)RTA路由器从G0/1接口收到来自PC1的数据帧,去掉链路层的封装。RTA路由器认为这个IP数据包是要通过自己进行路由转发,所以RTA路由器会查询自己的路由表,寻找与目标IP地址192.168.2.1相匹配的路由表项,再根据路由表的下一跳地址将数据包转发到G0/0接口。
4)在G0/0接口RTA路由器重新封装以太网帧,此时源MAC地址为RTA路由器的G0/0口的MAC地址00:11:98:70:33:33,目的MAC地址为与之相连的RTB路由器的G0/0接口MAC地址00:11:98:70:44:44。
5)路由器B从G0/0接口收到来自RTA路由器的数据帧,同样去掉数据链路层封装。并查看目的IP地址与路由表进行匹配,再根据路由表的下一跳信息将数据包转发到G0/1接口。最后RTB路由器发现目的网段与自己G0/1接口直接相连,通过ARP广播,RTB路由器获取到PC2主机的MAC地址00:11:98:70:66:66,此时RTB路由器再将IP数据包封装成以太网帧,源MAC地址为RTB路由器G0/0接口的MAC地址00:11:98:70:55:55,目的MAC为:00:11:98:70:66:66,最终数据封装完成后,RTB将数据帧从G0/1接口发送给PC2主机。
总结:数据发送的原目IP地址不变,而源目MAC地址会随着设备端口不断转发变更而变化。
8、路由与交换机制区别
我们知道交换机是工作在OSI模型的第二层,即数据链路层,路由器工作在OSI模型的第三层,网络层,那么这两者具有区别和作用我们来总结一下:
1)交换机:交换机工作在OSI模型第二层数据链路层,数据链路层只能识别物理地址也就是MAC地址信息,当交换机的某个接口收到一个数据帧时,交换机首先会读取数据帧中相应的目标地址的MAC地址,然后再自己的MAC地址表中查找是否有目标MAC地址的端口信息。如果有,则把数据帧转发到相应的端口。如果没有,则向除源端口外的所有端口转发数据帧。这就是交换机的数据交换过程。
总结:交换机根据自己的MAC地址表在交换机的不同端口之间进行数据交换,即交换机的一个端口交换到另一个端口。
2)路由器:在网络层可以识别逻辑地址。当路由器的某个接口收到一个数据包时,路由器首先会读取包中相应目标的逻辑地址网络部分,然后再路由表中查找。如果在路由表中找到了目标地址的路由条目,则把数据包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,且路由器配置了默认路由,就根据默认路由的配置转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,且路由器中没有配置默认路由,则将该数据包丢弃,并返回不可达信息。这就是数据路由的过程。
总结:路由器是根据自己的路由表进行转发,期间经过了路由选择和路由器转发的过程,从路由器的一个接口路由到另一个接口。
IP路由基础理论知识详解-原理及配置
56 播放 · 0 赞同视频
点击可播放视频
二. 静态路由与动态路由:
路由器不仅支持静态路由,同时也支持RIP(Routing Information Protocol)、OSPF(Open Shortest Path First)、IS-IS(Intermedia System-Intermedia System)和BGP(Border Gateway Protocol)等动态路由协议。
静态路由与动态路由的区别
路由协议是路由器之间维护路由表的规则,用于发现路由,生成路由表,并指导报文转发。依据来源的不同,路由可以分为三类:
通过链路层协议发现的路由称为直连路由。
通过网络管理员手动配置的路由称为静态路由。
通过动态路由协议发现的路由称为动态路由。
静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。缺点是不能自动适应网络拓扑的变化,需要人工干预。
动态路由协议有自己的路由算法,能够自动适应网络拓扑的变化,适用于具有一定数量三层设备的网络。缺点是配置对用户要求比较高,对系统的要求高于静态路由,并将占用一定的网络资源和系统资源。
动态路由的分类
对动态路由协议的分类可以采用以下不同标准:
根据作用范围不同,路由协议可分为:
内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。常见的IGP协议包括RIP、OSPF和IS-IS。
外部网关协议EGP(Exterior Gateway Protocol):运行于不同自治系统之间。BGP是目前最常用的EGP协议。
根据使用算法不同,路由协议可分为:
距离矢量协议(Distance-Vector Protocol):包括RIP和BGP。其中,BGP也被称为路径矢量协议(Path-Vector Protocol)。
链路状态协议(Link-State Protocol):包括OSPF和IS-IS。
以上两种算法的主要区别在于发现路由和计算路由的方法不同。
三. 路由表和FIB表:
路由器转发数据包的关键是路由表和FIB表,每个路由器都至少保存着一张路由表和一张FIB(Forwarding Information Base)表。路由器通过路由表选择路由,通过FIB表指导报文进行转发。
路由表:每台路由器中都保存着一张本地核心路由表(即设备的IP路由表),同时各个路由协议也维护着自己的路由表。
本地核心路由表:路由器使用本地核心路由表用来保存决策优选路由,并负责把优选路由下发到FIB表,通过FIB表指导报文进行转发。这张路由表依据各种路由协议的优先级和度量值来选取路由。
对于支持L3VPN(Layer 3 Virtual Private Network)的路由器,每一个VPN-Instance拥有一个自己的管理路由表(本地核心路由表)。
协议路由表:协议路由表中存放着该协议发现的路由信息。路由协议可以引入并发布其他协议生成的路由。例如,在路由器上运行OSPF协议,需要使用OSPF协议通告直连路由、静态路由或者IS-IS路由时,要将这些路由引入到OSPF协议的路由表中。
四. 缺省路由:
缺省路由是另外一种特殊的路由。简单来说,缺省路由是没有在路由表中找到匹配的路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。如果没有缺省路由且报文的目的地址不在路由表中,那么该报文将被丢弃,并向源端返回一个ICMP(Internet Control Message Protocol)报文,报告该目的地址或网络不可达。
在路由表中,缺省路由以到网络0.0.0.0(掩码也为0.0.0.0)的路由形式出现。可通过命令display ip routing-table查看当前是否设置了缺省路由。通常情况下,管理员可以通过手工方式配置缺省静态路由;但有些时候,也可以使动态路由协议生成缺省路由,如OSPF和IS-IS。
五. 路由迭代:
路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由迭代。BGP路由、静态路由和UNR路由的下一跳都有可能不是直连的,都需要进行路由迭代。
例如,BGP路由的下一跳一般是非直连的对端loopback地址,不能指导转发,需要进行迭代。即根据以BGP学习到的下一跳为目的地址在IP路由表中查找,当找到一条具有直连的下一跳、出接口信息的路由后(一般为一条IGP路由),将其下一跳、出接口信息填入这条BGP路由的IP路由表中并生成对应的FIB表项。
对于BGP私网路由,需要隧道进行转发,路由的下一跳一般是远端PE的Loopback地址,不能指导转发,也需要进行路由迭代,即在隧道列表中查找到达该Loopback地址的隧道,将该隧道信息填入路由表中并生成对应的FIB表项。
IP路由原理——技术详解相关推荐
- IP应用加速技术详解:如何提升动静混合站点的访问速率?
全站加速(DCDN)-IPA是阿里云自主研发四层加速产品,它基于TCP/UDP的私有协议提供加速服务,包括解决跨运营商网络不稳定.单线源站.突发流量.网络拥塞等诸多因素导致的延迟高.服务不稳定的问题, ...
- P2P技术详解(一):NAT详解——详细原理、P2P简介(转)
这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. <P2P技术详解>系列文章 ➊ 本 ...
- 015. P2P技术详解(一):NAT详解——详细原理、P2P简介
http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层 ...
- 视频直播技术详解(7)现代播放器原理
<视频直播技术详解>系列之七:现代播放器原理 牛小七2016年9月29日发布在 视频直播技术详解 from: http://blog.qiniu.com/archives/7040 七牛云 ...
- 《视频直播技术详解》系列之七:现代播放器原理
七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣. 结合七牛实时流网络 LiveNet 和直播云解 ...
- 视频直播技术详解之现代播放器原理
声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 作者:七牛云 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群 ...
- 「视频直播技术详解」系列之六:现代播放器原理
关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: ...
- 新书推荐 |《5G NR物理层技术详解:原理、模型和组件》
新书推荐 <5G NR物理层技术详解:原理.模型和组件> 点击上图了解及购买 5G专家和学者撰写,详解5G NR物理层技术(包括波形.编码调制.信道仿真和多天线技术等)及其背后的成因,爱立 ...
- “扫五福”的实现原理和技术详解
前言 年关扫福的号角一吹响,日常社交用语里就多了一句:你有敬业福嘛?今年是集五福的第6年,这场搭载手机的年味仪式,让古早的"福"文化又登上新时代的C位. 不难发现,我们拿着手机,不 ...
- vooc充电原理_OPPO VOOC充电技术详解
无标题文档 ? OPPO VOOC充电技术详解 近年来智能手机的流行趋势趋于超薄,大屏,高配等方向上一路高歌,根本就停不下来,以上技术的发展都与续航能力不共戴天,想要手机纤薄,电池就不能厚.要使用更大 ...
最新文章
- 支持向量机SVM序列最小优化算法SMO
- Linux学习 LVM ***
- python多线程读取文件夹下的文件_是否可以使用python多线程从文件夹数读取文件数,并处理这些文件以获得组合结果?...
- Spring中的ModelAndView
- html5中preclass,为什么HTML5建议把代码元素放在pre?
- HSSFCellStyle.ALIGN_CENTER报错
- 二十一、补码 (计算机最小的单位为位)
- phalcon的一些中文手册和帮助文档地址收集
- Node.js与网络:Node.js对TCP、UDP、Socket、HTTP等协议的实现和支持
- ASP.NET 页面验证cookie
- 如何修改SQL Server 2008数据库服务器名称
- java 输入怎么写_java我要怎么写如果输入6是输出是122333444455
- .Net文档图像处理工具包GdPicture.NET发布v14.0.27,提升GdViewer控件的速度
- [SharePoint教程系列] 0.SharePoint 2016介绍
- javaweb做什么能赚钱_做一个完整的Java Web项目需要掌握的技能
- Springboot实现发送邮箱
- 吃鸡显示服务器人太多,《绝地求生》回应服务器不给力:玩家太多
- 中国电解铝行业投资机会与未来发展状况分析报告2022版
- Lab AAA-本地认证
- 【模拟】图书馆书目检索
热门文章
- javascript数组
- 运用帝国CMS建站仿站的简单教程(初学者进)
- springboot+教学工作量管理系统 毕业设计-附源码221541
- winsxs是什么文件夹 Winsxs文件夹可以删除吗
- H5微信分享自定义标题和图片的实现及遇到的各种坑
- 统计|方差分析拒绝原假设的LSD一般步骤及实现
- php获取数组元素keys,关于array_keys函数的详细介绍 - key
- python中keys的用法_在Python中用keys()方法返回字典键的教程
- 文法去除空产生式_文法化简 (CFG Simplification) 翻译
- Linux开发心得总结5 - Linux下OOM Killer机制详解