路由技术详解|IP数据包是如何在网络中转发的?

前面我们介绍了数据帧的转发过程,数据帧是根据目的mac地址查找MAC地址表转发的你知道以太网数据帧在网络中如何发送和接收的吗?一文带你搞懂它  

 

      那么,网络层的IP数据包是如何在网络中传输的呢?答案是根据目的IP地址查找路由表转发的,那么什么是路由表,路由表是如何生成的?路由表是如何指导报文转发的?带着这些疑问我们来看下本章内容。

 

 

正文

 

 

1

什么是路由?

 

百度百科中路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。

 

如图所示,从PC1去往PC2,中间经过路由器,路由器RTA根据目的IP指导数据包转发的过程就称为路由。路由器负责为数据包选择一条最优路径,并进行转发。

 

数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。

 

2

什么是路由器?

 

路由器实质上是一种将网络进行互联的专用计算机,路由器是网络层的设备,(交换机是数据链路层的设备)用于指导IP报文转发。路由器也可以称之为网关设备。

 

路由器的每个接口对应不同的网段,可以隔离广播域

 

当数据包需要在不同网段间转发时需要通过路由器做转发,路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。

 

3

什么是路由表?

路由器是依据路由表进行转发数据包的?那么什么是路由表呢?

 

 

在华为路由器上可以通过命令 display ip routing-table 查看路由表。路由器转发数据包的关键是路由表

 

每个路由器中都保存着一张路由表,表中每条路由项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一个路由器,或者不再经过别的路由器而直接可以到达目的地。

 

通过上图可以看到路由表中包含了下列关键项:

 

1、目的地址(Destination):用来标识IP包的目的地址或目的网络。

 

2、网络掩码(Mask):在前面的章节中已经介绍了网络掩码的结构和作用。如何查询你电脑的IP地址?一文带你搞懂IP地址。同样,在路由表中网络掩码也具有重要的意义。

 

A、IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。如本例中:目的地址为8.0.0.0,掩码为255.0.0.0,相与后便可得到一个A类的网段信息(8.0.0.0/8)。

 

B、网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项

 

3、协议(Proto):标识路由的来源;

 

4、优先级(pre):标识路由加入IP路由表的优先级。可能到达一个目的地有多条路由,但是优先级的存在让他们先选择优先级高的路由进行利用。

设备厂商会在各自的产品中为不同的路由协议规定不同的优先级。

 

5、路由开销(cost):当到达一个目的地的多个路由优先级相同时,路由开销最小的将成为最优路由。

 

6、下一跳IP地址(NextHop):指明IP包所经由的下一个路由器的接口地址。

 

7、接口(Interface):指明IP包将从该路由器的哪个接口转发出去。

 

 

4

路由器如何依据路由表转发数据包呢?——最长匹配原则

路由器在转发数据时,需要选择路由表中的最优路由

 

当数据报文到达路由器时:

 

1、路由器首先提取出报文的目的IP地址,然后查找路由表,将报文的目的IP地址与路由表中某表项的掩码字段做“与”操作,“与”操作后的结果跟路由表该表项的目的IP地址比较,相同则匹配上,否则就没有匹配上。 

 

2、当与所有的路由表项都进行匹配后,路由器会选择一个掩码最长的匹配项

 

 

如图所示,路由表中有两个表项到达目的网段10.1.1.0,下一跳地址都是20.1.1.2。如果要将报文转发至网段10.1.1.1,则10.1.1.0/30符合最长匹配原则

 

5

路由表中的路由的来源?

根据路由产生的方式,也就是路由是如何生成的,路由表中的路由可以被分为直连路由,静态路由,缺省路由和动态路由几种.

(1)链路层协议发现的路由(也称为接口路由或直连路由):

 

        路由器接口上配置的网段地址会自动出现在路由表中并与接口关联,这样的路由叫做直连路由.

 

特点:

      直连路由是由链路层发现的,其优点是自动发现,开销小;缺点是只能发现本接口所属网段.

 

生成条件:

      1、当路由器的接口配置了网络协议地址并状态正常时,即物理连接正常,并且可以正常检测到数据链路层协议的keepalive信息时,接口上配置的网段地址自动出现在路由表中并与接口关联.其中产生方式(owner)为直连(direct),路由优先级为0,拥有最高路由优先级.其metric值为0,表示拥有最小metric值.

 

      2、直连路由会随接口的状态变化在路由表中自动变化,当接口的物理层与数据链路层状态为正常时,此直连路由会自动出现在路由表中,当路由器检测到此接口down掉后此条路由会自动消失.

 

