+ Responder ao Tópico



  1. #1

    Padrão Roteamento avançado com IPRoute2

    Boa tarde pessoal, estou tentando adicionar este script no Fedora pra poder alternar entre um gateway de internet e outro usando um comando apenas no console, mas não estou conseguindo colocá-lo em prática. Segue o que tenho em mãos, que foi baseado em outro que peguei na internet... Obrigado por qualquer palpite! Abraços.


    Código :
    #! /bin/bash
    # advrouting          Alterna entre links com operadoras
    #
    # chkconfig: 2345 90 60
    # description: Com este script voce pode alternar entre \
    #              links de varias operadoras diferentes.
    # processname: advrouting
    # config: /etc/advrouting
    # pidfile: /var/run/advrouting.pid
     
    # roteamento avancado com IPRoute2.
     
    # FUNCOES
     
    brt(){
    for I in $BLOCO_BrT $BLOCO_RedeInterna ; do
        /sbin/ip rule del from $I table 20
        /sbin/ip rule del from $I table 22
        /sbin/ip rule add from $I table 20
    done
    }
     
    cte(){
    for I in $BLOCO_RedeInterna ; do
        /sbin/ip rule del from $I table 20
        /sbin/ip rule add from $I table 22
    done
    }
     
    # CONSTANTES
     
    # Gateways e Redes dos Roteadores dos Links
     
    GW_BrT="10.1.1.1"                # Link ADSL da BrT
    GW_CTE="192.168.100.1"           # Link da CTE
    GW_RedeInterna="192.168.12.1"    # Rede interna
     
    BLOCO_BrT="10.1.1.0/24"
    BLOCO_CTE="192.168.100.0/30"
    BLOCO_RedeInterna="192.168.12.0/24"
     
    IF_BrT="eth2"
    IF_CTE="eth0"
    IF_RedeInterna="eth1"
     
    for I in "del" "add" ; do
        /sbin/ip route $I to $BLOCO_BrT via $GW_BrT table local
        /sbin/ip route $I to $BLOCO_CTE via $GW_CTE table local
        /sbin/ip route $I to $BLOCO_RedeInterna via $GW_RedeInterna table local
    done
     
    # GWs default de cada link de cada operadora.
     
    # table 20 = Brasil Telecom
    # table 22 = CTE Internet
     
    # GW default table 20 - Brasil Telecom
    /sbin/ip route del default via $GW_BrT dev $IF_BrT table 20
    /sbin/ip route add default via $GW_BrT dev $IF_BrT table 20
     
    # GW default table 22 - CTE Internet
    /sbin/ip route del default via $GW_CTE dev $IF_CTE table 22
    /sbin/ip route add default via $GW_CTE dev $IF_CTE table 22
     
    # Regras (rules)
    # blocos
     
    for I in $BLOCO_CTE ; do
        /sbin/ip rule del from $I table 22
        /sbin/ip rule add from $I table 22
    done
     
     
    # blocos envolvidos diretamente com os roteadores (declarados no inicio do script)
     
    for I in "del" "add" ; do
        /sbin/ip rule $I from $BLOCO_BrT table 20
        /sbin/ip rule $I from $BLOCO_CTE table 22
    done
     
    ######
     
    case "$1" in
    'cte')
      cte
      ;;
    'brt')
      brt
      ;;
    *)
      echo "O uso correto é: $0 cte|brt !"
    esac

  2. #2

    Padrão

    cara..

    a tua situação é a mesma do script?

  3. #3
    Não Registrado(s)
    Visitante

    Padrão

    Citação Postado originalmente por lucianogf Ver Post
    cara..

    a tua situação é a mesma do script?

    Sim, está da forma como tentei editar... Obrigado!