IPRoute路由跟踪

      当服务器有电信、移动双线时,并且都需要直接对外提供服务,服务器需要做路由跟踪。电信用户访问电信线路,并从电信网关返回;移动用户访问移动线路,并从移动网关返回。服务器主动外连,走默认网关。

      可以使用如下脚本进行配置,使用方法为:

     IpRoute editer by K.C   Date:Dec 09 2010 18:15:50
    ./IpRoute.sh [help] driver0:line:lineView:lineGateWay  driver1:line:lineView:lineGateWay
   ./IpRoute.sh [help] �O��0:�路��Q0:�路描述0:�路�W�P0 �O��1:�路��Q1:�路描述1:�路�W�P1

例:�信+移��
./IpRoute.sh eth0:TEL:TELCOME:x.x.x.x eth1:CM:CMCC:x.x.x.x

 

 

  
  
  
  
  1. #!/bin/bash 
  2. #定�x配置文件 
  3. if [ ${1} = "help" ];then 
  4.         echo -e "IpRoute editer by K.C  Date:Dec 09 2010 18:15:50\t" 
  5.         echo -e "${0} [help] driver0:line:lineView:lineGateWay driver1:line:lineView:lineGateWay\t" 
  6.         echo -e "${0} [help] �O��0:�路��Q0:�路描述0:�路�W�P0 �O��1:�路��Q1:�路描述1:�路�W�P1 \n" 
  7.         echo -e "例:�信+移��\t" 
  8.         echo -e "${0} eth0:TEL:TELCOME:x.x.x.x eth1:CM:CMCC:x.x.x.x" 
  9.         exit 
  10. fi 
  11. rtTables="/etc/iproute2/rt_tables" 
  12. GWFile="/etc/sysconfig/network" 
  13. if [ ! -f ${rtTables} ];then 
  14.         echo "${rtTables} 文件不存在,��_�JOS是否��RHEL linux ." 
  15.         exit 2 
  16. fi 
  17. scriptsPath="/root/scripts" 
  18. flushRoute="${scriptsPath}/flushRoute.sh" 
  19. if [ ! -d "${scriptsPath}" ];then 
  20.         echo -e "Make a scripts dir..\n" 
  21.         mkdir ${scriptsPath} 
  22. fi 
  23. #配置文件是否已被修改 
  24. rtTablesTemp=`tail -1 ${rtTables}|awk '{print $2}'
  25. if [ ${rtTablesTemp} != "inr.ruhep" ];then 
  26.         echo "��_�J本�C是否已做�^IPROUTE." 
  27.         exit 2 
  28. fi 
  29. if [ ! -n "${1}" ];then 
  30.         echo "��入第一�K�W卡���,如 eth0:tel:telcom:x.x.x.x" 
  31.         exit 2 
  32. else 
  33.         varCount=`echo "${1}"|awk -F":" '{print NF}'
  34.         if [ ${varCount} \< "4" ];then 
  35.                 echo -e "你�入的第一�K�W卡���(${1})有�`,�按以下格式重新�入 �O��:�路��Q:�路描述:�路�W�P .如�信�路��入 eth0:TEL:TELCOME:x.x.x.x\n" 
  36.         else 
  37.                 eth0Dr=`echo ${1}|awk -F ":" '{print $1}'
  38.                 eth0IP=`ifconfig ${eth0Dr}|grep "inet addr"|awk '{print $2}'|awk -F ":" '{print $2}'
  39.                 if [ ! -n "${eth0IP}" ];then 
  40.                         echo "�@取�O��IP失��,��z查�入��凳欠�� �O��:�路��Q:�路描述:�路�W�P ,eth0:TEL:TELCOME:x.x.x.x" 
  41.                         exit 2 
  42.                 fi 
  43.                 eth0Line=`echo ${1}|awk -F ":" '{print $2}'
  44.                 eth0LineView=`echo ${1}|awk -F ":" '{print $3}'
  45.                 eth0GW=`echo ${1}|awk -F ":" '{print $4}'
  46.         fi 
  47.  
  48. fi 
  49. if [ ! -n "$2" ];then 
  50.         echo "��入第二�K�W卡���,如 eth1:tel:telcom:x.x.x.x" 
  51.         exit 2 
  52. else 
  53.         varCount=`echo "${2}"|awk -F":" '{print NF}'
  54.         if [ ${varCount} \&lt; "4" ];then 
  55.                 echo -e "你�入的第二�K�W卡���(${2})有�`,�按以下格式重新�入 �O��:�路��Q:�路描述:�路�W�P .如移�泳�路��入 eth1:CM:CMCC:x.x.x.x\n" 
  56.         else 
  57.                 eth1Dr=`echo ${2}|awk -F ":" '{print $1}'
  58.                 eth1IP=`ifconfig ${eth1Dr}|grep "inet addr"|awk '{print $2}'|awk -F ":" '{print $2}'
  59.                 if [ ! -n "${eth1IP}" ];then 
  60.                         echo "�@取�O��IP失��,��z查�入��凳欠�� �O��:�路��Q:�路描述:�路�W�P ,eth1:CM:CMCC:x.x.x.x" 
  61.                         exit 2 
  62.                 fi 
  63.                 eth1Line=`echo ${2}|awk -F ":" '{print $2}'
  64.                 eth1LineView=`echo ${2}|awk -F ":" '{print $3}'
  65.                 eth1GW=`echo ${2}|awk -F ":" '{print $4}'
  66.         fi 
  67. fi 
  68. #�@取默�J�W�P 
  69. GW=`cat ${GWFile}|grep "GATEWAY"|awk -F "=" '{print $2}'
  70. if [ ! -n "${GW}" ];then 
  71.         echo "�@取默�J�W�P失��,��z查 ${GWFile}" 
  72.         exit 2 
  73. fi 
  74. echo -e "��_�J以下信息:\n" 
  75. echo -e "第一�K�W卡�O�涿��Q: ${eth0Dr}\t" 
  76. echo -e "第一�K�W卡IP: ${eth0IP}\t" 
  77. echo -e "第一�K�V卡�路��Q: ${eth0Line}\t" 
  78. echo -e "第一�K�V卡�路描述: ${eth0LineView}\t" 
  79. echo -e "第一�K�V卡�W�P: ${eth0GW}\n" 
  80.  
  81. echo -e "第二�K�W卡�O�涿��Q: ${eth1Dr}\t" 
  82. echo -e "第二�K�W卡IP: ${eth1IP}\t" 
  83. echo -e "第二�K�V卡�路��Q: ${eth1Line}\t" 
  84. echo -e "第二�K�V卡�路描述: ${eth1LineView}\t" 
  85. echo -e "第二�K�V卡�W�P: ${eth1GW}\n" 
  86.  
  87. echo -e "默�J�W�P: ${GW}\n" 
  88. #��建路由刷新�_本 
  89. echo "#!/bin/bash"      > ${flushRoute} 
  90. echo "ip route flush table ${eth0Line}" &gt;&gt; ${flushRoute} 
  91. echo "ip route flush table ${eth1Line}" &gt;&gt; ${flushRoute} 
  92. echo "ip route add default via ${eth0GW} dev $eth0Dr src $eth0IP table ${eth0Line}" &gt;&gt; ${flushRoute} 
  93. echo "ip rule add from ${eth0IP} table ${eth0Line}" &gt;&gt; ${flushRoute} 
  94. echo "ip route add default via ${eth1GW}  dev $eth1Dr src $eth1IP table ${eth1Line}" &gt;&gt; ${flushRoute} 
  95. echo "ip rule add from ${eth1IP} table ${eth1Line}" &gt;&gt; ${flushRoute} 
  96. chmod 755 ${flushRoute} 
  97.  
  98. printf "��入\"yes\"�_�J信息�K�绦幸韵旅�令�M行修改系�y�W�j,�入\"no\"放��修改系�y�W�j:" 
  99. cat ${flushRoute}|grep -v "\#" 
  100. read key 
  101. case "${key}" in 
  102. yes) 
  103.         #��入配置文件 
  104.         echo -e "251    ${eth0Line}     ${eth0LineView}" &gt;&gt; ${rtTables} 
  105.         echo -e "252    ${eth1Line}     ${eth1LineView}" &gt;&gt; ${rtTables} 
  106.         #刷新路由 
  107.         ${flushRoute} 
  108.         rclocal=`cat /etc/rc.local|grep "${flushRoute}"
  109.         if [ ! -n "${rclocal}" ];then 
  110.                 echo "${flushRoute}" &gt;&gt; /etc/rc.local 
  111.         fi 
  112. ;; 
  113. no
  114.         echo -e "以上信息�]有得到你的�_�J,退出本次�W�j修改���.\t" 
  115.         exit 2 
  116. ;; 
  117. *) 
  118.         echo -e "你的�入有�`,本次�绦幸呀Y束,若需�^�m,�再次�绦�." 
  119. ;; 
  120. esac 

你可能感兴趣的:(职场,路由,休闲,跟踪,双线)