【防火墙技术连载42】强叔侃墙 出口选路篇 就近选路——缺省路由有备无患,明细路由近路建功

[复制链接]
发表于 : 2014-12-16 10:27:42 最新回复:2015-07-10 14:10:08
12696 24
强叔侃墙
强叔侃墙 官方号

大家好,经过前面这么多篇的积累,相信大家对防火墙的技术知识已经有了一定的了解。从今天开始,强叔将和大家一起探索防火墙出口选路的相关知识,希望能给大家带来一些收获。
在强叔的第一篇贴子“什么是防火墙”中我们提到,防火墙主要部署在网络边界起到隔离的作用,虽然隔离了内外网,但防火墙也承担起内网与外网互联的作用,内网和外网交互的流量都要经过防火墙来转发。然而,在实际场景中,企业出于带宽和可靠性的要求,会向多个ISP租用多条Internet链路带宽资源,处于出口位置的防火墙就有多个出口链路连接到Internet,如何给用户流量选择合适的出口链路将是企业网络管理员需要考虑的问题。
为此,强叔也专门总结了防火墙做为企业出口网关时面对多出口环境的几种常用选路方式。首先,让我们从缺省路由+明细路由的就近选路方式开始说起。

1  缺省VS明细

何为就近选路?顾名思义为选择较近的路,在多出口网络中指的是报文选择离目标网络花销较小的链路进行转发。那报文是如何选择花销较小的链路转发的呢?通过缺省路由和明细路由即可实现。下面,强叔通过解答几个问题的方式先来介绍缺省路由和明细路由的一些基本概念,帮助大家理解。

第一个问题:什么是缺省路由,缺省路由是属于静态路由吗?

其实缺省路由是一种特殊的路由,可以通过静态路由配置,也可以是动态路由生成,如OSPF和IS-IS。所以确切的说,缺省路由不属于静态路由。在路由表中,缺省路由以目的网络为0.0.0.0、子网掩码为0.0.0.0的形式出现。下面为路由表中的缺省路由。

[FW] display ip routing-table                                                    
Route Flags: R - relay, D - download to fib                                   
------------------------------------------------------------------------------ 
Routing Tables: Public                                                          

        Destinations : 1       Routes : 2                                     

Destination/Mask    Proto    Pre  Cost       Flags NextHop         Interface      
        0.0.0.0/0          Static     60    0           RD     10.1.1.2          GigabitEthernet2/2/21 
                                  Static     60    0           RD     10.2.0.2          GigabitEthernet2/2/17

如果数据报文的目的地址不能与任何路由相匹配,那么系统将使用缺省路由转发该数据报文。

第二个问题:什么是明细路由?

强叔认为,明细路由是相对来说的,相对缺省路由,在路由表中的其他路由都属于明细路由,如10.1.0.0/16、192.168.1.0/24相对缺省路由都属于明细路由。相对有10.1.0.0/16这条汇总路由,10.1.1.0/24、10.1.2.0/24、10.1.3.0/24这三条路由都属于它的明细路由。明细路由与路由协议类型无关,可以是静态路由配置的,也可以是动态路由协议生成的。

第三个问题:报文是如何查找路由表的?

可能大家都知道,报文查找路由表时是按照最长匹配原则进行查找,什么意思呢?举个例子,路由表中有10.1.0.0/16、10.1.1.0/24和0.0.0.0/0三条路由,当目的地址为10.1.1.1/30的报文查找路由表时,最终匹配的路由将是10.1.1.0/24这条路由,因为前面的24位与这个报文的目的地址一致,为匹配路由中最长。如果是目的地址为192.168.1.1/30的报文查找路由表,则只能匹配0.0.0.0/0这条缺省路由了,因为报文的目的地址不能与任何明细路由相匹配,最终系统将使用缺省路由转发该报文。

从上面的问题中我们可以了解到,当路由表中有明细路由时,报文是先匹配明细路由,如果没有明细路由再查找缺省路由。

下面我们来看第四个问题:多条缺省路由间是如何选路的?

我们先来看下面一个组网,在防火墙上我们配置两条缺省路由,一个下一跳指向R1,一个下一跳指向R2,现在我们在PC上ping目标网络上的两个服务器地址。

 

 

两条缺省路由在防火墙上配置如下:

[FW] ip route-static 0.0.0.0 0 10.1.1.2

[FW] ip route-static 0.0.0.0 0 10.1.2.2

通过在FW1的GE0/0/3接口上抓包发现报文都是从GE0/0/3接口进行转发,截图如下:

 

 

 

 

