HCNP路由交换学习指南--- 静态路由

98 篇文章 1 订阅
46 篇文章 2 订阅

HCNP路由交换学习指南— 静态路由


静态路由 Static Route 是网络管理员通过手工配置的方式为路由器创建的路由;

静态路由的基本概念

路由器能够自动发现直连路由并将其加载到路由表中,而对于到达非直连网络的路由,路由器就必须通过其他途径来获取,静态路由是一种最直接、最简单的方法。所谓静态路由,也就是网络管理员使用手工配置的方式为路由器添加的路由,通俗的说法是,网络管理员通过手工配置的方式告诉路由器:“你要到达目的地X,需把数据包从接口Y扔出去给下一跳Z”。在网络中部署静态路由后,网络设备之间无需交互特别的协议报文(不像动态路由协议那样)。

在下图所示的网络中,PC 配置了网卡ip 和默认网关,初始情况下,R1 和 R2 都会自动学习直连接口所在网段的路由,并将对应路由加载到路由表上去;

R1 的路由表如下:

从上述截图可以发现,这里仅仅发现了直连的路由;
R2的路由表也是类似;只有直连的路由,由于R1和R2是直连的,可以通信;
而当PC1要发送数据给PC2时,它通过将目的IP地址(PC2的IP地址为192.168.2.1)与本地网卡的IP地址及网络掩码进行运算,发现该目的IP地址是本地网段之外的一个地址,因此它意识到需要将发往PC2的报文先发送给自己的默认网关,由于PC1的默认网关被设置为R1的GE0/0/1接口的IP地址,于是PC1将数据包发送给R1。当R1收到这个数据包后,它在自己的路由表中查询报文的目的IP地址,结果发现并没有能够匹配该地址的路由条目,因此数据包被丢弃。显然,到目前为止PC1是无法与PC2互访的。那么如何才能够使得R1正常地转发这个数据包呢?当然需要R1的路由表中拥有相关的条目来做指示才行。最简单的一种方式是使用手工配置的方式为R1添加到达192.168.2.0/24的路由条目,也就是为R1创建一静态路由。静态路由的配置:

[R1]ip route-static 192.168.2.0 24 GigabitEthernet 0/0/0 192.168.12.2

在设备的系统视图下,使用iproutestatic命令即可为其创建静态路由。上面的命令将为R1的路由表添加一条静态路由,这条静态路由的目的网络地址及掩码长度为192.168.2.0/24,出接口为GE0/0/0且下一跳IP地址是192.168.12.2。这条命令等同于

ip route-static 192.168.2.0 255.255.255.0 GigabitEthernet 0/0/0 192.168.12.2

于是R1的路由表变成了:

由于通信需要双向都可到达,所以还需要在R2 上添加类似路由,保证回程流量可以正常返回;

如下会有个人在模拟器上的实操模拟操作:
模拟器上实操模拟该配置;

R1 添加静态路由:

[R1]ip route-static 192.168.2.0 255.255.255.0 GigabitEthernet 0/0/1 192.168.12.2
[R1]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.1.0/24  Direct  0    0           D   192.168.1.1     GigabitEthernet
0/0/0
    192.168.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
  192.168.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
    192.168.2.0/24  Static  60   0           D   192.168.12.2    GigabitEthernet
0/0/1
   192.168.12.0/24  Direct  0    0           D   192.168.12.1    GigabitEthernet
0/0/1
   192.168.12.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
 192.168.12.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

[R1]

R2 添加静态路由:

[R2]ip route-static 192.168.1.0 255.255.255.0 GigabitEthernet 0/0/0 192.168.12.1
[R2]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.1.0/24  Static  60   0           D   192.168.12.1    GigabitEthernet
0/0/0
    192.168.2.0/24  Direct  0    0           D   192.168.2.1     GigabitEthernet
0/0/1
    192.168.2.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
  192.168.2.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
   192.168.12.0/24  Direct  0    0           D   192.168.12.2    GigabitEthernet
