
3、FIB表的匹配
在路由表选择出路由后,路由表会将激活路由下发到FIB表中。当报文到达路由器时,会通过查找FIB表进行转发。
FIB表中每条转发项都指明到达某网段或某主机的报文应通过路由器的哪个物理接口或逻辑接口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。
FIB表的匹配遵循最长匹配原则。查找FIB表时,报文的目的地址和FIB中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表项中的网络地址则匹配。最终选择一个最长匹配的FIB表项转发报文。
例如,一台路由器上的路由表如下:
Routing Tables:
Destination/Mask Proto Pre Cost Flags NextHop Interface
0.0.0.0/0 Static 60 0 D 192.168.0.2 GigabitEthernet1/0/0
10.8.0.0/16 Static 60 3 D 192.168.0.2 GigabitEthernet1/0/0
10.9.0.0/16 Static 60 50 D 172.16.0.2 GigabitEthernet3/0/0
10.9.1.0/24 Static 60 4 D 192.168.0.2 GigabitEthernet2/0/0
10.20.0.0/16 Direct 0 0 D 172.16.0.1 GigabitEthernet4/0/0
一个目的地址是10.9.1.2的报文进入路由器,查找对应的FIB表。
FIB Table:
Total number of Routes : 5
Destination/Mask Nexthop Flag TimeStamp Interface TunnelID
0.0.0.0/0 192.168.0.2 SU t[37] GigabitEthernet1/0/0 0x0
10.8.0.0/16 192.168.0.2 DU t[37] GigabitEthernet1/0/0 0x0
10.9.0.0/16 172.16.0.2 DU t[9992] GigabitEthernet3/0/0 0x0
10.9.1.0/24 192.168.0.2 DU t[9992] GigabitEthernet2/0/0 0x0
10.20.0.0/16 172.16.0.1 U t[9992] GigabitEthernet4/0/0 0x0
首先,目的地址10.9.1.2与FIB表中各表项的掩码“0、16、24”作“逻辑与”运算,得到下面的网段地址:0.0.0.0/0、10.9.0.0/16、10.9.1.0/24。这三个结果可以匹配到FIB表中对应的三个表项。最终,路由器会选择最长匹配10.9.1.0/24表项,从接口GE2/0/0转发这条目的地址是10.9.1.2的报文。
五、路由协议的优先级
对于相同的目的地,不同的路由协议(包括静态路由)可能会发现不同的路由,但这些路由并不都是最优的。事实上,在某一时刻,到某一目的地的当前路由仅能由唯一的路由协议来决定。为了判断最优路由,各路由协议(包括静态路由)都被赋予了一个优先级,当存在多个路由信息源时,具有较高优先级(取值较小)的路由协议发现的路由将成为最优路由,并将最优路由放入本地路由表中。
路由器分别定义了外部优先级和内部优先级。外部优先级是指用户可以手工为各路由协议配置的优先级,缺省情况下如下表1所示。
表1 路由协议缺省时的外部优先级 |
|
路由协议的类型 |
路由协议的外部优先级 |
Direct |
0 |
OSPF |
10 |
IS-IS |
15 |
Static |
60 |
RIP |
100 |
OSPF ASE |
150 |
OSPF NSSA |
150 |
IBGP |
255 |
EBGP |
255 |
其中,0表示直接连接的路由,255表示任何来自不可信源端的路由;数值越小表明优先级越高。
除直连路由(DIRECT)外,各种路由协议的优先级都可由用户手工进行配置。另外,每条静态路由的优先级都可以不相同。
路由协议的内部优先级则不能被用户手工修改,如下表2所示。
表2 路由协议内部优先级 |
|
路由协议的类型 |
路由协议的内部优先级 |
Direct |
0 |
OSPF |
10 |
IS-IS Level-1 |
15 |
IS-IS Level-2 |
18 |
Static |
60 |
RIP |
100 |
OSPF ASE |
150 |
OSPF NSSA |
150 |
IBGP |
200 |
EBGP |
20 |
选择路由时先比较路由的外部优先级,当不同的路由协议配置了相同的优先级后,系统会通过内部优先级决定哪个路由协议发现的路由将成为最优路由。
例如,到达同一目的地10.1.1.0/24有两条路由可供选择,一条静态路由,另一条是OSPF路由,且这两条路由的外部优先级都被配置成5。这时路由器系统将根据上表2所示的内部优先级进行判断。因为OSPF协议的内部优先级是10,高于静态路由的内部优先级60。所以系统选择OSPF协议发现的路由作为最优路由。
六、路由的度量
路由的度量标示出了这条路由到达指定的目的地址的代价,通常以下因素会影响到路由的度量。
1、路径长度
路径长度是最常见的影响路由度量的因素。链路状态路由协议可以为每一条链路设置一个链路开销来标示此链路的路径长度。在这种情况下,路径长度是指经过的所有链路的链路开销的总和。
距离矢量路由协议使用跳数来标示路径长度。跳数是指数据从源端到目的端所经过的设备数量。
例如,路由器到与它直接相连网络的跳数为0,通过一台路由器可达的网络的跳数为1,其余以此类推。
2、网络带宽
网络带宽是一个链路实际的传输能力。
例如,一个10千兆的链路要比1千兆的链路更优越。虽然带宽是指一个链路能达到的最大传输速率,但这不能说明在高带宽链路上路由要比低带宽链路上更优越。比如说,一个高带宽的链路正处于拥塞的状态下,那报文在这条链路上转发时将会花费更多的时间。
3、负载
负载是一个网络资源的使用程度。计算负载方法包括CPU的利用率和它每秒处理数据包的数量。持续监测这些参数可以及时了解网络的使用情况。
4、通信开销
通信开销衡量了一条链路的运营成本。尤其是只注重运营成本而不在乎网络性能的时候,通信开销则就成了一个重要的指标。
七、负载分担与路由备份
当多条路由的路由优先级和路由度量都相同时,这几条路由就称为等价路由,多条等价路由可以实现负载分担。当这几条路由为非等价路由时,就可以实现路由备份。
1、负载分担
路由器支持多路由模式,即允许配置多条目的地相同且优先级也相同的路由。当到达同一目的地存在同一路由协议发现的多条路由时,且这几条路由的开销值也相同,那么就满足负载分担的条件。
当实现负载分担时,路由器根据五元组(源地址、目的地址、源端口、目的端口、协议)进行转发,当五元组相同时,路由器总是选择与上一次相同的下一跳地址发送报文。当五元组不同时,路由器会选取相对空闲的路径进行转发。

