目录
一、路由基础
以太网交换机工作在数据链路层,用于在网络(网段)内进行数据转发。而企业网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发。
1、路由理论基础
路由器大概如下图的样子(并非家庭使用的路由器):
1.路由选路
路由:从源主机到目标主机对数据包选择路径的过程。
路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备。
路由器作用就是路由。是源主机到目标主机的一个互联网来转发数据包的过程。简单来说是路由器对数据包选择最佳路径得过程。
路由器收到数据包后,会根据数据包中的目的IP 地址选择一条最优的路径,并将数据包转发到下一个路由器,路径上最后的路由器负责将数据包送交目的主机。数据包在网络上的传输就好像是体育运动中的接力赛一样,每一个路由器负责将数据包按照最优的路径向下一跳路由器进行转发,通过多个路由器一站一站的接力,最终将数据包通过最优路径转发到目的地。当然有时候由于实施了一些特别的路由策略,数据包通过的路径可能并不一定是最佳的。
路由器能够决定数据报文的转发路径。如果有多条路径可以到达目的地,则路由器会通过进行计算来决定最佳下一跳。计算的原则会随实际使用的路由协议不同而不同。
2、路由原理
1. 路由表
路由表中包含了路由器可以到达的目的网络。目的网络在路由表中不存在的数据包会被丢弃。
路由器转发数据包的关键是路由表。每个路由器中都保存着一张路由表,表中每条路由表项都指明了数据包要到达某网络或某主机应通过路由器的哪个物理接口发送,以及可到达该路径的哪个下一跳路由器,或者不再经过别的路由器而直接可以到达目的地。
如下图案例中:目的地址为8.0.0.0,掩码为 255.0.0.0,相与后便可得到一个A 类的网段信息(8.0.0.0/8)。
路由表是路由器中维护的路由条目的集合,如果把路由器当作十字路口,路由表相当于路标。
路由表关键选项 | 说明 |
目的地址(Destination)
|
用来标识IP 数据包的目的地址或目的网络。
|
网络掩码(Mask)
|
IP 地址和网络掩码进行“逻辑与”便可得到相应的网段信息。
当路由表中有多条目的地址相同的路由信息时,
路由器将选择其掩码最长的一项作为匹配项。
|
输出接口(Interface)
|
指明IP 数据包将从该路由器的哪个接口转发出去。
出接口
|
下一跳IP 地址(NextHop)
|
指明IP 数据包所经由的下一跳路由器的接口地址。
|
2.路由优先级
路由器可以通过多种不同协议学习到去往同一目的网络的路由,当这些路由都符合最长匹配原则时,必须决定哪个路由优先。每个路由协议都有一个协议优先级(取值越小、优先级越高)。当有多个路由信息时,选择最高优先级的路由作为最佳路由。
如下图所示,路由器通过两种路由协议学习到了网段10.1.1.0/30 的路由。虽然RIP 协议提供了一条看起来更加近的路线,但是由于OSPF 具有更高的优先级,因而成为优选路由,并被加入路由表中。
路由类型 | 直连 Direct | OSPF | 静态 Static | 默认 s* | RIP |
管理距离值 | 0 | 10 | 60 | 60 * | 100 |
优先级排行 | d | ospf | s | s * | rip |
3.路由度量
如果路由器无法用优先级来判断最优路由,则使用度量值(metric)来决定需要加入路由表的路由。
一些常用的度量值有:
- 跳数:指到达目的地所通过的路由器数目;
- 带宽:链路的容量,高速链路开销较小;
- 时延;
- 代价;
- 负载;
- 可靠性
- ...
开销metric 值越小,路由越优先。
因此,下图示中metric = 1 + 1 = 2 的路由是到达目的地的最优路由,其表项可以在路由表中找到。
4. 建立路由表
根据比较“路由优先级”和“路由度量”,设备可以产生最优路径的IP 路由表。
根据来源的不同,路由表中的路由通常可分为以下三类:
路由类别 | 说明 |
接口路由 直连路由 |
链路层协议发现的路由
|
静态路由 |
由网络管理员手工配置的路由
|
动态路由 |
由动态路由协议发现的路由
|
3、路由转发
路由器依据路由表转发数据包。
1.最长匹配原则
路由表中如果有多个匹配目的网络的路由条目,则路由器会选择掩码最长的条目。
路由器在转发数据时,需要选择路由表中的最优路由。当数据报文到达路由器时,路由器首先提取出报文的目的IP 地址,然后查找路由表,将报文的目的IP 地址与路由表中某表项的掩码字段做“与”操作,“与”操作后的结果跟路由表该表项的目的IP 地址比较,相同则匹配上,否则就没有匹配上。当与所有的路由表项都进行匹配后,路由器会选择一个掩码最长的匹配项。
如下图所示,路由表中有两个表项到达目的网段10.1.1.0,下一跳地址都是20.1.1.2。如果要将报文转发至网段10.1.1.1,则10.1.1.0/30 符合最长匹配原则。
2.路由器转发数据包
路由器需要知道下一跳和出接口才能将数据转发出去。
路由器收到一个数据包后,会检查其目的IP 地址,然后查找路由表。查找到匹配的路由表项之后,路由器会根据该表项所指示的出接口信息和下一跳信息将数据包转发出去。
注意:路由器选择最优路由的顺序如下:
- 最长匹配原则
- 最小管理距离值
- 最小度量值
二、静态路由
静态路由是指由管理员手动配置和维护的路由。
静态路由配置简单,被广泛应用于网络中。另外,静态路由还可以实现负载均衡和路由备份。
1、静态路由
1.应用场景
静态路由是指由管理员手动配置和维护的路由。
静态路由是指由管理员手动配置和维护的路由。静态路由配置简单,并且无需像动态路由那样占用路由器的CPU 资源来计算和分析路由更新。
静态路由的缺点在于,当网络拓扑发生变化时,静态路由不会自动适应拓扑改变,而是需要管理员手动进行调整。
静态路由一般适用于结构简单的网络。在复杂网络环境中,一般会使用动态路由协议来生成动态路由。不过,即使是在复杂网络环境中,合理地配置一些静态路由也可以改进网络的性能。
2.华为路由器中配置 IP 地址
<AR1>sys
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]ip address 192.168.1.254 24
3.静态路由配置
ip route-static ip-address {mask|mask-length} interface-type interface-number [nexthop-address]
参数说明:
ip route-static 参数 | 说明 |
ip-address |
指定了一个网络或者主机的目的地址。
|
mask |
指定了一个子网掩码。
|
mask-length |
制定了前缀长度。
|
interface-type |
接口类型
|
interface-number |
接口号
|
nexthop-address |
下一跳IP 地址
|
如下图所示:
#1.告诉路由器RTB,任何前往192.168.1.0/24网络的数据包都应该被转发到下一跳地址10.0.12.1
#2.这个命令指定了出接口而不是下一跳地址。这意味着数据包将直接通过指定的物理接口发送出去,而不依赖于下一跳的IP地址。这种配置通常用于点对点连接。
#3.与第二条命令非常相似,只是使用了不同的方式来表示子网掩码(使用前缀长度/24代替完整的子网掩码255.255.255.0)。它同样指示路由器通过Serial 1/0/0接口发送前往192.168.1.0/24网络的数据包。
[RTB]ip route-static 192.168.1.0 255.255.255.0 10.0.12.1
[RTB]ip route-static 192.168.1.0 255.255.255.0 Serial 1/0/0
[RTB]ip route-static 192.168.1.0 24 Serial 1/0/0
如果使用了串口作为出接口,则可以通过参数interface-type 和interface-number(如Serial 1/0/0)来配置出接口,此时不必指定下一跳地址。
在串行网络中配置静态路由时,可以只指定下一跳地址或只指定出接口。
以太网是广播类型网络,和串行网络情况不同。在以太网中配置静态路由,必须指定下一跳地址。
配置验证
#查查看设备的IP路由表
display ip routing-table
4.负载分担
当源网络和目的网络之间存在多条链路时,可以通过等价路由来实现流量负载分担。这些等价路由具有相同的目的网络和掩码、优先级和度量值。
下图案例中RTA 和RTB 之间有两条链路相连,通过使用等价的静态路由来实现流量负载分担。
在RTB 上配置了两条静态路由,它们具有相同的目的IP 地址和子网掩码、优先级(都为60)、路由开销(都为0),但下一跳不同。在RTB 需要转发数据给RTA 时,就会使用这两条等价静态路由将数据进行负载分担。
在RTA 上也应该配置对应的两条等价的静态路由。
[RTB]ip route-static 192.168.1.0 255.255.255.0 10.0.12.1
[RTB]ip route-static 192.168.1.0 255.255.255.0 20.0.12.1
在配置完静态路由之后,可以使用 display ip routing-table
命令来验证配置结果。
[RTB]display ip routing-table
Route Flags: R - relay, D - download to fib
--------------------------------------------------------------
Routing Tables: Public Destinations : 13 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
……
192.168.1.0/24 Static 60 0 RD 10.0.12.1 GigabitEthernet 0/0/0
Static 60 0 RD 20.0.12.1 GigabitEthernet 0/0/1
5.路由备份
浮动静态路由在网络中主路由失效的情况下,会加入到路由表并承担数据转发业务。
在配置多条静态路由时,可以修改静态路由的优先级,使一条静态路由的优先级高于其他静态路由,从而实现静态路由的备份,也叫浮动静态路由。
下图案例中,RTB 上配置了两条静态路由。正常情况下,这两条静态路由是等价的。通过配置 preference 100
,使第二条静态路由的优先级要低于第一条(值越大优先级越低)。路由器只把优先级最高的静态路由加入到路由表中。当加入到路由表中的静态路由出现故障时,优先级低的静态路由才会加入到路由表并承担数据转发业务。
[RTB]ip route-static 192.168.1.0 255.255.255.0 10.0.12.1
[RTB]ip route-static 192.168.1.0 255.255.255.0 20.0.12.1 preference 100
在主链路正常情况下,只有主路由会出现在路由表中。
[RTB]display ip routing-table
Route Flags: R - relay, D - download to fib
--------------------------------------------------------------
Routing Tables: Public Destinations : 13 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
……
192.168.1.0/24 Static 60 0 RD 10.0.12.1 GigabitEthernet0/0/0
从上面的 display ip routing-table
命令的回显信息中可以看出,通过修改静态路由优先级实现了浮动静态路由。正常情况下,路由表中应该显示两条有相同目的地、但不同下一跳和出接口的等价路由。由于修改了优先级,回显中只有一条默认优先级为60 的静态路由。另一条静态路由的优先级是100 ,该路由优先级低,所以不会显示在路由表中。
当主用静态路由出现物理链路故障或者接口故障时,该静态路由不能再提供到达目的地的路径,所以在路由表中会被删除。此时,浮动静态路由会被加入到路由表,以保证报文能够从备份链路成功转发到目的地。在主用静态路由的物理链路恢复正常后,主用静态路由会重新被加入到路由表,并且数据转发业务会从浮动静态路由切换到主用静态路由,而浮动静态路由会在路由表中再次被隐藏。如下面所示:
[RTB]interface GigabitEthernet 0/0/0
[RTB-GigabitEthernet 0/0/0]shutdown
[RTB]display ip routing-table
Route Flags: R - relay, D - download to fib
--------------------------------------------------------------
Routing Tables: Public Destinations : 13 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
……
192.168.1.0/24 Static 100 0 RD 20.0.12.1 GigabitEthernet 0/0/1
2、缺省路由
1.缺省路由配置
缺省路由是目的地址和掩码都为全0 的特殊路由。
如果报文的目的地址无法匹配路由表中的任何一项,路由器将选择依照缺省路由来转发报文。
当路由表中没有与报文的目的地址匹配的表项时,设备可以选择缺省路由作为报文的转发路径。在路由表中,缺省路由的目的网络地址为0.0.0.0 ,掩码也为
0.0.0.0
。
在下图案例中,RTA 使用缺省路由转发到达未知目的地址的报文。缺省静态路由的默认优先级也是60。在路由选择过程中,缺省路由会被最后匹配。
[RTA]ip route-static 0.0.0.0 0.0.0.0 10.0.12.2
[RTA]ip route-static 0.0.0.0 0 10.0.12.2 GigabitEthernet 0/0/0
配置验证:
[RTA]display ip routing-table
Route Flags: R - relay, D - download to fib
--------------------------------------------------------------
Routing Tables: Public Destinations : 13 Routes : 14
Destination/Mask Proto Pre Cost Flags NextHop Interface
……
0.0.0.0/0 Static 60 0 RD 10.0.12.2 GigabitEthernet0/0/0
配置缺省路由后,可以使用 display ip routing-table
命令来查看该路由的详细信息。在本示例中,目的地址在路由表中没能匹配的所有报文都将通过 GigabitEthernet 0/0/0
接口转发到下一跳地址
10.0.12.2
。
两台相连的路由器不要互指缺省默认静态路由。