系统集成论坛

标题: ICMP Echo路由器网络备份功能(1) [打印本页]

作者: laveseo    时间: 2011-6-23 15:09
标题: ICMP Echo路由器网络备份功能(1)
1. 概述
网络备份功能中,通过ICMP Echo实时监测网络的状态,发生某种故障时,路由器vpn自动切换该网络相应的路由从而避开故障。并且,故障消除时,自动恢复为原来的路由。

使用网络备份功能,可以不使用动态路由控制协议就能构建避开故障路由的结构。因此,据点数量多,无法确保动态路由控制协议处理所需的 CPU负载及网络带宽时,能够提供网络的备份解决方案。

另外,原来的备份功能中识别每个线路的故障,而网络备份功能中识别每个网络的故障,因此,在IP-VPN及广域以太网的备份解决方案中,实现了不影响没有故障据点的通信,而只切换发生故障的路由。

2. 到达性的检测
能够确认对于特定终端或路由器的到达性。使用这个功能要设置 ip keepalive命令。这个命令的格式如下所示。

ip keepalive命令
... 网络监测功能的设置


[输入格式]
ip keepalive 号码 种类 发送间隔 发送次数 IP地址 [IP地址 ... ] [选项 ... ]
no ip keepalive 号码

[参数]
号码 ... 这个命令的识别号码
1..100
种类 ... 监测的方式 (目前只能设置1种)
icmp-echo ... 使用ICMP Echo
发送间隔 ... 发送的次数
1..65535
发送次数 ... 判断为无到达性之前发送的次数
3..100
IP地址 ... 接收方的IP地址
选项 (种类=值)
种类 值 说明
log 'on' / 'off' 是否输出syslog
upwait 1..1000000[秒] 判断为有到达性之前的待机时间  
downwait 1..1000000[秒] 判断为无到达性之前的待机时间  

[说明]
对指定的IP地址发送ICMP Echo, 判断是否能够收到它的回复。
[默认值]
log ... off
upwait ... 5[秒]
downwait ... 5[秒]

对所指定的IP地址发送ICMP Echo,在所指定的发送间隔内收到回复(ICMP Echo Reply)则认为“成功”,未收到则认为“失败”。而且,如果连续“失败”次数达到发送次数中指定的次数,则视为对该IP地址无到达性。反过来,只要有一次成功,就是为对该IP地址有到达性。

一个命令中能够设置多个IP地址。设置了多个IP地址时,调查各个IP地址的到达性,一个以上没有到达性时,则判断为整体没有到达性。一般设置多个IP地址的话,检测故障的条件变得严格。

一个命令中最多能够设置10个IP地址,命令最多能够设置100个(※)。因此,如果都设为上限值则能够设置1000个IP地址。但是,能够同时监测的IP地址最多限100个。设置了超过这个值的IP地址时,按照show config命令所显示的顺序,前100个有效。

(※) RTX2000中最多能够设置500个,总共最多500个有效。

线路不稳定状态下,会出现到达性频繁变化的情况,因此,能够设置为不急于判断而是观察情况。将这样“观察情况”的时间称为待机时间。

工业级3g路由器下图表示了待机时间的效果。


     (※) 有到达性的状态表示为up、无到达性的状态表示为down。

     [没有设置待机时间时]

     up和down频繁变化。

     up   -------------+  +-------+             +--+      +--------
                       |  |       |             |  |      |
     down              +--+       +-------------+  +------+

     [设置了待机时间时]

     up和down变化不太频繁。

                        *1          *2           *3         *4
                       --->       ------>       --->      ------>
     up  -------------------------------+                       +---
                                        |                       |
     down                               +-----------------------+

     *1: 待机时间结束之前为up,因此不会变成down而保持up状态
     *2: 待机时间结束后仍然没有up,因此判断为down
     *3: 待机时间结束之前为down,因此不会变成Up而保持down状态
     *4: 待机时间结束后仍然没有down,因此判断为up
设置待机时间需要设置downwait和upwait这两个选项。 downwait为没有到达性时的待机时间, upwait为恢复到达性时计时的待机时间。

3. 到达性的确认
为了确认到达性的状态,执行 show status ip keepalive命令。

[显示范例]


# show status ip keepalive

ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
   1   up  172.16.0.1                                yes     2     4
           172.16.0.2                                yes     4     4
           10.0.0.254                                yes     3     4
