3.IP路由基础

前言

· 当路由器收到一个IP数据包,路由器会根据数据包的目的IP地址查找FIB(Forwarding Information Base,转发信息库)表,找到“最匹配”的路由条目后,将数据包根据路由条目所指示的出接口或下一跳转发出去。


· 路由器获取路由的方式有三种,分别是动态路由、静态路由、直连路由。一个网络中可能会同时存在这三种方式,那么采用不同方式获取路由的路由器之间如何实现路由可达?


Ⅰ - IP路由基础

1.IP路由概述

当路由器收到一个IP报文时,路由器根据该IP报文的目的地址匹配路由条目(或路由表项)。

· 若有匹配的路由条目,则依据该条目中的出接口或下一跳等信息进行报文转发。

· 若无匹配的路由条目,则路由器没有相关路由信息用于指导报文转发,此时会丢弃该报文。


2.RIP与FIB

具有路由功能的网络设备都拥有两中国重要的数据表:

· 路由表——RIB(Routing Information Base,路由信息库)

· 转发表——FIB(Forwarding Information Base,转发信息库)

· 路由器维护一张本地核心路由表,此外还维护着各种路由协议的路由表

1
display ip routing-table   //路由表

路由表

可以将路由表视为路由器的控制平面,路由表实际上并不直接指导数据转发。路由器在执行路由表查询时,并不是在路由表中进行报文目的地址的查询,真正指导数据转发的时FIB表,路由器将路由表中的最优路由下载到FIB表,此后如果路由表中的相关表项发生变化,FIB表也将立即同步。 在大多数场合,阐述路由器数据转发过程时,会用“路由表”这个说法,实际上,路由器查询的时FIB表,路由表位于控制层面仅提供路由信息。


1
display fib [ slot-id ]   //转发表(FIB表)[ slot-id ]:显示指定槽位号的FIB表信息,取值范围根据实际配置选取

转发表

FIB表位于路由器的数据平面,亦被称为转发表项,每条转发表项都指定要到达某个目的地所需通过的出接口以及下一跳IP地址等信息。


3.路由表中的关键字段

路由表中的关键字段

1
2
3
4
5
6
7
Destination   //表示此路由的目的地址,用来标识IP包的目的地址或目的网络
Mask //表示此目的地址的子网掩码长度。与目的地址一起来标识目的主机或路由器所在的网段的地址。
Proto //表示学习此路由的路由协议(Protocol)
Pre //表示此路由的路由协议优先级(Prefrence)
Cost //路由开销
NextHop //表示转发到此目的网络的下一跳,指明数据转发的下一个设备。
Interface //表示转发到此目的网络的出接口,指明数据将从本地路由器哪个接口转发出去。

注意:

· 路由器分别定义了外部优先级和内部优先级。外部优先级可手动配置,反之内部优先级不可手动修改。

· 选择路由时先比较外部优先级,当不同的路由协议配置了相同的外部优先级时,系统会通过内部优先级决定哪个路由协议发现的路由将成为最优路由。

· Preference用于不同路由协议间路由优先级的比较,Cost用于同一种路由协议内部不同路由的优先级的比较。


4.FIB表中的关键字段

FIB表中的关键字段

1
2
3
4
5
6
7
8
9
10
11
12
13
Titak 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时,表示报文不通过隧道转发。

5.IP路由查找的最长匹配原则

· 路由器查找FIB表时,将报文的目的IP地址和FIB表中各表项的掩码位进行“逻辑与”,得到的地址符合FIB表中的网络地址则匹配。

· 最终选择一个掩码最长的FIB表转发报文。


6.路由的来源

路由的来源

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

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

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


7.动态路由协议

动态路由协议根据作用范围不同可分为:

· 内部网关协议IGP(Internal Gateway Protocol):在一个自治系统AS内部运行

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

动态路由协议


8.路由迭代

路由必须有智联的下一跳才能够转发,静态路由或BGP路由的下一跳可能不是直连的邻居,因此需要计算出一个直连的下一跳,这个过程称为路由迭代。

路由迭代


Ⅱ - IP路由高级应用

9.路由引入

路由引入是指将路由信息从一种路由协议发布到另一种路由协议的操作。

· 通过路由引入,可以实现路由信息在不同路由协议间传递。

· 执行路由引入时,还可以部署路由控制,从而实现对业务流量的灵活把控。

· 在路由引入时,如果将A协议路由引入到B协议路由,那么要在B协议路由中进行引入配置

· 在路由引入时需注意:

1、路由的优先级

2、路由回灌

3、路由度量值

命令:

1
2
[Huawei-ospf-100] import-route {bgp | direct | static | isis [ process-id-isis ] | ospf [ process-id-ospf ]}
//在OSPF视图下,引入BGP/直连/静态/IS-IS/OSPF其他进程路由。

10.路由优先级

华为定义的路由优先级:

1
2
3
4
5
6
7
8
9
Direct:0
OSPF:10
IS-IS:15
Static:60
OSPF ASE:150
OSPF NSSA:150
IBGP:255
EBGP:255
//不同厂商定义的优先级可能不同

11.路由回灌

路由回灌

· R1将直连路由10.1.1.0/24引入到OSPF中。

· 10.1.1.0/24网段路由全OSPF域内通告。

· R2在IS-IS进程中引入OSPF路由。

· 10.1.1.0/24网段路由全IS-IS域内通告。

· R3在OSPF进程中引入IS-IS路由。

· 10.1.1.0/24网段路由再次被通告进OSPF域内,形成路由回灌。

12.路由度量值

路由度量值

· 不同的路由协议对路由度量值的定义不同,在引入时要考虑到度量值的定义。