今天,和客户约好了时间,打算远程协助客户,进入客户的FortiGate防火墙进行配置的测试,目前客户的应用如下:
    客户拥有2条线路,一条走专线,一条走ADSL。客户之前一直使用专线,没有接上ADSL线路,现在反映问题就是接上ADSL后,×××会用不了,断了ADSL就马上可以。
    通常多WAN口接上ADSL有2种方法:(假设专线用的是WAN1口,走ADSL的为WAN2口)
   【1】用防火墙内置的PPPoE进行拨号上网
   【2】用路由器进行拨号,路由器的内网口接上防火墙的WAN2口。(模拟专线那样)
    第一种方法防火墙会自动获取IP并把公网IP分配到WAN2口上,并生成一条默认路由。
    第二种方法就是防火墙拥有固定IP(此IP和路由器的内口同一个网段,用私有IP互联起来)
    注意,该方法下防火墙的WAN2口IP段不能和防火墙内口网段相同,否则出问题的,防火墙必须手动配置一条指向路由器内口的下一跳路由。
    首先采用第2种方法接ADSL,路由表里产生了2条默认路由,默认管理都为10,它们都在当前的路由表里。我把ADSL线路的默认路由管理距离设置为30,专线的默认路由默认为10不动它,然后FortiGate的当前路由表里只会把管理距离小的加进去,大的则不会显示在当前路由表里,问题就出现了,现在ADSL线路就不能跑了。×××能用了,把专线默认路由改大了,就ADSL能跑了。看起来好像是互相排斥的,难道专线和ADSL不能共存吗?那给我2个WAN有什么用啊??继续想想,我开始
    怀疑问题所在了,客户目前的是IPSec ×××,回想起以前自己在Cisco 上配置过的过程,只需要满足2个基本路由条件就可以建立隧道,不需要加默认路由,假设本地用公网固定IP:1.1.1.1,内网是192.168.1.0/24 ;对端公网固定IP为2.2.2.2 ,内网是192.168.0.0/24 。
    【1】防火墙到2.2.2.2的路由
    【2】防火墙到192.168.0.0/24的路由(这个路由通常在×××的IKE设置里已经指定好,建立后2端则可以互通,当某些防火墙好像也需要在路由表里手动加上这个路由)
    因为如果防火墙没有到2.2.2.2的路由,那么就不能激活×××的连接,用默认路由也可以,但在这种双出口的环境下,可能会出现问题,最好不要用默认路由,加个静态路由,管理距离设置和ADSL的默认路由一样,2者则可以共存在路由表里也可以不会互相排斥,这样做则可以保证隧道能建立和ADSL能跑起来。
    经过了反复的设置和排错,最后则发现这个问题的存在。估计其它的UTM防火墙也大概差不多一样的,如果2条默认路由出问题则大家可以尝试用上面的方法,用静态路由来看看,让路由表只存在一条默认路由,因为FortiGate防火墙的静态路由优先级比默认路由高,一条静态路由走×××,一条默认路由走ADSL,可以理解为,当所有不是走×××的数据,默认都丢到ADSL线路的默认网关上。这样处理后,则可以按客户的业务应用区分开来,最后加上个策略路由则ok了
    还有一点注意不要搞混,FortiGate的防火墙选项里的策略是针对服务的应用,例如ping,ftp,http等进行策略的,优先级比路由策略应该高,因为必须满足这些条件,防火墙才能让数据包通过,如果数据包不给通过,那么怎么厉害的路由策略都是白设置的,不信大家可以试试看。
    这次的收获好大,对FortiGate防火墙有了更深的认识了。估计其它的UTM产品都是大同小异的了。写的比较含糊可能,欢迎FortiGate高手批评指正。