16 KiB
第三章:路由基础及静态路由技术
作者:行癫
第一节:路由概述
通过IP地址能够寻找到一个唯一的网络节点,每个IP都有自己所属的网段,这些网络可能分布在世界各地,共同组成了全球的网络
为了实现不同网段之间的相互通信,网络设备需要能够转发来自不同网段的IP报文,将其送达不同的IP网段
一:路由基本概念
1.路由
路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径
路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器
路由设备维护着一张路由表,保存着路由信息
网关以及中间节点(路由器)根据收到的IP报文其目的地址选择一条合适的路径,并将报文转发到下一个路由器。在路径中的最后一跳路由器二层寻址将报文转发给目的主机。这个过程被称为路由转发
中间节点选择路径所依赖的表项为称为路由表
路由条目包含明确的出接口以及下一跳,这两项信息指导IP报文转发到相应的下一跳设备上
2.路由信息介绍
通过路由中包含的信息,路由设备可以转发IP报文到相应的路径
目的地址、掩码用于识别IP报文目的地址,路由设备将IP报文匹配到相应的路由之后,根据路由的出接口、下一跳确认转发的路径
只有出接口并不能够确认转发IP报文的下一跳设备,还需要明确的下一跳设备地址
3.路由表
路由器依据路由表转发报文
路由表由一条条详细的路由条目组成
路由表由路由条目组成,但不代表路由表中保存了所有路由,路由表中只会保存“最优的”路由
对路由表中的路由条目的管理实际上就是路由器维护、管理路由信息的具体实现
二:路由条目生成
1.路由信息获取方式
直连路由:直连接口所在网段的路由,由设备自动生成
静态路由:由网络管理员手工配置的路由条目
动态路由:路由器通过动态路由协议(如OSPF、IS-IS、BGP等)学习到的路由
2.直连路由
直连路由指向本地直连网络的路由,由设备自动生成
当路由器为路由转发的最后一跳路由器时,IP报文匹配直连路由,路由器转发IP报文到目标主机
使用直连路由进行转发时,报文的目的IP和路由器接口IP在一个网段之中
当匹配中直连路由进行转发时,此时路由器会查看ARP表项,将报文直接转到目的地址,此时该路由器为路由转发的最后一跳路由器
直连路由的下一跳地址并不是其他设备上的接口地址,因为该路由的目的网段为接口所在网段,本接口就是最后一跳,不需要再转发给下一跳,所以在路由表中的下一跳地址就是接口自身地址
使用直连路由进行路由转发时,转发的动作不是交给下一跳,而是查询ARP表项,根据ARP表项封装报文,将报文发送到目的IP
并不是所有接口生成的直连路由都会出现在路由表中,直连路由出现在路由表中的前提是该接口的物理状态、协议都为UP
三:最优条目路由优选
1.查看路由表
Destination/Mask:表示此路由的目的网络地址与网络掩码,将目的地址和子网掩码"逻辑与"后可得到目的主机或路由器所在网段的地址。
Proto(Protocol):该路由的协议类型,即路由器是通过什么协议获知该路由
Pre(Preference):表示此路由的路由协议优先级,针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手动配置的静态路由,优先级最高者将成为当前的最优路由
Cost:路由开销,当到达同一目的地的多条路由具有相同的优先级时,路由开销最小的将成为当前的最优路由
NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址
Interface:表示此路由的出接口,指明数据将从本路由器的哪个接口转发出去
Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。在业界,Cost也被称为路由度量值(Metric)
2.基本概念
当路由器从多种不同的途径获知到达同一个目的网段的路由时,路由器会比较这些路由的优先级,优选优先级值最小的路由。
路由来源的优先级值越小代表加入路由表的优先级越高
拥有最高优先级的路由将被添加进路由表
3.比较过程
RTA通过动态路由协议OSPF和手动配置的方式都发现了到达10.0.0.0/30的路由,此时会比较这两条路由的优先级,优选优先级值最小的路由
每一种路由协议都有相应的优先级
OSPF拥有更优的优先级,因此通过OSPF学习到的路由将添加到路由表
4.常见默认数值
5.度量值基本概念
当路由器通过某种路由协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一
路由度量值表示到达这条路由所指目的地址的代价
一些常见的度量值有:跳数、带宽、时延、代价、负载、可靠性等
度量值数值越小越优先,度量值最小路由将会被添加到路由表中
度量值很多时候被称开销(Cost)
6.比较过程
RTA通过动态路由协议OSPF学习到了两条目的地为10.0.0.0/30的路由,学习自同一路由协议、优先级相同,因此需要继续比较度量值
两条路由拥有不同的度量值,下一条为30.1.1.2的OSPF的路由条目拥有更小的度量值,因此被加入到路由表中
四:路由转发
1.最长匹配原则
当路由器收到一个IP数据包时,会将数据包的目的IP地址与自己本地路由表中的所有路由表项进行逐位对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制
2.案例一
根据最长匹配原则进行匹配,能够匹配192.168.2.2的路由存在两条,但是路由的掩码长度中,一个为16bit,另一个为24bit,掩码长度为24bit的路由满足最长匹配原则,因此被选择来指导发往192.168.2.2的报文转发
3.案例二
根据最长匹配原则匹配,能够匹配到192.168.3.2的路由只有一条,此路由为最终转发依据
4.路由转发流程
来自10.0.1.0/24网段的IP报文想要去往40.0.1.0/24网段,首先到达网关,网关查找路由表项,确定转发的下一跳、出接口,之后报文转发给R2。报文到达R2之后,R2通过查找路由表项转发给R3,R3收到后查找路由表项,发现IP报文目的IP属于本地接口所在网段,直接本地转发
五:路由进阶
1.RIB与FIB
具有路由功能的网络设备都维护两种重要的数据表:一是路由表RIB(Routing Information Base,路由信息库);二是转发表FIB。
控制层面:
RIB:路由器维护一张本地核心路由表,此外路由器还维护着路由协议各自的路由表
数据平面:
FIB:路由器将本地核心路由表中的最优路由下载到FIB表。路由器转发芯片根据FIB表转发报文
路由表:
可以将路由表视为位于路由器的控制平面,实际上路由表并不直接指导数据转发。路由器在执行路由查询时,并不是
在路由表中进行报文目的地址的查询,真正指导数据转发的是FIB表,路由器将路由表中的最优路由下载到FIB表,此后如
果路由表中的相关表项发生变化,FIB表也将立即同步
由于两张表的一致性,且路由表阅读起来更直观,因此在绝大多数场合,在阐述路由器数据转发过程时,会用“路由
表”这个说法,实际上,路由器查询的是FIB表,位于控制层面的路由表只是提供路由信息
FIB表:
FIB表位于路由器的数据平面,亦被称为转发表项,每条转发表项都指定要到达某个目的地所需通过的出接口及下一
跳IP地址等信息
2.IP路由查找的最长匹配原则
路由器查找FIB表时,将报文的目的IP地址和FIB表中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表中的网络
地址则匹配
最终选择一个掩码最长的FIB表项转发报文
[Huawei] display fib 0
Route Flags: G - Gateway Route, H - Host Route, U - Up Route
S - Static Route, D - Dynamic Route, B - Black Hole Route
---------------------------------------------------------------------------------------------
FIB Table:
Total number of Routes : 8
Destination/Mask Nexthop Flag TimeStamp Interface TunnelID
10.3.3.3/32 10.0.1.1 DGHU t[15123] GE0/0/0 0x0
10.4.4.4/32 10.0.2.2 DGHU t[11177] GE0/0/1 0x0
10.0.1.2/32 127.0.0.1 HU t[9058] InLoop0 0x0
127.0.0.1/32 127.0.0.1 HU t[19] InLoop0 0x0
127.0.0.0/8 127.0.0.1 U t[19] InLoop0 0x0
0.0.0.0/0 10.0.2.2 GSU t[122] GE0/0/1 0x0
10.0.1.0/24 10.0.1.2 U t[9058] GE0/0/0 0x0
10.0.3.0/24 10.0.2.2 DGU t[11177] GE0/0/1 0x0
如果一个数据包的目的IP地址是10.3.3.3,路由器将会把这个数据包从哪个接口转发出去呢?
FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送,然后就可到达
该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机
FIB表信息查看命令:display fib [ slot-id ]
slot-id:显示指定槽位号的FIB表信息。整数形式,取值范围请根据设备实际配置选取
FIB表中的字段说明:
Total number of Routes:路由表总数
Destination/Mask:目的地址/掩码长度
Nexthop:下一跳
Flag:当前标志,G、H、U、S、D、B的组合
G(Gateway):网关路由,表示下一跳是网关
H(Host):主机路由,表示该路由为主机路由
U(Up):可用路由,表示该路由状态是Up
S(Static):静态路由
D(Dynamic):动态路由
B(Black Hole):黑洞路由,表示下一跳是空接口
TimeStamp:时间戳,表示该表项存在的时间,单位是秒
Interface:到目的地址的出接口
TunnelID:表示转发表项索引。该值不为0时,表示匹配该项的报文通过隧道转发(如:MPLS隧道转发)。该值为0
时,表示报文不通过隧道转发
第二节:静态路由
一:静态路由的应用场景
静态路由由网络管理员手动配置,配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。
二:静态路由配置
1.配置举例
2.缺省路由
缺省路由是一种特殊的路由,当报文没有在路由表中找到匹配的具体路由表项时才使用的路由,如果报文的目的地址不能与路由表的任何目的地址相匹配,那么报文将选取缺省路由进行转发
缺省路由在路由表中的形式为0.0.0.0/0,缺省路由也被叫做默认路由
3.缺省路由的应用场景
缺省路由一般用于企业网络出口,配置一条缺省路由让出口设备能够转发前往Internet上任意地址的IP报文