CCNA学习指南 IP路由

路由选择基础

  路由器可以在互联网络中将用户数据路由到所有网络中。要实现对分组的路由,路由器至少必须了解以下内容:

  • 目的地址;
  • 借以获取远程网络信息的相邻路由器;
  • 到达所有远程网络的可能路由;
  • 到达每个远程网络的最佳路由;
  • 维护并验证路由选择信息的方式。

      路由器从相邻的路由器或管理员那里了解有关远程网络的信息,然后建立一个描述如何查找远程网络的路由选择表(即互联网络的一张地图)。路由表中的数据一般是以条目形式存在,路由表条目包含以下主要的条目项:
      
      1、目的IP地址:此字段表示目标的IP地址。这个IP地址可以是某一台主机的地址,也可以是一个网络地址。如果这个条目包含的是一个主机地址,那么它的主机ID标记为非零;如果这个条目包含的是一个网络地址,那么它的主机ID被标记为零。
      2、下一个路由器的IP地址:为什么我们使用“下一个”的说法,是因为下一个路由器并不总是最后的目的路由器,但它很可能是一个中间路由器。条目给出下一个路由器的地址是用来转发从相应接口收到的IP数据报文。
      3、标志:这个字段提供了另一组重要信息,如目的IP地址(之前提到的)是一个主机地址还是一个网络地址。此外,从标志中可以得知下一个路由器(之前提到的)真的是一个路由器还是一个直接相连的接口。
      4、网络接口规范:一些数据报文的网络接口规范,这个规范跟随报文一起传播。

      如果某个网络与路由器是直接相连的,那么路由器自然就知道如何到达这个网络。如果某个网络没有与路由器直接相连,那么路由器就必须通过这样两种方式了解如何到达这个远程网络:
      

  • 静态的路由选择(即必须由专人手工将所有的网络位置输入路由选择表);
  • 动态的路由选择

      在动态路由选择的过程中,路由器上运行的协议将与相邻路由器上运行的同一协议进行通信。在此基础上,这些路由器可以不断更新各自对所有网络的了解,并将相关的信息加入到路由选择表中。如果网络连接出现变化,这个动态路由选择协议就会将这个变化自动通知到所有的路由器。如果使用静态路由选择,管理员需要在所有路由器上通过手动输入的方式更新所有的相关配置 。在大型的网络中,动态和静态路由选择通常会被同时使用。


IP 路由选择过程

这里写图片描述

假设现在主机甲的用户利用Ping命令,来确认主机乙的连通性问题。这个网络架构虽然比较简单,但是其路由选择过程的步骤则是一步不缺的。主要通过如下步骤:

第一步:当用户在主机甲上输入PING 172.168.80.8之后,主机甲中有一个因特网控制报文协议,英文简称为ICMP。这个协议将创建一个回应请求数据包,在它的数据域中只包含有字母。

第二步:英特网控制报文协议会将这个有效负荷(即刚创建的数据包)交给因特网协议(英文简称IP)。然后这个因特网协议也会创建一个数据包。在这个英特网协议创建的数据包中,所包含的内容要比因特网控制报文协议所创建的数据包丰富的多。在这个包中包括主机甲的IP地址、目的地主机已的IP地址以及值为01h的协议字段。当数据包到达主机乙时,这些内容就是告诉对方,应该将这个有效负荷交给因特网控制报文协议来处理。

第三步:IP协议会判断目的IP地址是属于远程网络,还是在本地网络。由于根据IP地址规划规则,主机甲与主机已是属于不同的网络。此时,刚才英特网协议(IP)所创建的数据包将会被发送到默认的网关中去。在主机甲的网络属性配置中,除了有自身的逻辑IP地址,还有默认的网关地址。网关地址就是用来不同网络之间的主机进行通信的一扇门。只有通过网关,主机甲的数据包才能够被发送到不同网络的主机乙中。

