Datacom-HCIA 从入门到跑路笔记(二)

153 阅读17分钟

IP路由基础

(一).路由概述

1路由基本概念

1.1网段间通信

IP地址唯一标识了网络中的一个节点,每个IP地址都拥有自己的网段,各个网段可能分布在网络的不同区域。 为实现IP寻址,分布在不同区域的网段之间要能够相互通信。

为了实现不同网段之间的相互通信,网络设备需要能够转发来自不同网段的IP报文,将其送达不同的IP网段

1.2路由

•路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。

•路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器。

•路由设备维护着一张路由表,保存着路由信息。

•网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个过程被称为路由转发。

•中间节点选择路径所依赖的表项为称为路由表。

•路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上。

image-20240810181259072

1.3路由信息介绍

•路由中包含以下信息:

▫目的网络:标识目的网段

▫掩码:与目的地址共同标识一个网段

▫出接口:数据包被路由后离开本路由器的接口

▫下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址

这些信息标识了目的网段、明确了转发IP报文的路径

1.4路由表

•路由器通过各种方式发现路由

•路由器选择最优的路由条目放入路由表中

•路由表指导设备对IP报文的转发

•路由器通过对路由表的管理实现对路径信息的管理

2.路由条目生成

2.1 路由信息获取方式

路由器依据路由表进行路由转发,为实现路由转发,路由器需要发现路由,以下为常见的路由获取方式

•直连路由:直连接口所在网段的路由,由设备自动生成。

•静态路由:由网络管理员手工配置的路由条目

•动态路由:路由器通过动态路由协议(如OSPF、IS-IS、BGP等)学习到的路由

2.2 直连路由

•直连路由指向本地直连网络的路由,由设备自动生成。

•当路由器为路由转发的最后一跳路由器时,IP报文匹配直连路由,路由器转发IP报文到目的主机。

•使用直连路由进行路由转发时,报文的目的IP和路由器接口IP在一个网段之中。

•并不是所有接口生成的直连路由都会出现在路由表中,直连路由出现在路由表中的前提是该接口的物理状态、协议状态都为UP。

image-20240810182045387

3.最优路由条目优选

3.1路由表查看

image-20240810182219339

Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。

Proto(Protocol): 该路由的协议类型,也即路由器是通过什么协议获知该路由的。

Pre(Preference): 表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。

Cost: 路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。

NextHop: 表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。

Interface: 表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。

3.2路由优先级
基本概念

•当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,路由器会比较这些路由的优先级,优选优先级值最小的路由。

•路由来源的优先级值(Preference)越小代表加入路由表的优先级越高。

•拥有最高优先级的路由将被添加进路由表。

image-20240810182518046

比较过程

•RTA通过动态路由协议OSPF和手动配置的方式都发现了到达10.0.0.0/30的路由,此时会比较这两条路由的优先级,优选优先级值最小的路由。

•每一种路由协议都有相应的优先级。

•OSPF拥有更优的优先级,因此通过OSPF学习到的路由被添加到路由表中。

image-20240810182624069

常见数值

外部路由优先级

直连路由优先级0

RIP 100

静态路由 60

OSPF 10

OSPF_ASE 150

ISIS 15

BGP 255

3.3度量值
基本概念

•当路由器通过某种路由协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一。

•路由度量值表示到达这条路由所指目的地址的代价。

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

•度量值数值越小越优先,度量值最小路由将会被添加到路由表中。

•度量值很多时候被称为开销(Cost)。

image-20240810182956497

比较过程

•RTA通过动态路由协议OSPF学习到了两条目的地为10.0.0.0/30的路由,学习自同一路由协议、优先级相同,因此需要继续比较度量值。

•两条路由拥有不同的度量值,下一跳为30.1.1.2的OSPF的路由条目拥有更小的度量值,因此被加入到路由表中。

image-20240810183031845

3.3最长匹配原则

•当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位(Bit-By-Bit)比对,直到找到匹配度最长的条目.

示例1

•根据最长匹配原则进行匹配,能够匹配192.168.2.2的路由存在两条,但是路由的掩码长度中,一个为16 bit,另一个为24 bit,掩码长度为24 bit的路由满足最长匹配原则,因此被选择来指导发往192.168.2.2的报文转发。

image-20240811172149277

示例2

•根据最长匹配原则匹配,能够匹配到192.168.3.2的路由只有一条,此路由为最终转发依据。

image-20240811172310034

路由转发流程

image-20240811172420627

