查找路由表,最长匹配原则
本篇文章给大家谈谈路由表如何寻找匹配项,以及查找路由表,最长匹配原则对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
3、路由匹配原则
4、路由表中如何选择最佳路径?
6、分组转发如果路由表每一次都不匹配怎么办?
谁能告诉我路由器查找路由表的过程?
当路由收到一个数据包的时候,先进行解封装,得到目的地址,例如我们叫常见的192.168.1.10
接着,路由会把这个地址与路由表里的各条路由的掩码匹配,再与该条路由较对,如果匹配,就向这条路由发送出来,如果不匹配,就向下一条路由查找
各条路由查找顺序,根据路由协议的管理距离大小查找,例如直连接口是最小的,管理距离值是0,静态路由是1,那么就先跟直连路由匹配
如果同是直连路由,那就按最小子网匹配
例如有两条路由192.168.1.0/24和192.168.1.10/32
那么就会去到192.168.1.10/32这条路由
简单说就是这样
实际是个很复杂的过程,有兴趣的可以参考一下思科CCNA第二册的教材,说得很详细
怎样理解路由选择表中的下一条地址
路由是选择一条数据包传输路径的过程,也就是说主机怎么向目的地发送数据的过程。当TCP/IP主机发送IP数据包时,便出现了路由,且当到达IP路由器时还会再次出现。路由器是从一个物理网向另一个物理网发送数据包的装置,路由器通常被称为网关,它承但着分发数据包的任务。对于发送的主机和路由器而言,必须决定向哪里转发数据包。在决定路由时,IP层查询位于内存中的路由表,然后根据查询规则,进行ip路由。是不是很抽象?先说如何选路:
(1)当一个主机试图与另一个主机通信时,IP首先决定目的主机是一个内网还是外网,怎么确定?当然使用网络号。
(2)如果是是同一内网,那就就是直接发送了,这个最简答不过了。
(3)如果目的主机是和发送主机不在同一个内网,也就是在外网了,^_^很啰嗦,IP将查询路由表来为外网主机或外网选择一个路由,所以一般情况下有可能为某个外网指定特定的路由,具体问题稍后分析。
(4)若未找到明确的路由,此时在路由表中还会有默认网关,也可称为缺省网关,IP用缺省的网关地址将一个数据传送给下一个指定的路由器,所以网关也可能是路由器,也可能只是内网向特定路由器传输数据的网关。
(4)在该路由器收到数据后,它再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的缺省网关地址。
每发现一条路由,数据包被转送下一级路由器,称为一次“跳步”,按照同样的方式进行转发,并最终发送至目的主机。若未发现任何一个路由可以接受此次ip包的地址,发送主机将收到一个出错信息,也就是说其中任何一跳出现了不可到达,最后的结果也就是报错了。
上面只是个人的一些理解,事实上当时我们做的实验不少,但是看看tcp/ip详解后,就可以一目了然了,现在以linux下的路由表为例说明一下:
$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 * 255.255.255.0 U 0 0 0 eth1
192.168.10.0 * 255.255.254.0 U 0 0 0 eth0
default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
--------------------------------------------------------------------------------------
IP路由选择是逐跳地(hop-by-hop)进行的。从这个路由表信息可以看出,IP并不知道到达任何目的的完整路径(当然,除了那些与主机直接相连的目的)。所有的IP路由选择只为数据报传输提供下一站路由器的IP地址。它假定下一站路由器比发送数据报的主机更接近目的,而且下一站路由器与该主机是直接相连的。
IP路由选择主要完成以下这些功能:
1)搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。
2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表目进行寻径的。这种搜索网络的匹配方法必须考虑可能的子网掩码。关于这一点我们在下一节中进行讨论。
3)搜索路由表,寻找标为“默认(default)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自本机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或 “网络不可达”的错误。
完整主机地址匹配在网络号匹配之前执行。只有当它们都失败后才选择默认路由。默认路由,以及下一站路由器发送的ICMP间接报文(如果我们为数据报选择了错误的默认路由),是IP路由选择机制中功能强大的特性。
路由匹配原则
路由匹配原则
今天小缘向大家具体介绍一下路由器是如何选路并转发流量的。
路由器的作用:
路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。
那么如何选择最优路径的,这便涉及到了路由选路。
数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器迚行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并并一定是最佳的。路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。
1 路由器首先会查询路由表
路由表中包含了下列关键项:
目的地址(Destination):用来标识IP包的目的地址或目的网络。
网络掩码(Mask):在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑不”运算便可得到相应的网段信息。
例如:目的地址为8.0.0.0,掩码为255.0.0.0,逻辑不运算后便可得到一个A类的网段信息(8.0.0.0/8)。
PS:根据目的地址与掩码进行逻辑不运算来确定网段。
逻辑不运算:
8.0.0.0 ---00001000.0.0.0
255.0.0.0 ---11111111.0.0.0
逻辑不运算---00001000.0.0.0 1与1得1,其他都为0
网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。
协议(Proto):表明使用那种路由协议
路由表中优先级(Pre)、度量值(cost) 下文会有介绍
输出接口(Interface):指明IP包将从该路由器的哪个接口转发出去。 下一跳IP地址(NextHop):指明IP包所绊由的下一个路由器的接口地址。
2 最长匹配原则 对象是目的网络
例如路由器收到数据包目的IP是10.1.1.1,查询路由表后,路由表中有两个表项到达目的网段10.1.1.0,下一跳地址都是20.1.1.2。如果要将报文转发至网段10.1.1.1,则10.1.1.0/30符合最长 匹配原则。
3 路由优先级 前提是同一网络 对象是不同路由协议
每个路由协议都有一个协议优先级(取值越小、优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。
如图所示,路由器通过两种路由协议学习到了网段10.1.1.0的路由。虽然RIP协议提供了一条看起来更加直连的路线,但是由于OSPF具有更高的优先级,因而成为优选路由,并被加入路由表中。
PS: 路由表中存在的始终是最佳路由。
4 路由度量 前提是同一网络 同一路由协议 对象是不同开销
如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。
一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。跳数是指到达目的地所通过的路由器数目。 带宽是指链路的容量,高速链路开销(度量值)较小。
metric值越小,路由越优先;因此,图示中metric=1+1=2的路由是到达目的地的最优路由,其表项可以在路由表中找到。
路由器通过上述规则会选择出最佳路径,然后就可以转发数据了。
路由表中如何选择最佳路径?
第一题选择172.16.17.64/24,第二题目的是10.10.10.00001110,答案是10.10.10.00001000,理论上是选择30那个,但是10.10.10.00000100/30不在目的子网内,也就是10.10.10.0001110和10.10.10.00001000相与的结果是10.10.10.8/29,10.10.10.0001110和10.10.10.00000100/30相与的结果是10.10.10.00001110/29,掩码是29位,而它是30位,所以不在10.10.10.14子网内。重新思考了下,第二题 10.10.10.00001110和10.10.10.00001000的前29比特匹配,第一题先考虑24掩码,172.16.17.64和172.16.17.65匹配的比特数最多。目前我只能解释到这,希望对你有用~!
在查找路由表时如果发现有多个选项匹配,那么应该根据
查找路由表时如果发现有多条路由匹配,应按照最长的网络前缀匹配(掩码最长的)。
分组转发如果路由表每一次都不匹配怎么办?
路由器在收到IP数据报告后执行的分组转发步骤如下:
1) 提取IP数据报告首部中的目的IP地址
2)判断目的IP地址所在的网络是否与本路由器直接相连。如果是,就直接交付给目的网洛:如果不是执行3)
3)检查路由器表中是否有目的IP地址的特定主机路由。如果有,按特定主机路由转发:如果没有,执行4)
4)逐条检查路由表。若找到匹配路由,则按照路由表进行转发:若所有路由均不匹配,则执行5)
5)若路由表中设置有默认路由,则按照默认路由表转发:否则,执行6)
6)向源主机报错。
关于路由表如何寻找匹配项和查找路由表,最长匹配原则的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。