为什么出现这种情况呢?两条缺省路由不进行负载分担吗?事实上,多条缺省路由在选路的时候是根据源IP地址+目的IP地址的HASH算法来算出报文具体走哪条链路的,这种算法主要是看报文的源IP地址和目的IP地址,地址不同,计算出的结果也会不相同。这种算法下,等价缺省路由之间转发报文的机会是均等的。举个例子,如果报文的源IP地址相同,目的地址是相邻的,如10.1.1.1和10.1.1.2,那么选路的时候,将会各分担一条流进行转发。然而,由于网络中访问流量的源和目的地址是随机的,所以HASH计算结果完全不可控。这个时候虽然多条缺省路由是等价路由,也有可能出现所有报文都从一条链路转发的情况。这个结果也印证了上面举例中报文都从GE0/0/3接口转发的原因。

好了,前面说的都是一些基础知识,现在让我们来看看缺省路由+明细路由的就近选路方式是如何就近选路的。先看一个简单的网络环境,如下图所示。

 

 

当企业内网用户访问外网服务器Server时,报文途经防火墙有两条路径,正常情况下,企业一般会在出口防火墙上配置两条缺省路由,每个ISP一条。在前面我们说过缺省路由的选路是通过源IP+目的IP的HASH算法来决定数据报文的转发路径,这就有可能导致到ISPB的Server流量经过HASH算法计算后从图中的路径1进行转发了,这样从路径1到ISPA,再经过ISPA到ISPB,绕一大圈后才能到能最终目的地,严重影响了转发效率和用户体验。

那有什么办法让报文不绕道呢?通过配置明细路由即可达到要求,前面我们也说过,报文是优先匹配明细路由的,没有匹配的明细路由再去查找缺省路由的。就上面的组网,我们可以配置到Server的明细路由,下一跳指向ISPB,这样报文匹配到这条明细路由后就不会绕道转发了,而是选择明细路由指定的链路,从图中看,选择的是两条路径中的最短路径,这就是我们所说的就近选路了。我们也可以通过第一个组网验证一下。我们在防火墙上配置如下两条静态路由:

[FW] ip route-static 10.10.10.10 255.255.255.255 10.1.1.2(下一跳为R2地址)

[FW] ip route-static 10.10.11.11 255.255.255.255 10.1.2.2(下一跳为R3地址)

通过在FW1的GE0/0/3接口上抓包发现只有去往10.10.10.10的报文。

 

在FW1的GE0/0/2接口上抓包发现有去往10.10.11.11的报文。

 

 这就证明,报文是优先查找刚配置的两条明细路由。然而在实际组网环境中,Internet上的Server是非常多的,作为管理员在出口网关防火墙上配置那么多的明细路由是不现实的,那有没有一种方便快捷的方法配置明细路由呢?这就要我们的ISP路由功能出场了。那什么是ISP路由呢?

2  ISP路由

ISP路由,从名字来看有一个ISP,其实也是它的由来。每个ISP都会有自己的公网知名网段,如果把这个ISP的所有公网知名网段都像上面说的一样配置成明细路由,那么去往这个ISP的所有报文都不会绕路转发了。那如何把ISP的公网知名网段变成明细路由呢?

首先管理员需要先收集ISP内的所有公网网段(网上都能够搜索到),然后把地址网段编辑到后缀为. csv的文件中(我们称之为ISP地址文件),编辑要求按如下图所示:


 

编辑地址文件完成后,我们需要把后缀为.csv的ISP地址文件上传到防火墙的指定路径上,比如cfcard中。上传的方法有很多,比如SFTP、FTP、TFTP等。

ISP地址文件上传到防火墙后,通过设置出接口和下一跳,可以让ISP地址文件中的每个IP地址网段都生成一条ISP路由。

下面我们通过一个实验组网检验下ISP路由选路的效果,组网如下图所示:


 

在此组网中,ISPA和ISPB内的地址网段我们分别编辑在ispa.csv与ispb.csv文件中。

首先我们通过SFTP、FTP、TFTP等方式上传两个csv文件到防火墙的指定路径中。其中高端防火墙路径为cfcard:/isp/;下一代防火墙为hda1:/isp/。

完成csv文件上传后,通过相关命令设置相应出接口和下一跳,启动ISP路由功能。以高端防火墙为例配置命令如下:

[FW] isp set filename ispa.csv GigabitEthernet 2/0/1 next-hop 201.1.1.2

此外,我们还可以通过Web配置方式来配置ISP路由,这种方式更为简单,上传csv文件和导入配置通过一步就可以完成。我们以USG9000为例,导入方式如下:


 

 

ispb.csv的导入方法与ispa.csv一致,只是出接口和下一跳改成GE2/0/2和202.1.1.2。

导入完成后,防火墙会生存如下路由:

Destination/Mask    Proto  Pre  Cost    Flags NextHop         Interface       

      210.1.1.1/32  ISP    60   0      D   201.1.1.2         GigabitEthernet2/0/1 

      210.1.1.2/32  ISP    60   0      D   201.1.1.2         GigabitEthernet2/0/1 

      210.1.1.3/32  ISP    60   0      D   201.1.1.2         GigabitEthernet2/0/1 

      220.1.1.1/32  ISP    60   0      D   202.1.1.2         GigabitEthernet2/0/2  

      220.1.1.2/32  ISP    60   0      D   202.1.1.2         GigabitEthernet2/0/2  

      220.1.1.3/32  ISP    60   0      D   202.1.1.2         GigabitEthernet2/0/2  