•来自10.0.1.0/24网段的IP报文想要去往40.0.1.0/24网段,首先到达网关,网关查找路由表项,确定转发的下一跳、出接口,之后报文转发给R2。报文到达R2之后,R2通过查找路由表项转发给R3,R3收到后查找路由表项,发现IP报文目的IP属于本地接口所在网段,直接本地转发。

IP路由表小结

•当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会选择路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表。

•当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。

•路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包。

•数据通信往往是双向的,因此要关注流量的往返(往返路由)。

2.静态路由

静态路由由网络管理员手动配置,配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。

缺点是不能自动适应网络拓扑的变化,需要人工干预。

静态路由配置
1.关联下一跳IP的方式

[Huawei] ip route-static ip-address {mask | mask-length} nexthop-address

2.关联出接口的方式

[Huawei] ip route-static ip-address {mask | mask-length} interface-type interface-number

3.关联出接口和下一跳IP方式

[Huawei] ip route-static ip-address {mask | mask-length} interface-type interface-number {nexthop-address} 在创建静态路由时,可以同时指定出接口和下一跳。对于不同的出接口类型,也可以只指定出接口或只指定下一跳。对于点到点接口(如串口),必须指定出接口。 对于广播接口(如以太网接口)和VT(Virtual-template)接口,必须指定下一跳。

image-20240811173032812

缺省路由/默认路由

缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配,那么该报文将选取缺省路由进行转发。

缺省路由在路由表中的形式为0.0.0.0/0,缺省路由也被叫做默认路由。

静态路由的缺点是不能自动适应网络拓扑的变化,需要人工干预。

3.动态路由

•动态路由协议能够自动发现和生成路由,并在拓扑变化时及时更新路由,可以有效减少管理人员工作量,更适用于大规模网络。

自动发现,学习路由,感知拓扑变更

3.1动态路由分类

工作区域分类:动态路由协议分类:

IGP:内部网关协议:RIP OSPF IS-IS

EGP:外部网关协议 BGP

工作机制算法分类:

距离矢量路由协议 RIP

链路状态路由协议:OSPF IS-IS

BGP使用一种基于距离矢量算法修改后的算法,该算法被称为路径矢量(Path Vector)算法。因此在某些场合下,BGP也被称为路径矢量路由协议。

根据工作范围不同,又可以分为

内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。RIP、OSPF、ISIS为常见的IGP协议。

外部网关协议EGP(Exterior Gateway Protocol):运行于不同自治系统之间。BGP是目前最常用的EGP协议。

image-20240811174030729

4.路由高级特性

4.1路由递归

路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。

路由递归也被称为路由迭代。

image-20240811174341820

image-20240811174356524

4.2 等价路由

来源相同、开销相同的路由都会被加入路由表,形成的路由为等价路由(两个路由条目指向的目的网段相同,但是具有不同的下一跳地址),路由转发会将流量分布到多条路径上。

image-20240811175014782

4.3浮动路由
基本概念

•静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同优先级不同下一跳不同的静态路由,实现转发路径的备份。

•浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表。

image-20240811175159860

示例

•RTA-RTB之间的链路正常时,20.0.0.0/30的两条路由条目都是有效的条目,此时比较优先级,下一跳为10.1.1.2的优先级60,下一跳为10.1.2.2的优先级70,因此下一跳为10.1.1.2的加入路由表。

•RTA-RTB之间的链路故障时,10.1.1.2不可达,因此下一跳为10.1.1.2的路由失效,此时前往20.0.0.0/30的路由就只存在一条,该条路由将会被选入路由表。前往20.0.0.1的流量将会被转发到10.1.2.2。

image-20240811175231977

4.4 CIDR