0/0/0
   192.168.12.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
 192.168.12.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

[R2]


两端 PC上 测试连通性,可以正常ping 通,路由配置成功;

静态路由配置须知

在创建静态路由时,关于下一跳IP地址和出接口的配置,有几个细节需要注意;
针对不同的出接口类型,静态路由的配置要求是不同的。
(1)如果出接口为BMA(Broadcast Multiple Access,广播型多路访问)类型,则静态路由需指定下一跳IP地址。以太网接口就是一种非常典型的BMA类型的接口,BMA接口接入一个广播网络,该网络中往往还同时接入了多台设备,因此如果仅仅为静态路由指定出接口,那么路由器将无法判断究竟该将数据包发往哪一个下一跳设备。

在图1-8中,R1及R2通过GE0/0/0接口连接到一台以太网交换机上,现在我们要为R1配置一条到达2.2.2.0/24的静态路由,由于R1的出接口GE0/0/0是一个BMA接口,因此根据要求必须在该静态路由中指定下一跳IP地址,所以可以使用如下配置:

或者如下配置:

以上两种方式都指定了具体的下一跳IP地址,因此都是可行的。而如果将静态路由改写为:

那么R1 可能就无法到达2.2.2.0/24 了;

正如上面所说,它并不知道要将到达该网段的报文转发给哪一个下一跳设备。这里其实存在一个有趣的细节,在完成上面这条静态路由的配置后,R1会认为2.2.2.0/24这个网段从自己的GE0/0/0接口出去即可到达,换句话说,R1认为该目标网段是GE0/0/0接口的直连网段,加上该接口是一个BMA接口,因此,当R1转发到达2.2.2.0/24的数据包时(例如到达2.2.2.2),会从该接口广播ARP Request报文,用于查询处于本地直连网段中的(至少R1是这么认为的)2.2.2.2的MAC地址。R2会收到这个ARPRequest,缺省情况下它是不会回应的,毕竟R2的GE0/0/0接口的IP地址不是2.2.2.2。所以,此时R1无法将目的IP地址为2.2.2.2的数据包转发出去(因为它无法获得关于2.2.2.2的MAC地址)。这也是为什么要求当静态路由的出接口为BMA接口时必须为该路由指定下一跳IP地址的原因。当然在这个场景中可以通过一个小伎俩来解决R1配置了上述静态路由后到2.2.2.0/24不可达的问题,那就是在R2的GE0/0/0接口上激活ARP代理(ARP-Proxy)功能:

R2完成上述配置后,GE0/0/0接口激活了ARP代理功能,当该接口再收到R1发送的,用于请求2.2.2.2 的ARP request ,并以自己的GE0/0/0几口mac地址(替代2.2.2.2对应的真实mac地址)来进行回应;这样R1 会增加ARP 表项。然后R1转发目的地址是2.2.2.2 的数据时,将数据帧的目的MAC设置为R2的GE0/0/0 接口MAC,然后发送出去;R2收到后,数据帧解开,解析数据包ip头部中的目的地址进行路由查询,就直接发送到本地直连的网段中了;有些像ARP欺骗;
上述方法虽然可行,但不推荐;
所以:当前出接口为BMA接口时,在配置静态路由时需指定下一跳地址;

(2)如果出接口为P2P(Point-to-Point,点对点)类型,则静态路由仅需指定出接口;

如图1-8 中,R1安装了一个广域网接口卡和R4 直连,链路两端接口都采用PPP封装;那R1 的1/0/0 是一个典型的P2P接口;如果要配置静态路由,使其到达4.4.4.0/24,则:

R1 仅需在该静态路由中指定出接口即可,也可以指定出接口及下一跳IP地址;

(3)如果出接口为NBMA(Non-Broadcast Multiple Access,非广播多路访问 )类型,静态路由需指定下一跳IP地址;