内网用户访问属于ISPAServer时,报文匹配路由表后从GigabitEthernet2/0/1接口进行转发;同理,访问ISPBServer时,会从GigabitEthernet2/0/2接口进行转发。这样总是能保证从最短的路径转发到目标网络。

从上面的路由表来看,ISP路由与静态路由非常相似,在路由表中,除了协议类型为ISP外,表中其它内容与静态路由完全一样,且两种路由之间是可以互相覆盖的,如静态路由先配置,后再导入ISP路由后,路由表中此条路由的协议类型会从static变成ISP,反之亦然。但在应用中ISP路由与静态路由还是有如下区别:

  1. 静态路由是手动一条一条配置,配置文件中能够显示出来;ISP路由只能通过上面所述的方式集体导入,且配置文件中无法显示出ISP路由
  2. 静态路由可以逐条删除、增加;ISP路由只能从ISP地址文件中把地址网段删除、增加,而不能通过命令删除或增加单条ISP路由。

上面说的是管理员如何构建ISP路由的过程,实际上,防火墙在出厂的设置中已经内置了中国移动、中国电信、中国联通和中国教育网4个ISP的公网知名网段,只需要管理员执行导入即可启动ISP路由。

总结就近选路方式,其实就是三种路由的PK结果:

  • 缺省等价路由让经过防火墙的所有报文都能匹配路由转发,但无法保证报文转发选择最短链路(通过源IP地址+目的IP地址的HASH算法来选择报文转发出口)。
  • 明细路由保证访问不同ISP服务器的报文都从连接相应ISP的链路转发,达到就近访问效果,但是明细路由的手工大批量配置是困扰企业网络管理员的一个难题。
  • ISP路由则填补了明细路由难以手工大批量配置的缺点,分分钟就能搞定一个ISP所有地址网段的明细路由配置。

这三种路由各有特点,配合使用方能弥补相互之间的缺陷、发挥出每种路由的优势。配合使用时,明细路由和ISP路由用来指导报文近路转发,没有匹配到明细路由的报文通过查找缺省路由完成转发。

然而就近选路方式是以路由为基础的选路方式,大家都知道,查找路由是通过报文目的地址来查找的,那问题就来了,如果管理员希望对内网用户进行区分,让不同优先级的用户从不同链路进行转发;或者管理员想根据不同的应用来区分流量的转发链路,这些都不是我们通过目的地址查找路由能完成的。我们需要更灵活的选路机制,比如通过报文的源IP地址、应用协议类型等来区分用户流量,再对不同的用户流量进行区别转发。这个时候就需要我们的策略路由选路出场了,敬请关注下期强叔侃墙!

 

 

上一篇 双机热备篇 你所不知道的HRP

下一篇 出口选路篇 策略路由选路??多样策略择重选优,定向转发掌控先机

汇总贴

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
Cai_n
Cai_n   发表于 2014-12-29 11:19:20 已赞(0) 赞(0)

感谢分享!

  • x
  • 常规:

点评 回复

luwj
luwj  导师VIP 发表于 2014-12-16 10:38:41 已赞(0) 赞(0)

学习了,ISP路由表是机器自带的吧,有没有自动更新路由表的机制啊。                                                  
  • x
  • 常规:

点评 回复

Cai_n
Cai_n   发表于 2014-12-16 10:40:23 已赞(0) 赞(0)

先顶,后学习!

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-12-16 10:43:22 已赞(0) 赞(0)

回复 2 楼

是的,只能通过更新防火墙上的内置文件,如修改、增加或删除地址网段等,才能刷新路由表。

  • x
  • 常规:

点评 回复

luwj
luwj  导师VIP 发表于 2014-12-16 10:44:03 已赞(0) 赞(0)

回复 4 楼

哦、没有像AV IPS 可以在线更新。 - -,                        
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-12-16 10:49:05 已赞(0) 赞(0)

确实要是能像楼上说的能够自动更新就更牛了~
  • x
  • 常规:

点评 回复

Y_GH
Y_GH   发表于 2014-12-16 10:49:42 已赞(0) 赞(0)

 感谢分享~

狂顶强叔!

  • x
  • 常规:

点评 回复

POZHENZI
POZHENZI  新锐 发表于 2014-12-16 11:00:01 已赞(0) 赞(0)

isp路由试过,挺不错的!
  • x
  • 常规:

点评 回复

kmyd
kmyd  大师 发表于 2014-12-16 11:37:17 已赞(0) 赞(0)

文件只能自己导入了!!
  • x
  • 常规:

点评 回复

123
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录