-
路由的基本概念和类型 路由的几种类型:静态路由,动态路由 动态路由又分为:距离矢量路由(RIP),链路状态路由(OSPF,IS-IS,BGP) 路由的几个概念
路由选路 路由器收到数据包后,会根据数据包中的目的IP地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。 路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。
路由表 路由器转发数据包的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一个路由器,或者不再经过别的路由器而直接可以到达目的地。 路由表中包含了下列关键项: 目的地址(Destination):用来标识IP包的目的地址或目的网络。 网络掩码(Mask):在IP编址课程中已经介绍了网络掩码的结构和作用。同样,在路由表中网络掩码也具有重要的意义。IP地址和网络掩码进行“逻辑与”便可得到相应的网段信息。如本例中:目的地址为8.0.0.0,掩码为255.0.0.0,相与后便可得到一个A类的网段信息(8.0.0.0/8)。网络掩码的另一个作用还表现在当路由表中有多条目的地址相同的路由信息时,路由器将选择其掩码最长的一项作为匹配项。 输出接口(Interface):指明IP包将从该路由器的哪个接口转发出去。 下一跳IP地址(NextHop):指明IP包所经由的下一个路由器的接口地址。 开销值(cost):指明到达目标地址需要的开销(链路开销越小,优先级越高) 优先级(Pre):每个路由协议都有一个优先级(取值越小优先级越高),也可通过这个值判断该条路由是由那个路由协议产生的,直连路由(Direct)值为0,静态路由(static)值为60,RIP协议值为100,OSPF内部路由值为10,外部引入路由为150,IS-IS协议值为15,IBGP协议值为255,BEGP协议值为255
路由匹配规则 路由器在转发数据时,需要选择路由表中的最优路由。当数据报文到达路由器时,路由器首先提取出报文的目的IP地址,然后查找路由表,将报文的目的IP地址与路由表中某表项的掩码字段做“与”操作,“与”操作后的结果跟路由表该表项的目的IP地址比较,相同则匹配上,否则就没有匹配上。 当与所有的路由表项都进行匹配后,路由器会选择一个掩码最长的匹配项
-
静态路由 静态路由是指由管理员手动配置和维护的路由。静态路由配置简单,并且无需像动态路由那样占用路由器的CPU资源来计算和分析路由更新。 静态路由的缺点在于,当网络拓扑发生变化时,静态路由不会自动适应拓扑改变,而是需要管理员手动进行调整。 静态路由一般适用于结构简单的网络。在复杂网络环境中,一般会使用动态路由协议来生成动态路由。不过,即使是在复杂网络环境中,合理地配置一些静态路由也可以改进网络的性能。
静态路由的配置和注意事项 ip route-static ip-address { mask | mask-length } interface-type interface-number [ nexthop-address ]命令用来配置静态路由。参数ip-address指定了一个网络或者主机的目的地址,参数mask指定了一个子网掩码或者前缀长度。如果使用了广播接口如以太网接口作为出接口,则必须要指定下一跳地址;如果使用了串口作为出接口,则可以通过参数interface-type和interface-number(如Serial 1/0/0)来配置出接口,此时不必指定下一跳地址。 当源网络和目的网络之间存在多条链路时,可以通过等价路由来实现流量负载分担。这些等价路由具有相同的目的网络和掩码、优先级和度量值。 负载分担 路由器1和路由器2之间有两条链路相连,通过使用等价的静态路由来实现流量负载分担。 在路由器2上配置了两条静态路由,它们具有相同的目的IP地址和子网掩码、优先级(都为60)、路由开销(都为0),但下一跳不同。在路由器2需要转发数据给路由器1时,就会使用这两条等价静态路由将数据进行负载分担。同时在路由器1上也应该配置对应的两条等价的静态路由。 路由备份 在配置多条静态路由时,可以修改静态路由的优先级,使一条静态路由的优先级高于其他静态路由,从而实现静态路由的备份,也叫浮动静态路由。在路由器上配置了两条静态路由。正常情况下,这两条静态路由是等价的。通过配置preference 100,使第二条静态路由的优先级要低于第一条(值越大优先级越低)。路由器只把优先级最高的静态路由加入到路由表中。当加入到路由表中静态路由出现故障时,优先级低的静态路由才会加入到路由表并承担数据转发业务! 特殊的静态路由缺省路由 缺省路由也叫默认路由,缺省路由是目的地址和掩码都为全0的特殊路由,如果报文的目的地址无法匹配路由表中的任何一项,路由器将选择依照缺省路由来转发报文 当路由表中没有与报文的目的地址匹配的表项时,设备可以选择缺省路由作为报文的转发路径。在路由表中,缺省路由的目的网络地址为0.0.0.0,掩码也为0.0.0.0。缺省静态路由的默认优先级也是60。在路由选择过程中,缺省路由会被最后匹配。 3. RIP协议 路由信息协议RIP(Routing Information Protocol)的简称,它是一种基于距离矢量(Distance-Vector)算法的协议,使用跳数作为度量来衡量到达目的网络的距离。RIP主要应用于规模较小的网络中。 路由器启动时,路由表中只会包含直连路由。运行RIP之后,路由器会发送Request报文,用来请求邻居路由器的RIP路由。运行RIP的邻居路由器收到该Request报文后,会根据自己的路由表,生成Response报文进行回复。路由器在收到Response报文后,会将相应的路由添加到自己的路由表中。 RIP网络稳定以后,每个路由器会周期性地向邻居路由器通告自己的整张路由表中的路由信息,默认周期为30秒。邻居路由器根据收到的路由信息刷新自己的路由表。 RIP使用跳数作为度量值来衡量到达目的网络的距离。 缺省情况下,直连网络的路由跳数为0。当路由器发送路由更新时,会把度量值加1。RIP规定超过15跳为网络不可达。 RIP有两个版本 RIPv1 有类别路由协议,不支持VLSM和CIDR。 以广播的形式发送报文。 不支持认证。 RIPv2 无类别路由协议,支持VLSM,支持路由聚合与CIDR。 支持以广播或者组播(224.0.0.9)方式发送报文。 支持明文认证和 MD5 密文认证。 为了避免网络故障RIP产生环路,路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器。 此外为了避免环路还设计了毒性反转,毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为16,并从原接收接口发回给邻居路由器 缺省情况下,一台RIP路由器每30秒会发送一次路由表更新给邻居路由器。 当本地路由信息发生变化时,触发更新功能允许路由器立即发送触发更新报文给邻居路由器,来通知路由信息更新,而不需要等待更新定时器超时,从而加速了网络收敛。 RIP的配置 rip [process-id]命令用来使能RIP进程。该命令中,process-id指定了RIP进程ID。如果未指定process-id,命令将使用1作为缺省进程ID。 命令version 2可用于使能RIPv2以支持扩展能力,比如支持VLSM、认证等。 network
命令可用于在RIP中通告网络,network-address必须是一个自然网段的地址。只有处于此网络中的接口,才能进行RIP报文的接收和发送。 水平分割和毒性反转都是基于每个接口来配置的。缺省情况下,每个接口都启用了rip split-horizon命令(NBMA网络除外)以防止路由环路。华为ARG3系列路由器不支持同时配置水平分割和毒性反转,因此当一个接口上同时配置了水平分割和毒性反转时,只有毒性反转生效。 在接口模式下配置 rip Split-horizon 水平分割 rip Poison-reverse 毒性逆转