第四步:确认路由器相应接口的MAC地址。假设主机甲(IP地址为172.168.60.6)的默认网关被配置为172.168.60.1。若主机甲的数据包要发送到这个默认网关上,则就必须知道其对应的路由器接口的物理地址,即MAC地址。因为只有如此,数据包才能够被传递到更下一层的数据链路层并根据一定的规则生成帧。然后主机甲才能够把数据包发送给172.168.60.0网络连接的路由器接口。在本地局域网上,主机只可以通过硬件地址来相互之间进行通信。所以当主机甲要把数据包发送给特定的网关时,必须要知道这个网关所对应的MAC地址。这一个过程是不可避免的。为了达到这个目的,主机甲首先会检查自己的ARP缓存,查看一个默认网关的IP地址是否已经解析为对应接口的硬件地址。如果在ARP缓存表中已经有对应的记录,表示已经被成功解析。此时,数据包将会被释放并传递到数据链路层并生成帧。其中目的方的硬件地址也将同数据包一起下传到数据链路层。通常情况下,在主机甲上,可以通过ARP命令来查看主机当前的IP地址与MAC地址的对应表。

第五步:生成帧。当这个数据包和目的方的硬件地址被传递给数据链路层之后,局域网驱动器将用来提供媒体访问服务,以通过以太网进行数据传输。一个数据帧即将产生,使用一些控制信息来封装这个数据包。在这个数据帧中会包含有目的方和源方的硬件地址。以及以太网类型字段。这个以太网类型字段主要用来描述的是交付这个数据包岛数据链路层的网络层协议。在这个帧的结尾,是一种被称作为帧校验序列的字段,它是装载循环冗余校验计算值的区域。也就是说,在这个帧中,主要包括目的MAC地址(对应路由器接口的MAC地址)、源MAC地址(主机甲的MAC地址)、以太网类型字段、数据包、帧校验序列五部分内容。注意,这里指的目的地址并不是主机乙的地址,而是里主机甲最近的默认网关地址。在第一次通信时,主机甲并不知道主机乙的MAC地址。一旦完成帧的封装,则这个帧将会被交付到物理层。如果企业网络是利用双绞线组建的话,则将会以一次一位的方式发往物理媒体。

以上五个步骤主要都是在主机甲上完成。这五个步骤执行完毕之后,IP路由选择过过程的前期工作就算完成了。接下来的就要看路由器的表演了。

第六步:在主机甲所在的冲突域中的每台网络设备都将接收这些位并重新合并成数据帧。接收完毕后,他们会运行CRC过程并核对保存在帧校验序列字段中的内容。如果这两个值不匹配的话,则这个帧将会被丢弃。如果两个值相同(主机甲的默认网关,即紧邻主机甲的路由器接口),则网络设备会接收这个帧,并核查目的方的硬件地址,检查他们是否也匹配。如果目的方的硬件地址也是匹配的,那么路由器将会查看这个帧的以太网类型字段,以了解在网络层上采用了什么协议,然后路由器就会抽出帧中的数据包,把其余部分内容丢弃。然后把抽出来的数据包传送给以太网类型字段中列出的上层协议,如英特网网络协议(IP)等等。

第七步:判断路由表项目。英特网网络协议(IP)会接收这个数据包,并检查目的IP地址。在这个案例中,由于数据包中的目的地址与接收路由器所配置的任何地址都不相匹配。此时,路由器就会在自己的路由表中,查看目的IP网络的地址。在这个案例中,由于路由器同时连接着172.16.80.0的网络。所以在这个路由器的路由表中,有相关的纪录。若没有记录的话,则这个数据包会被直接丢弃。若路由器丢弃数据包的话,则会发送一个“目标地址不可达”的错误信息给主机甲。

第八步:路由器转发数据包。如果路由器的确在他的路由表中找到了相应网络的记录,则数据包就会被转发到输出接口。在本例中,就是主机乙所连接的接口。路由器会将这个数据包交换到对应接口的缓冲区内。