采用帧中继(Frame Relay)封装的接口是一种典型的NBMA类型接口,这种接口同样能够连接一台或多台设备,但是并不支持广播。

默认路由


OR上配置静态路由;

ip route-static 0.0.0.0 0.0.0.0 200.1.1.1

命令为OR创建了一条静态的默认路由,该路由的下一跳为200.1.1.1(OR到达Internet的下一跳IP地址)。借助这条路由,路由器能够将访问Internet的数据转发出去。

如果目的地址是10.11 or 10.12 or 10.13 匹配到后面几条精确路由;(根据最长前缀匹配规则)根据掩码进行匹配;

默认路由在路由表中的优先级是最低的,只有当匹配不到其他具体路由规则后,才会匹配到默认路由;

默认路由在实际的项目中有着广泛的应用。当然,默认路由不仅可以通过静态的方式实现,动态路由协议同样支持默认路由的动态下发。

浮动静态路由


如果R2 希望通信 10.9.9.0/24 ,R2 上配置了,通过R1 和 R3 的2条静态路由;如下:

采用如上方法配置路由后,由于2条路由的开销和权重(默认60)是一样的,会在路由表上下发2条路由信息;

这种被称为 路由的等价负载分担。
负载分担带来的利好是路由器能够在多条路径上进行流量的分担,从而避免某条链路带宽消耗过大而其他链路空载的情况,提高了链路的利用率。

但是在某些情况下,我们可能会希望R2发往10.9.9.0/24的流量始终走单边(如R1),当R1宕机或R1—R2之间的互联链路发生故障时,R2能够自动将流量切换到R3,这该如何实现?
通过部署浮动静态路由(Floating Static Route)可以实现该诉求;
在配置路由时,指定优先级,如下:

如此,两条路由规则中,优先级小的路由将会加载和显示到路由表信息中,而优先级80 的路由规则,会被“隐藏”起来,暂时看不到;

当R1-R2 链路或 GE 0/0/1 接口出现故障,会将优先级为80的路由规则重新加载出来(浮动静态路由由此得来),路由匹配GE0/0/2 口,走R3 到到目的端;

所以浮动静态路由是一种不错的路由备份机制,在某种程度上提高了静态路由的灵活度,在实际的网络部署中有着广泛应用。一个典型的例子就是在拥有多出口的网络中部署出口路由,例如一个园区网的出口路由器连接着A、B两个运营商提供的出口链路,我们希望内网外出的流量默认走A运营商提供的出口,当该出口发生故障时,则自动切换到B运营商提供的出口。要实现这个需求,可以在出口路由器上配置两条默认路由,并将指向B运营商的那条默认路由的优先级值调得稍微大一些。

案例,静态路由和BFD联动

静态路由无法根据拓扑的变化做出动态响应;

如图,在R1 和 R2 之间加入一台交换机设备,该设备在该环境中不做配置,只做数据帧的透传的作用;

如果只进行了浮动静态路由的配置(上节所说配置),当R2 G0/0/0 端口故障 或 R2 到SW 这段链路故障,R2会把GE0/0/0 状态为Down ,路由会切换到 R2 指向 R3 的链路进行通信,完成切换;

但如果是 SW 到 R1 的链路出现故障,或 R1 出现故障,但R2 在这种场景下,无法感知到,仍然使用指向R1的路由,就会出现问题,无法访问到 目的端 10.9.9.0/24 ,流量中断;

造成上述问题的根本原因是,静态路由无法感知到网络拓扑的变化并作出动态响应。
有一些技术或机制可以改良静态路由以便解决上述问题,BFD(Bidirectional Forwarding Detection,双向转发检测)就是这类技术之一。实际上,BFD是一种实现网络可靠性的机制,它可被用于快速检测网络中的链路状况、IP可达性等。BFD可以与多种协议或机制进行联动,以确保它们更加可靠地工作,例如静态路由、OSPF、ISIS、BGP、VRRP、PIM及MPLSLSP等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值