本例中正在监测三个IP地址。从左依次表示“ip keepalive命令的号码”“到达性状态” “监测的IP地址”“IP地址的到达性” “发送下一个ICMP Echo之前的时间” “判断为无到达性之前发送的ICMP Echo的数量”。

出现两个相当于到达性状态的值。右边显示的“yes”表示三个IP地址分别的到达性,左边显示的“up”表示对它们的综合判断。

如果,只是10.0.0.254的到达性消失,则显示如下。


# show status ip keepalive

ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
   1 down? 172.16.0.1                                yes     5     5
           172.16.0.2                                yes     3     5
           10.0.0.254                                 no     3     -
显示“down?”表示是待机状态。在这个阶段,尚未判断为到达性消失。不久,待机状态过去而这期间到达性没有恢复时,判断为到达性消失。这是显示变为“down”。


# show status ip keepalive

ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
   1 down  172.16.0.1                                yes     1     5
           172.16.0.2                                yes     4     5
           10.0.0.254                                 no     4     -
恢复时也是同样地先变为待机状态。待机状态中显示为“up?”。这个阶段尚未判断为有到达性。


# show status ip keepalive

ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
   1   up? 172.16.0.1                                yes     2     5
           172.16.0.2                                yes     5     5
           10.0.0.254                                yes     5     5
不久待机状态过去后,这期间如果到达性被保持住,则正式判断为有到达性。这时显示变为“up”。


# show status ip keepalive

ID  STATE TARGET                                  REACH TIMER COUNT
------------------------------------------------------------------------
   1   up  172.16.0.1                                yes     1     5
           172.16.0.2                                yes     4     5
           10.0.0.254                                yes     4     5
并且,在刚刚启动或者刚刚设置ip keepalive命令之后, TIMER的值可能超过设置的发送间隔。原因是为了分散发送ping的时机,而在发送间隔的两倍左右的范围内增加了该值。发送了第一个ping之后,不会超过设置的发送间隔的值。

4. 备份的实现
vpn路由器用ip keepalive命令将已确认的到达性的信息反映在路由控制中,发生故障时能够备份至备用线路。为此,用ip route命令设置keepalive选项。例如,能够进行如下设置。

[设置范例]


     ip route 172.16.0.0/24 gateway pp 10 keepalive 1 gateway pp 11
     ip keepalive 1 icmp-echo 5 5 172.16.0.1
设置keepalive选项后,在这之前所设置的网关只在有到达性时才有效。本例中, pp 10的网关只在有172.16.0.1相应的到达性时才会有效。

(※) 为了判断到达性发送ICMP Echo,这个ICMP数据包即使在网关变为无效时也会发送给原来的网关。也就是说不需要设置特别的路由。

[注意] ip route命令中设置了多个网关时,用ip keepalive命令发送的ICMP Echo数据包肯定发送给ip route命令的第一个网关。例如,以下设置中,ICMP Echo数据包肯定发送给PP1接口。


     ip route 10.0.0.0/24 gateway pp 1 gateway pp 2
     ip keepalive 1 icmp-echo 5 5 10.0.0.1
原来的实现中,如果有多个网关就会启用负载均衡的功能,不会是单纯的备份动作。因此,使weight选项中能够设置0。只要在它之前定义的网关没有变为无效, weight选项为0的网关就不会工作。

weight选项的动作差异如下所述。

[设置范例1]


     ip route 172.16.0.0/24 gateway pp 10 keepalive 1 gateway pp 11
     ip keepalive 1 icmp-echo 5 5 172.16.0.1

     正常时: 通过PP 10和PP 11实现负载均衡
     异常时: 使用PP 11
[设置范例2]


     ip route 172.16.0.0/24 gateway pp 10 keepalive 1 gateway pp 11 weight 0
     ip keepalive 1 icmp-echo 5 5 172.16.0.1

     正常时: 使用PP 10
     异常时: 使用PP 11