图1 负载分担组网图
如上图1所示,RouterA已经通过接口GE1/0/0转发到目的地址10.1.1.0/24的第1个报文P1,随后又需要分别转发报文到目的地址10.1.1.0/24和10.2.1.0/24,其转发过程如下:
当转发到达10.1.1.0/24的第2个报文P2时,发现此报文与到达10.1.1.0/24的第1个报文P1的五元组一致。所以之后到达该目的地的报文都从GE1/0/0转发。
当转发到达10.2.1.0/24的第1个报文P1时,发现此报文与到达10.1.1.0/24的第1个报文P1的五元组不一致。所以选取从GE2/0/0转发,并且之后到达该目的地的报文都从GE2/0/0转发。
2、路由备份
路由备份功能,可以提高网络的可靠性。用户可以根据实际情况,配置到同一目的地的多条路由,其中一条路由的优先级最高,作为主路由,其余的路由优先级较低,作为备份路由。
正常情况下,路由器采用主路由转发数据。当主链路出现故障时,主路由变为非激活状态,路由器选择备份路由中优先级最高的路由转发数据。这样,也就实现了主路由到备份路由的切换。当主链路恢复正常时,由于主路由的优先级最高,路由器重新选择主路由来发送数据。这样,就实现了从备份路由回切到主路由。



本文地址:http://www.023wg.com/lypz/87.html
版权声明:若无注明,本文皆为“Swiers思唯网络博客”原创,转载请保留文章出处。

