+ Responder ao Tópico



  1. #1

    Padrão Redundancia de Link

    Bom dia pessoal,

    Gostaria de ajuda de vc's para fazer o seguinte script:
    Eu tenho 2 links de internet, sendo um a rádio e o outro da Embratel.'
    O meu link a radio é meu link primario e se ele cair, gostaria que a embratel assumisse, e quando o radio voltasse, ele assumisse.
    Tenho um script ja, porem ele funciona apenas quando o radio cai, mas quando volta, continua na embratel.
    Gostaria na verdade de fazer algo assim:

    Se ping gwradio falhar e gw = embratel entao nao faz nada (pois ja esta na embratel)
    Se ping gwradio ok e gw = embratel entao mudar de gw para gwradio
    se ping gwradio ok e gw = gwradio entao nao faz nada.

    Seria algo mais ou menos assim, alguem teria uma ideia ???

    Agradeço desde já

    Abracos

  2. #2
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Padrão

    Bom dia,
    Usa os dois links em algum roteador (no mesmo)? Ou em algum sistema operacional ou distribuição Linux para balancear?

    A sua pergunta não fornece dados para uma boa resposta.



  3. #3

    Padrão

    Desculpe Marcelo por nao fornece todas as informacoes ....

    Tenho um servidor linux debian sarge 3.1 com 3 interfaces de rede

    Rádio : eth0
    Rede Local : eth1
    Link Embratel : eth2

    Gostaria de que quando o radio caisse a embratel assumisse, e quando o radio voltasse, deixasse a embratel em "stand by".

    Abraços..

  4. #4
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Thumbs up

    Bem,

    eu estive pensando aqui, pois também uso Debian. Mas ainda não encontrei uma resposta para a sua pergunta. Aqui no Forum tem um esquema de link de sombra (failover) postado por um colega. Já deu uma olhadinha lá? https://under-linux.org/forums/mikro...de-sombra.html

    Também tem uma outra discussão com um tema parecido. Dê uma olhada: https://under-linux.org/forums/mikro...tml#post299041



  5. #5

    Padrão

    Caro Marcelo,

    Agradeço pelo link, porém, é baseado no Mikrotik.............não adiantou...

    Estou com um script que mexi bastante........agora ele funciona, porém de forma manual !
    Já adicionei no cron pra rodar a cada minuto mas nao deu certo.
    Se for de interesse, me avisa que posto pra vc analisar.

    Obrigado,

    Abraços

  6. #6
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Padrão

    Sim,
    o primeiro link que te passei é baseado em Mikrotik, mas o segundo não. Nós estamos em uma discussão com outro colega que tem scripts para o Debian. Clique no link de baixo. Se você enviar o código de seu script podemos analisá-lo.



  7. #7

    Padrão

    Desculpe Marcelo, nao tinha visto o link abaixo, vou ler os tópicos.
    Sobre o script, ai segue:

    #!/bin/sh

    radio="200.200.200.200"
    ping -c1 $radio > /tmp/linkradio.txt
    pacotes=`cat /tmp/linkradio.txt | grep 100% | cut -d " " -f 6`


    if [ "$pacotes" != "100%" ]; then
    /root/links/linkradio.sh start

    echo "Gateway Radio Ativo"

    else

    ping -c1 $radio > /tmp/linkembratel.txt
    pacotes=`cat /tmp/linkembratel.txt | grep 100% | cut -d " " -f 6`


    if [ "$pacotes" = "100%" ]; then
    /root/links/linksembratel.sh start

    echo " Gateway Embratel Ativo "

    fi
    fi


    Salvei como link com chmod 777 e coloquei no cron

    e quando digito cron -l aparece
    cron: can't lock /var/run/crond.pid, otherpid may be 28347: Resource temporarily unavailable

    E ai nao roda, mas se for manual funciona blz !!!

    Fico no aguardo,

    Abraços

  8. #8
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Padrão

    Amigo,
    agora sou eu quem pede desculpas. Você só usa Debian, mas não usa Mikrotik. Vou voltar "à prancheta" para ver se descubro alguma coisa baseado em seu script.



  9. #9

    Padrão

    Sem problemas !!!

    Fico no aguardo de alguma solucao, aproveite pra testar se for o caso !!!

    Só esqueci de mencionar....ele chama o linkradio.sh e linkembratel.sh, dentro tem do arquivo tem o gateway de cada link, apenas isso.

    Abracos

  10. #10
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Thumbs up

    Já em minha primeira olhada rápida em seu script percebi que o mesmo está incompleto. Vamos por parte:

    #!/bin/sh

    radio="200.200.200.200"
    ping -c1 $radio > /tmp/linkradio.txt
    pacotes=`cat /tmp/linkradio.txt | grep 100% | cut -d " " -f 6`

    if [ "$pacotes" != "100%" ]; then
    /root/links/linkradio.sh start
    echo "Gateway Radio Ativo"

    else

    Até aqui aparentemente tudo certo. Daqui em diante provavelmente seria necessária acrescentar as rotas, firewall, DNS e gateway para o segundo link caso o primeiro caísse. Se esses dados estiverem em arquivo separado tudo certo (estariam em linkembratel.txt???). Mas se está pegando o segundo link normalmente vamos em frente então.

    ping -c1 $radio > /tmp/linkembratel.txt
    pacotes=`cat /tmp/linkembratel.txt | grep 100% | cut -d " " -f 6`

    if [ "$pacotes" = "100%" ]; then
    /root/links/linksembratel.sh start
    echo " Gateway Embratel Ativo "

    fi
    fi

    Aqui não teria faltado uma terceira regra alternando outra vez para o Link Rádio quando esse retornasse?
    Exemplo:
    echo "Radio voltou"
    (seguido da rota completa em arquivo chamando link radio)

    Salvei como link com chmod 777 e coloquei no cron
    Já tentou alternar para a permissão 775?



    Bem, as regras que faltam deveriam fazer a mesma função que você faz com comandos manuais.

    Vou embora. Amanhã conversaremos mais.



  11. #11

    Padrão

    Bom dia Marcelo,

    Sobre os arquivos de configuracao de rotas e dns, fiz o seguinte:

    eth0 = configurado no /etc/network/interfaces
    eth1 = configurado no /etc/network/interfaces
    eth2 = configurado no /etc/network/interfaces porem este deixei sem gateway

    Já o gateway o script que faz a alteracao no route do sistema.

    Se eu executar manualmente funciona perfeito.

    Quer continuar a analisando outras coisas ???

    Abracos

  12. #12
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Padrão

    Beleza,
    mas você refez o script? Qual script você roda no iptables?
    Última edição por MarceloGOIAS; 24-01-2008 às 12:20.



  13. #13

    Padrão

    O iptables nao tem nada dessas conf !!
    Meu iptables esta apenas com regras de firewall !!!!

    As alteraçoes quem muda eh o script que mandei......
    Tente montar um ambiente virtual para tal e teste pra vc ver, ele ta funcionando !!!

    Apenas nao consigo fazer com que a cada 2 minutos o cron starte o script para verificar se o link ja voltou ou se caiu......

    Abracos

  14. #14
    Eng. Eletricista/Eletrôni Avatar de MarceloGOIAS
    Ingresso
    Feb 2007
    Localização
    Goiânia
    Posts
    2.120
    Posts de Blog
    2

    Thumbs down

    Citação Postado originalmente por Thiagocpv Ver Post
    O iptables nao tem nada dessas conf !!
    Meu iptables esta apenas com regras de firewall !!!!

    As alteraçoes quem muda eh o script que mandei......
    Tente montar um ambiente virtual para tal e teste pra vc ver, ele ta funcionando !!!

    Apenas nao consigo fazer com que a cada 2 minutos o cron starte o script para verificar se o link ja voltou ou se caiu......

    Abracos
    Amigo,
    eu sei que IPTables é firewal e que essas regras não se aplicam a ele. Só perguntei sobre as regras que estão em seu firewall. Mas tudo bem, estou fora da discussão.



  15. #15

    Padrão

    Vc pode fazer um esquema de load-balancing com o iproute2.

    Eu tenho um material mas tá em inglês. Manda o seu mail que assim que eu achar aqui eu te mando, funciona bem.

    Abraço!