5. 设置方法
举例说明下图的结构下备份的设置方法。 RTX2000中不使用网络备份功能,因此只说明RTX1000的设置。


                  -----+----- 192.168.1.0/24
                       |
                       | 192.168.1.1
                    RTX2000              [中心局]
                       |
                     (ISP)
           ........................
          :                        :
          :     互联网     :
          :                        :
           ........................
              (ISP)         (ISP)
                |             |
           ADSL |             | ISDN
                +----+   +----+
                     |   |
                LAN2 |   | BRI1
                    RTX1000              [据点]
                       | LAN1
                       | 192.168.0.1
                       |
                -------+------- 192.168.0.0/24
首先设置LAN1、LAN2这两个接口。 RTX1000的LAN1接口连接至LAN, LAN2接口用ADSL连接至ISP。此条件相应的设置如下所示。


ip lan1 address 192.168.0.1/24
pp select 1
pp always-on on
pppoe use lan2
pp auth accept pap chap
pp auth myname "PPPoE的ID" "PPPoE的密码"
ppp ipcp ipaddress on
ip pp nat descriptor 1
pp enable 1

nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
接下来设置使用的ISDN线路的连接。


pp select 2
pp bind bri1
isdn remote address call "ISP的访问点的电话号码"
pp auth accept pap chap
pp auth myname "拨号连接的ID" "拨号连接的密码"
ppp ipcp ipaddress on
ip pp nat descriptor 1
pp enable 2
据点和中心局之间经过IPsec VPN进行通信,因此,添加IPsec的设置。


ipsec auto refresh on
ipsec ike always-on 1 on
ipsec ike keepalive use 1 on icmp-echo 192.168.1.1 5 4
ipsec ike local name 1 rtx@yamaha user-fqdn
ipsec ike pre-shared-key 1 text router
ipsec ike remote address 1 "SGW-IP地址"
ipsec sa policy 101 1 esp 3des-cbc sha-hmac

tunnel select 1
ipsec tunnel 101
tunnel enable 1
ip route 192.168.1.0/24 gateway tunnel 1

nat descriptor masquerade static 1 1 192.168.0.1 esp
nat descriptor masquerade static 1 2 192.168.0.1 udp 500
通过上述设置实现了基本的连接。接下来,设置备份的动作。两根线路的使用区分如下:

通常使用ADSL (使用PP1接口)
故障时使用ISDN (使用PP2接口)
ADSL中的连接正常性根据经过ADSL是否有对于中心局的路由器的到达性这一点进行判断。

监测对于中心局的路由器的ICMP Echo是否有应答
上述条件相应的设置如下所示。


ip keepalive 1 icmp-echo 10 3 192.168.1.1
ip route default gateway pp 1 keepalive 1 gateway pp 2 weight 0
这个设置中,隔10秒通过ICMP Echo进行监测,连续三次无应答时判断为异常。间隔及次数根据各自的环境进行设置。

6. 设置范例
说明下图的网络结构中的设置范例。



             192.168.0.0/24                              [中心局]
         LAN -------------+-----
                          |         192.168.10.0/24
                          |  --+-------------+----- DMZ
                     LAN1 |    | LAN3        |
                         RTX1000(C)            WWW 192.168.10.2
                     LAN2 |    | BRI1
              IP地址A |    | IP地址B
                          |    +--------------------------+
                     FTTH |                               | ISDN
          .................................     .......................
         :                                 :   :                       :
         :             IP-VPN              :   :     互联网    :
         :                                 :   :                       :
          .................................     .......................
            |         |                |              | |       |
            | +-------|----------------|--------------+ | ・・・|
            | |       | +--------------|----------------+       |
            | |       | |              | +----------------------+
            | |       | |              | |
IP地址1 | |       | |   ・・・・   | |
        RTX1000(1) RTX1000(2)       RTX1000(8)        ※据点端的访问线路
             |.1       |.1              |.1             主控: ADSL
             |         |                |               备份: ISDN
         ----+----  ---+-----        ---+------
    192.168.1.0/24  192.168.2.0/24    192.168.8.0/24

     [据点1]        [据点2]  ・・・・  [据点8]

这个结构中,通常使用IP-VPN连接中心局与据点之间,发生故障时,经由互联网通过IPsec VPN连接。原来的固件中需要使用BGP,但是如果使用网络备份功能,则只要设置静态路由即可运用。
内容提供: http://www.rtpro.yamaha.co.jp/china/     转载时请保留此链接,请遵重原创,谢谢合作!




欢迎光临 系统集成论坛 (http://bbs.xtjc.com/) Powered by Discuz! X3.1