(2)由网络管理员手工配置的静态路由:

 

        系统管理员手工设置的路由称为静态(static)路由,一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络拓扑结构的改变而自动改变

 

       优点是不占用网络和系统资源,安全;

       缺点是当一个网络模块问题发生后,静态路由不会自动修正,必须有管理员介入,需网络管理员手工逐条配置,不能自动对网络状态变化做出相应的调整.

 

 产生条件:

  静态路由是否出现在路由表中取决于下一跳是否可达,即此路由的下一跳地址所处网段对本路由器是否可达.静态路由在路由表中产生方式(owner)为静态(static),路由优先级为1,其度量值为0.如下图所示:

 

 静态路由的配置,运用ip route命令来配置静态路由,一条静态路由配置命令中要有以下几个要素:

  a. 目的地址:用来标识IP包的目标地址或目标网络

  b. 网络掩码:和目标地址一起来标识目标网络

  c. 下一跳IP地址:说明IP包所经由的下一个IP地址

  d. 接口:说明IP包从哪个接口发出去

  e. 优先级:值越小,优先级越高.

 

(3)缺省路由:

        

       缺省路由是一个路由表条目,用来指明一些在下一跳没有明确地列于路由表中的数据单元该如何转发.对于在路由表中找不到明确路由条目的所有的数据包都将按照缺省路由指定的接口和下一跳地址进行转发.

 

优点:运用缺省路由可以极大减少路由表条目

缺点:一旦配置不正确可能导致路由环路;可能导致非最佳路由。

 

 产生条件:

 

  在路由表中,缺省路由以到网络0.0.0.0(掩码为0.0.0.0)的路由形式出现.如果报文的目的地址不能与路由表的任何入口项相匹配,那么该报文将选取缺省路由.如果没有缺省路由且报文的目的地址不在路由表中,那么该报文被丢弃.缺省路由是否出现在路由表中取决于本地出口状态.

 

  Internet上大约99.99%的路由器上都存在一条缺省路由,缺省路由并不一定都是手工配置的静态路由,有时也可以由动态路由协议产生.比如OSPF路由协议配置了Stub区域的路由器会动态产生一条缺省路由.

 

(4)动态路由协议发现的路由:

 

        配置了动态路由选择协议后,动态路由协议通过交换路由信息,生成并维护转发引擎所需的路由表.当网络拓扑结构改变时动态路由协议可以自动更新路由表,并负责决定数据传输最佳路径.

 

     动态路由协议的优点是可以自动适应网络状态的变化,自动维护路由信息而不需要网络管理员的参与;其缺点为由于需要交换路由信息,因而占用网络带宽与系统资源,安全性也不如静态路由.

 

产生条件:

       在有冗余连接的复杂大型网络中,适合采用动态路由协议.在动态路由协议中目的网络是否可达取决于网络状态.

 

6

什么样的路由会被加入路由表?

 

去往相同网段的路由,优先级高的路由会加入路由表

 

路由器可以通过多种不同协议学习到去往同一目的网络的路由,当这些路由都符合最长匹配原则时,必须决定哪个路由优先。

 

每个路由协议都有一个协议优先级(取值越小、优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。

 

 

 

如图所示,路由器通过两种路由协议学习到了网段10.1.1.0的路由。虽然RIP协议提供了一条看起来更加直连的路线,但是由于OSPF具有更高的优先级,因而成为优选路由,并被加入路由表中。

 

常见的路由优先级:

 

 

去往相同网段的路由,优先级相同时,路由开销小的会加入路由表

 

如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。metric值越小,路由越优先;

 

一些常用的度量值有:跳数,带宽,时延,代价,负载,可靠性等。

1、跳数:是指到达目的地所通过的路由器数目。

2、带宽:是指链路的容量,高速链路开销(度量值)较小。

 

 

 

因此,图示中metric=1+1=2的OSPF路由是到达目的地的最优路由,其表项可以在路由表中找到。

 

 

 

总结:

路由器在选择最优路由时,会首先比较相同路由的优先级;如果优先级相同,再比较metric值。如果metric值也相同,多条相同的路由将实现等价负载分担。

 

7

路由器工作原理:

 

1、路由器收到一个数据包后,会检查其目的IP地址,然后依据最长匹配原则查找路由表;

 

2、如果查找到匹配的路由表项之后,路由器会根据该表项所指示的出接口信息和下一跳信息将数据包转发出去;

 

如果没有找到,会查找是否有缺省路由,找到的话会依据出接口信息和下一跳信息将数据包转发出去;

如果都没有找到,数据包会被丢弃


版权声明:本文为sinat_38673660原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
THE END
< <上一篇
下一篇>>