一. 路由工作原理:
路由转发数据过程其实很简单,简单的总结就是:
路由接收数据包→查看目的地址→与路由表进行匹配找到转发端口→转发到该端口
具体路由器工作过程:
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表项。