Home

zhangyiqun

Thoughts, stories and ideas.

Notes Blog Archives About
19 Mar 2009

shell实现双线路由切换

原理:网关有两条线路接入,一条是CNC网通光纤,网关是10.0.0.1 ,另一条是 TEL 电信 ADSL2 兆 ,网关是 20.0.0.1 。网通线路为主,电信线路为后备、当网通线路不通时,要立即切换到备用线路上,之后当网通线路恢复之后还要立刻切换到网通线路上。

注意事项:

1)侦测一方路由同断与否

2)自动切换后还可以在路由恢复后自动切回

  #!/bin/bash

    trap ‘echo “Bye;exit 1;”‘ 1 2 9 15

     while :

        do

           while ping -c 1 10.0.0.1 &> /dev/null

            do

               sleep 2        #休息2秒钟

            done

            ping -c 1 20.0.0.1 &> /dev/null

            if [ $? -ne 0 ]

            then

               echo “路由全部中断”

                continue    #退出后从新执行脚本

             fi

            route del default

            route add default gw 20.0.0.1

            echo “默认路由已经切换到20.0.0.1”

            until ping -c 1 10.0.0.1 &> /dev/null

            do

                sleep 2

            done

            route del default

            route add default gw 10.0.0.1

            echo “默认路由已经切换到10.0.0.1”

      done

Notes Blog Archives About