第九步:缓冲区中数据的处理。路由器对应接口的缓冲区需要了解目的方主机的硬件地址。因为这个数据包中已经有目的方的IP地址,所以,路由器会先检查ARP缓存表。如果主机甲的硬件地址已经被解析并保存在路由器的ARP缓冲中,则这个数据包和这个硬件地址将被传递到数据链路层以便重新生成帧。通常情况下,若路由器以前跟主机乙通信过的话,则这个IP地址与MAC地址的对应记录将会在思科路由器ARP缓冲表中保存四个小时。连续四个小时没有通信的话,则这个对应的记录将会被删除。如果在路由器的ARP缓冲表中没有相关记录的话,则路由器接口会在其连接的网络内部,发送一个ARP请求。这个ARP请求就像一个广播,谁我现在需要知道IP地址为172.12.80.8的MAC地址。此时。其他网络设备发现自己不是这个IP地址,就会抛弃这个包。而主机乙发现有人在问自己的MAC地址,就会进行响应。告诉路由器,我的IP地址就是这个,我的MAC地址是多少。路由器知道目的主机乙的MAC地址之后,就会把数据包连同目的方的MAC地址传递到下一层的数据链路中。

第十步:路由器会重复上面的第五步操作,生成数据帧。并传送到物理层,以一次一位的方式再发送到物理媒体上。在网络中进行传输。

在路由器上的工作也完成。通过以上的分析,我们可以看到,路由器的作用主要就是进行数据交换。把其收到的数据包根据一定的规则转发到另一个可达的接口上。路由器就好像是一个十字路口,各个数据包都根据自己所需要到达的目的地,现在合适的出口。

第十一步:主机乙会接收到这个数据帧并运行CRC过程。如果运算结果与帧校验序列中字段的内容相同,则这个帧中目的方的MAC地址将会被读取。主机乙会判断这个MAC地址是否跟自己的MAC地址相同。若相同的话,则会抽取其中的数据包,并根据以太网字段类型中指定的协议,把数据包传递给相应的协议处理。由于这个案例中,数据包中是一个回应请求。主机乙就会把这个数据包交给ICMP协议处理。ICMP协议会应答这个请求,同时把这个数据包丢弃并迅速生成一个新的有效负荷来作为回应应答。然后主机乙会利用同样的过程把数据包以及目的MAC地址(路由器对应接口的物理地址)传递到下一层,让其生成帧。在数据帧上,会带有目的MAC地址、源MAC地址、数据包、以太网字段类型、帧校验序列字段等内容发送到下一层。然后再一位位的传送到物理媒体。

第十二步:路由器再重复第六步到第十步的过程,把数据包从一个接口交换传递到另一个接口中。然后主机甲就收到一个回应信息,表示到主机乙的道路是通的。

以上这个十二个步骤就完成了IP路由选择的全部过程。再复杂的网络,也只是中间多了几个节点,多重复了几个步骤而已。网络管理员了解了这个IP路由选择的过程,那么在日后网络故障的排查中,会更加的得心应手。




动态路由选择

  动态路由选择就是路由器根据协议查找网络并更新路由选择表。使用动态路由选择要比使用静态或默认路由选择容易,但会占用更多的路由器 CPU 处理时间和网络带宽,开销大,配置复杂,但适合复杂网络拓扑结构的网络。路由选择协议为路由器定义了一组在相邻路由器间交换路由选择信息的规则。
  根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIP、OSPF;外部网关协议主要用于多个自治域之间的路由选择,常用的是BGP和BGP-4。

RIP(路由信息协议) :

  RIP采用距离向量算法(发送其路由表信息到邻近节点上),即路由器根据距离选择路由,所以也称为距离向量协议。路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。
  RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。

OSPF(开放最短路径优先)路由协议 :

  80年代中期,RIP已不能适应大规模异构网络的互连,OSPF随之产生。它是网间工程任务组织(IETF)的内部网关协议工作组为IP网络而开发的一种路由协议。
  OSPF是一种基于链路状态算法(也称最短路径算法,仅发送自身链路状态的那一部分到互联网上所有节点)的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用OSPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。
  与RIP不同,OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。
  
这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值