1第4章IP路由选择基础24.1路由基本原理概述4.1.1.路由表图4-1-1路由选择3路由器需要知道什么为了路由数据包,路由器应该知道:目的地址(Destinationaddresses)源地址(Sourcesitcanlearnfrom)可能路由(Possibleroutes)最佳路由(Bestroute)维护和更新路由信息(Maintainandverifyroutinginformation)执行路由操作所需要的信息被包含在路由器的路由表中,它们由一个或多个路由选择协议进程生成。4路由表路由表由多个路由条目组成,每个条目指明了:学习该路由所用的机制(动态或手动)逻辑目的地管理距离路由度量值或代价(它是度量一条路径的“总开销”的一个尺度)去往目的地下一跳的中继设备(路由器)的地址路由信息的新旧程度与要去往目的地网络相关联的接口5图4-1-2路由表1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.路由来源代码符号表路由信息(条目)表6图4-1-3路由表输出的解释管理距离/代价路由信息更新时间目标网络地址/掩码下一跳地址输出接口74.1.2.路由协议被路由协议(routedprotocols)也称为可路由协议。指的是任何在网络层地址中提供了足够信息,允许将数据包从一个主机转发到以寻址方案为基础的另一个主机的网络层协议。例如IP、IPX等。路由选择协议(routingprotocols)简称为路由协议。路由选择协议通过提供共享路由选择信息机制来支持被路由协议。路由选择协议消息在路由器之间传送,允许路由器与其他路由器通信来修改和维护路由选择表。例如:RIP、IGRP、EIGRP、OSPF、BGP、IS-IS等。8被路由协议和路由选择协议被路由协议Routedprotocols路由选择协议routingprotocolsIPRIP、IGRP、OSPF、EIGRP、BGP、IS-ISIPXRIP、NLSP、EIGRPAppleTalkRMTP、AURP、EIGRP94.1.3路由类型直连路由(connectedroute)就是到路由器接口所在的子网的路由,条件是接口状态必须是ACTIVE(物理端口和线路协议全UP)。(其管理距离为0)静态路由(staticroute)指在路由器上手工配置的路由。(其管理距离为0或1)静态路由可以有效降低路由器的CPU/RAM资源利用率,但是手工输入工作量大而且无法适应网络的变化。动态路由(dynamicroute)路由器通过运行路由选择协议来学习获得路由信息。可降低网管的工作量并且能够自动调整路由表的条目和内容以适应网络的变化,但是需要消耗一定的CPU/RAM资源。10直连路由、静态路由、动态路由114.1.4自治系统自治系统(AS,AutonomousSystem)就是指在同一管理控制域下的一组网络,是一个联接单个或多个IP前缀的群组,由一个或更多的网络运营者在单一且明确定义的路由政策下运营在同一个AS中,所有路由器使用统一的路由选择协议,共享路由表信息。AS号:为了把一个AS与其他AS区分开来,给每个AS分配一个在1-65535之间的唯一AS号。在运行BGP的Internet主干网络上的AS需要公共AS号(1-64511),而只是为了把自己内部网络划分为若干AS,则只需要私有AS号(64512-65535)。12按自治系统为路由选择协议分类内部网关协议IGP(InteriorGatewayProtocol)即在一个自治系统内部所使用的路由选择协议。IGP完成的是自治系统内部的路由选择,也称域内路由选择(InterdomainRouting)。目前这类路由选择协议用得最多。例如:RIP、IGRP、EIGRP、OSPF等。外部网关协议EGP(ExternalGatewayProtocol)即两个不同的自治系统之间接口时所使用的路由选择协议。EGP完成的是自治系统之间的路由选择,也称域间路由选择(IntradomainRouting)。例如:BGP、EGP、GGP等。目前外部网关协议中用得较多的是BGP-4。13内部网关协议和外部网关协议图4-1-4IGP和EGP144.1.5管理距离和代价管理距离:是划分IP路由协议等级的Cisco专有机制,当路由器从多个来源收到同一个网络的路由更新信息时,利用管理距离从这些来源中来选择一个作为最佳路由,并将其更新到路由表中。管理距离越小路由信息来源越可信。HostAHostBIGRP:管理距离=100RIP:管理距离=120RouterA15常见路由信息源默认管理距离值管理距离路由协议类型0ConnectedInterface(直连路由)0/1Staticroute(静态路由)90InternalEIGRProute(同一AS内部EIGRP路由)100IGRProute(IGRP路由)110OSPFroute(OSPF路由)115IS-ISroute(IS-IS路由)120RIProute(RIP路由)140EGProute(EGP路由)160ODRroute(ODR路由)170ExternalEIGRProute(来源于另一AS的外部EIGRP路由)200InternalBGProute(内部BGP路由)255Invalidroute(未知路由,无效并且将不使用)164.1.6最长掩码匹配原则最长掩码匹配原则:在路由表中如果到目标有多条可能的路径,则最长子网掩码(CIDR前缀)的那条路径为最真实路径。图4-1-5最长掩码匹配原则R10.1.1.1/32[120/1]via192.168.3.1,00:00:16,Serial1/1R10.1.1.0/24[120/1]via192.168.2.1,00:00:21,Serial1/0R10.1.0.0/16[120/1]via192.168.1.1,00:00:13,Serial0/1R10.0.0.0/8[120/1]via192.168.0.1,00:00:03,Serial0/0S0.0.0.0/0[120/1]via172.167.9.2,00:00:03,Serial2/0174.1.7路由器怎样传递数据包当路由器允许进行路由转发时,其对一个网络层数据包进行以下操作来完成路由转发:1.拆包(removethedatalinklayeraddress)2.查表(refertotheroutingtable)3.打包(encapsulatinganewframe)4.转发(forwardingthepacket)18路由过程中的数据包交换图4-1-6路由过程中的数据包交换HostAHostBRouterARouterBRouterC目标MAC地址源MAC地址源IP地址目标IP地址路由器A的MAC地址主机A的MAC地址主机A的IP地址主机B的IP地址目标MAC地址源MAC地址源IP地址目标IP地址路由器C的MAC地址主机B的MAC地址主机B的IP地址主机A的IP地址目标MAC地址源MAC地址源IP地址目标IP地址路由器B的MAC地址路由器A的MAC地址主机A的IP地址主机B的IP地址目标MAC地址源MAC地址源IP地址目标IP地址主机B的MAC地址路由器C的MAC地址主机A的IP地址主机B的IP地址目标MAC地址源MAC地址源IP地址目标IP地址路由器C的MAC地址路由器B的MAC地址主机A的IP地址主机B的IP地址主机A发往路由器A的数据包路由器B发往路由器C的数据包主机B发往路由器C的数据包路由器A发往路由器B的数据包路由器C发往主机B的数据包194.2静态路由和缺省路由配置4.2.1静态路由配置静态路由的特点:静态路由定义了一条到目标网络或子网的路径。不需要启动动态路由选择协议进程,因而减少了路由器的运行资源开销。在小型互连网络上很容易配置。可以控制路由选择。不可自动扩展,必须在每台路由器上手工重复地配置每一条路由信息。20存根网络存根网络(StubNetwork):对外只有一个出口的网络。在连接存根网络和外网的路由器上配置静态路由就足够了。图4-2-1存根网络172.16.2.1S0/0172.16.1.0B172.16.2.2NetworkABStubNetworkS0/021静态路由配置命令Router(config)#iproutenetwork[mask]{IPaddress|interface}[distance][permanent]iproute:静态路由配置命令network:目标网络地址mask:子网掩码,如果此项没有设,用ABC类默认掩码IPaddress:下一跳IP地址,用此项默认管理距离为1interface:本地输出接口,用此项默认管理距离为0distance:管理距离值,如果此项没有设,用默认值permanent:永久的,如果有此参数则无论接口是否正确此条静态路由都永久存在于路由表中。否则路由器会从路由表中删除已经故障的接口所涉及的静态路由项目。22静态路由的配置例Router_A(config)#iproute192.168.1.0255.255.255.0serial0或者iproute192.168.1.0255.255.255.010.0.0.2Router_B(config)#iproute192.168.0.0255.255.255.0serial0或者iproute192.168.0.0255.255.255.010.0.0.1RouterARouterBS0:10.0.0.1/24S0:10.0.0.2/24E0:192.168.0.1/24E0:192.168.1.1/2423撤销一条静态路由配置Router(config)#noiproutenetwork[mask]{IPaddress|interface}[distance][permanent]no:撤销一条配置命令其他参数:同静态路由配置命令同理:撤销一条已经生效的配置命令通用格式是在要撤销的配置命令的使用模式下用no命令:no配置命令行244.2.2验证路由配置为了验证路由配置是否正确,可以在特权EXEC模式下使用show命令:Router#showiproute例如:上一页中RouterA配置完毕后验证路由表信息254.2.3缺省路由配置缺省路由(defaultroute)又称为默认路由(lastresortgateway),是静态路由的一个特例。当数据包目标网络地址在路由表中没有任何匹配项目的时候,就使用默认路由转发数据包。如果没有默认路由,则抛弃此数据包。缺省路由设置命令可以有三种:Router(config)#ipdefault-gateway网关地址Router(config)#ipdefault-network网络地址Router(config)#iproute0.0.0.00.0.0.0{IPaddress|interface}26ipdefault-gateway当路由器上的iprouting无效时,使用ipdefault-gateway命令来指定默认路由,此命令主要用于RXBoot模式(noiprouting)下安装IOS,或者关闭iprouting(路由器默认自动启动了iprouting)让路由器当主机用,此时需要启用ipdefault-gateway配置默认网关。关闭ip路由转发功能命令Router(config)#noiprouting启动ip路由转发功能命令Router(config)#iprouting27两者都用于iprouting有效的路由器上,但要传播默认路由时必须用ipdefault-network。(例如IGRP不识别0.0.0.0)ipdefault-network必须是在所到网络已经存在路由的情况下,否则执行无效.当用ipdefault-network指令设定多条默认路由时,管理距离最短的成为最终的默认路由;如果有复数条路由管理距离值相等,那么在路由表中靠上的成为默认