•CIDR(classless inter-domain routing,无类别域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。

•CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。

image-20240811175442221

4.5 路由汇总
4.5.1 汇总需求

•子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题:路由表中的路由条目数量增加。

•为减少路由条目数量可以使用路由汇总。

•对于一个大规模的网络来说,路由器或其他具备路由功能的设备势必需要维护大量的路由表项,为了维护臃肿的路由表,这些设备就不得不耗费大量的资源。同时,由于路由表的规模变大,会导致路由器在查表转发时效率降低。因此在保证网络中的路由器到各网段都具备IP可达性的同时,需要减小设备的路由表规模。一个网络如果具备科学的IP编址,并且进行合理的规划,是可以利用多种手段减小设备路由表规模的。一个非常常见而又有效的办法就是使用路由汇总(Route Summarization)。路由汇总又被称为路由聚合(Route Aggregation),是将一组有规律的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。

4.5.1 路由汇总简介

•路由汇总将一组具有相同前缀的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的。

•路由汇总采用了CIDR的思想:将相同前缀的地址聚合成一个。

•我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。

•RTA上为了能够前往远端地址,需要为每一个远端网段配置一条明细路由。去往10.1.1.0/24、10.1.2.0/24、10.1.3.0/24…拥有相同下一跳。将拥有相同下一跳,一组有规律的路由汇总成一条路由,这叫做路由汇总。

•路由汇总可以有效减少路由表项大小。

image-20240811180007721

4.5.2 汇总计算

•基于一系列连续的、有规律的IP网段,如果需计算相应的汇总路由,且确保得出的汇总路由刚好“囊括”上述IP网段,则需保证汇总路由的掩码长度尽可能长。

诀窍在于:将明细路由的目的网络地址都换算成二进制,然后排列起来,找出所有目的网络地址中“相同的比特位”

image-20240811180052570

4.5.3 汇总引发的问题

环路问题

image-20240811180226223

解决方案

•在RTB上增加一条指向Null0的路由,即可解决上述问题。因此,在部署路由汇总的时候要格外注意,要规避环路问题。

配置如下

[RTB] ip route-static 10.1.0.0 16 0 NULL0

•一般来说一条路由,无论是静态的或者是动态的,都需要关联到一个出接口,路由的出接口指的是设备要到达一个目的网络时的出站接口。路由的出接口可以是该设备的物理接口,例如百兆、千兆以太网接口,也可以是逻辑接口,例如VLAN接口(VLAN Interface),或者隧道(Tunnel)接口等。在众多类型的出接口中,有一种接口非常特殊,那就是Null(无效)接口,这种类型的接口只有一个编号,也就是0。Null0是一个系统保留的逻辑接口,当网络设备在转发某些数据包时,如果使用出接口为Null0的路由,那么这些报文将被直接丢弃,就像被扔进了一个黑洞里,因此出接口为Null0的路由又被称为黑洞路由。

4.6 精确汇总

•为了让RTA能够到达RTB上的172.16.1.0/24-172.16.31.0/24网段,配置了一条静态的汇总路由,这条网段虽然优化了网络配置,但是汇总的范围太广,将RTC上的网段也包括在内,导致前往RTC上网段的流量到达RTA之后会被发往RTB,造成数据包的丢失,这种路由为不精确的路由。为此配置汇总路由时要尽量精确,刚好包括所有明细路由。

image-20240811180520785

精确计算汇总后的网络号、掩码,避免汇总后掩码过小。

image-20240811180554236

补充

1.ICMP重定向过程

在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。

PC1需要和PC2通信,PC1的默认网关路由器是R1,那么当PC1发送报文给PC2时报文会被送到R1。PC1发送的报文以后会发现实际上PC1直接发送给R2更好,它将发送一个重定向报文给PC1,其中报文路径下一跳地址为R2,Destination Address为PC2(该部分为ICMPv6重定向报文携带的目的地址)。收到了重定向报文之后,会在默认路由表中添加一个主机路由,以后发往PC2的报文就直接发送给R2。

当路由器收到一个报文后,只有在如下情况下,路由器会向报文发送者发送重定向报文:

报文的目的地址不是一个组播地址。

报文并非通过路由转发给路由器。

经过路由计算后,路由的下一跳出接口是接收报文的接口。

路由器发现报文的最佳下一跳IP地址和报文的源IP地址处于同一网段。

路由器检查报文的源地址,发现自身的邻居表项中有用该地址作为全球单播地址或链路本地地址的邻居

2.

静态路由的cost = 0无法修改,所以配置多条去往同一个目的网络的静态路由,就可以实现负载分担。

动态路由如果多条去往同一个目的网络存在相同cost的路径,就可以实现负载分担。

IP路由网络(静态路由/路由协议)如何做负载分担?

1.基于流实现负载分担

什么是流? SIP+DIP+SPORT+DPORT+(TCP/UDP) 五元组相同的报文组成同一个流属于同一个流的报文走相同的路径

2.基于报文实现负载分担

匹配相同等价路由的报文,以报文为单位,在多条等价径路上轮询转发。

3.非TCP/UDP的IP报文,比如ICMP协议报文

SIP+DIP 相同的报文 组成一个流

3.路由汇总补充

image.png