Página 2 de 2 PrimeiroPrimeiro 12
+ Responder ao Tópico



  1. #21

    Padrão

    Infelizmente não dá pra passar todas informações detalhadas pois estamos no final de semana hehe...
    Mas é o seguinte... o dns está todo ok... Temos 2 zonas... quando se pede SITE.COM pela rede interna... recebe-se o ip interno do servidor...

    Nisso pra falar a verdade nem o DNS interno eu fico tendo acesso... Pois quando o IP que coloquei na regra de roteamento chega no firewall já manda todo o tráfego pro gateway 150.150.150.150 por exemplo... Aí meu DNS interno é o 10.10.10.10... Um ping pra 10.10.10.10 não funciona =/


    Resumindo, algo tipo:
    meu ip: 10.0.7.15
    meu dns: 10.10.10.10

    ip route add default via 150.150.150.150 table embratel
    ip rule add from 10.0.7.15 table embratel

    Aí nem requisição dns pro 10.10.10.10 eu consigo fazer... tudo tudo tudo que vem do 10.0.7.15 vai direto pra fora... eu posso até acessar meu site pelo IP externo... mas aí eu "saio" pelo gateway e acesso o site externamente... não sendo uma opção.


    Aí pensei em usar o --set-mark pra marcar tudo que não vá para os servidores da rede interna... Algo tipo:
    iptables -t mangle -A PREROUTING -s 10.0.7.15 -d ! REDE_INTERNA --set-mark 1
    E aí os marcados mandar pro gateway...
    ip rule add fwmark 1 table embratel

    Não sei se funcionará ou se há outra opção...
    Valeu mesmo pela atenção e respostas!!!!!!!!!

    Victor Hugo

  2. #22

    Padrão

    Bem cara, eu tenho uma DMZ configurada aqui. Vou tentar passar mais ou menos a configuração. Você adapta...

    Eu possuo dois links de saída, o endereço IP dos links são SIPA e SIPB, e as próximas rotas são GW_SIPA e GW_SIPB. Tenhos duas redes, REDEI (eth2) e DMZ (eth3). Os gateways dessas redes são GW_REDEI e GW_DMZ. Também possuo duas tabelas de roteamento, redei e dmz.
    # ip addr add SIPA/mascara dev eth0
    # ip link set dev eth0 up

    # ip addr add SIPB/mascara dev eth1
    # ip link set dev eth1 up

    # ip addr add GW_REDEI/mascara dev eth2
    # ip link set dev eth2 up

    # ip addr add GW_DMZ/mascara dev eth3
    # ip link det dev eth3 up

    # ip route add to default via GW_SIPA

    # ip route add to REDEI dev eth2 table redei
    # ip route add to DMZ via GW_DMZ dev eth3 table redei
    # ip route add to default via GW_SIPA table redei

    # ip route add to DMZ dev eth3 table dmz
    # ip route add to REDEI via GW_REDEI dev eth2 table dmz
    # ip route add to default via GW_SIPB table dmz

    # ip rule add from REDEI table redei
    # ip rule add from DMZ table DMZ

    # iptables -t nat -A POSTROUTING -s REDEI -d !DMZ -j SNAT --to SIPA
    # iptables -t nat -A POSTROUTING -s DMZ -d !REDEI -j SNAT --to SIPB
    Não estava com o arquivo aqui (também estou em casa aproveirando o FDS :-) ), mas pelo que lembro é isso.



  3. #23

    Padrão

    Pô cara... sem palavras hehe...
    Valeu mesmo pela atenção...
    Vou dar uma sacada durante a semana direitinho...
    Mas agora vai!! hehe
    Volto quando estiver funcionando

    Valeu novamente!!

  4. #24

    Padrão

    Ôpa Pedro,

    Tirar mais uma dúvida contigo... Consegui colocar pra funcionar todo o esquema separando por VLANs e tal... Mas tudo só funciona pra tráfegos que não sejam pra porta 80 hehe =/

    Pois na mesma máquina temos o proxy transparente...
    Aí tudo da porta 80 vai pro squid... e o squid acessa usando o gateway padrão da máquina =/

    Já visse alguma solução pra algo do tipo?
    Valeu!!



  5. #25

    Padrão

    Aiai... ou vidinha compliacada hehe...

    Utilizando o tcp_outgoing_address do squid dá pra configurar essa questão...

    acl admin src 10.0.1.0/24
    tcp_outgoing_address ip_eth_link1 admin
    acl alunos src 10.0.2.0/24
    tcp_outgoing_address ip_eth_link2 alunos

    Já que o squid sabe o ip de origem dá pra fazer... Só que aqui mais uma complicação =/
    Usamos o dansguardian (filtro de conteúdo)... Aí nesse caso o iptables manda a porta 80 pra porta do dansguardian... e o dansguardian se conecta ao squid (tudo mesma máquina)...
    Aí no squid o ip de origem é 127.0.0.1 =/ ... Não dando pra utilizar o tcp_outgoing_address separando por origem...

    Pense que não tem coisa pior chegar em um ponto e ser barrado das idéias hehe...

    t+

  6. #26

    Padrão

    Sim cara, desculpe... Não havia respondido mais nada por que já fugiu do meu domínio. Aqui usamos a política da consciência. Por isso não aplicamos filtros de conteúdos... Ai não sou muito ligado nessa área.



  7. #27

    Padrão

    Quem dera se pudesse ser assim aqui também hehe...
    Mas instituição federal de ensino de milhares de alunos... incluindo Ensino Médio...
    Site de música, vídeo, pornografia e outras coisas que consomem banda não falta =/
    O post anterior foi até pra deixar registrado a opção do squid pra caso alguem precise hehe...
    Funciona legal (não tendo o dansguardian).
    É isso aí. Valeu novamente!!

  8. #28

    Padrão

    Queria agradecer a vc pela ajuda que vc está dando!!!!
    Pois pra nos que somos principiantes isso é de grande ajuda!!!!
    Valeu, tenha um bom dia!!!



  9. #29

    Padrão

    De nada! Que bom que estou atingindo meu objetivo. :-)

  10. #30

    Padrão Re: Balanceamento de carga entre links com iproute2 - mini-howto

    O kernel mantém tabelas de roteamento estátcas, portanto, se N pessoas tentarem acessar o site Google por exemplo, todas as tentativas de conexão sairão pelo mesmo link.

    como fazer com que o kernel exclua essas tabelas?

    testei o balanceamento e deu certo,porém preciso que cada acesso feito ao google por exemplo saia por uma rota,poderia me auxiliar??

    ABS



  11. #31

    Padrão Re: Balanceamento de carga entre links com iproute2 - mini-howto

    Até onde eu saiba cada tentativa de navegação sairá por um link diferente pois eles estão como mesmo peso. Tanto é que o MSN por exemplo, quando utilizado o esquema de balanceamento de links, cai a cada 1 minuto.

    Lógico, essa situação do MSN e de outros serviços cair acontece se não for definido um link padrão para uma determinada rede ou ainda marcar pacotes por serviço e encaminhar por uma determinada tabela com somente um link.

    A vantagem de se trabalhar com esse balanceamento é poder fazer NAT para qualquer endereço interno utilizando qualquer link para entrada, coisa que trabalhando sem o load balancing não seria possível pois contamos com apenas um link disponível por vez.

    Há várias maneiras de fazer, esta sem dúvida é bem tranquila!

  12. #32

    Padrão Re: Balanceamento de carga entre links com iproute2 - mini-howto

    Citação Postado originalmente por PEdroArthurJEdi Ver Post
    Como muitos tem dúvidas de como balancear o acesso a Internet por diversos links, resolvi escrever esse mini-howto para evitar a necessidade de novos post no fórum.

    Vamos ao problema. Imaginemos um roteador rodando kernel GNU/Linux com as opções de roteamento avançado ativado. Este computador está conectado a N links dedicados. Desejamos balancear a carga das requisições entre esses N links. Sejam LIP0, LIP1, ... , LIPN os endereços IP atribuidos aos links, LIF0, LIF1, ... , LIFN as interfaces de rede, LNTW, LNTW1, ... , LNTWN as redes e LGW0, LGW1, ... , LGWN os gateways de cada link.

    Primeiramente devemos criar N tabelas de roteamento, onde N é o número total de links que o gateway possui:
    echo 10 tb0 >> /etc/iproute2/rt_tables
    echo 11 tb1 >> /etc/iproute2/rt_tables
    ...
    echo XX tbN >> /etc/iproute2/rt_tables
    Feito isso, devemos atribuir as redes dos links as suas respectivas tabelas de roteamento:
    ip route add LNTW0 dev LIF0 src LIP0 table tb0
    ip route add to 0/0 via LGW0 table tb0

    ip route add LNTW1 dev LIF1 src LIP1 table tb1
    ip route add to 0/0 via LGW1 table tb1
    ...
    ip route add LNTWN dev LIFN src LIPN table tbN
    ip route add to 0/0 via LGWN table tbN
    deve-se, também, incluir informações sobre a rede local:
    ip route add LOCALNET dev IFLOCALNET table tb0
    ip route add LOCALNET dev IFLOCALNET table tb1
    ...
    ip route add LOCALNET dev IFLOCALNET table tbN
    obs: todas as redes locais devem estar presentes em todas as tabelas!!!

    Agora, devemos definir as rotas das redes através da tabela padrão:
    ip route add LNTW0 dev LIF0 src LIP0
    ip route add LNTW1 dev LIF1 src LIP1
    ...
    ip route add LNTWN dev LIFN src LIPN
    obs: se você está com seus link configurados através dos arquivos de configuração das distribuiçoes, a etapa anterior pode ser omitida. Basicamente se ao tentar inserir uma rota na tabela padrão, e a mesma já existir você receberá a seguinte mensagem:
    RTNETLINK answers: File exists

    Agora você adiciona regras que decidem por onde os pacotes de vem passar:
    ip rule add from LIP0 table tb0
    ip rule add from LIP1 table tb1
    ...
    ip rule add from LIPN table tbN
    Por ultimo, porém o não menos importante, na verdade escencial pois até agora não fizemos nada... Devemos definir o balanceamento de carga:
    ip route add to 0/0 nexthop via LGW0 dev LIF0 weight 1 nexthop via LGW1 dev LIF1 weight 1 ... nexthop via LGWN dev LIFN weight 1
    Note que o parâmetro weight pode ser explorado para atribuir maior prioridade de envio por um provedor. E você também pode (deve) atribuir um link padrão:
    ip route add to 0/0 via LGWP
    Bem, pronto... Agora apenas algumas considerações...

    O kernel mantém tabelas de roteamento estátcas, portanto, se N pessoas tentarem acessar o site Google por exemplo, todas as tentativas de conexão sairão pelo mesmo link.

    Existem alguns patchs disponíveis para melhorar o mecanismo de roteamento. Procurem, informem-se e vejam se são adequados as suas realidades.

    Com o uso de regras de roteamento (ip rule) você pode definir qual link padrão para a saída de pacotes de uma determinada rede. Ex:
    ip rule add from 10.1.0.0/24 table tb0
    ip rule add from 10.2.0.0/24 table tb1
    Pode-se. também, dividir por seviços. ex:
    iptables -t mangle -A PREROUTING -i LOCALNET -p tcp --dport 21 -j MARK --set-mark 0x60
    ip rule add fwmark 0x60 table tbN
    Só isso... fiz este post com o intuíto dele se tornar permanente... espero que os moderadores aceitem...
    Ainda não obtive exito utilizando uma unica interface para odos os links.

    A propósito, glaucio você é irmão do gustavo?



  13. #33

    Padrão Re: Balanceamento de carga entre links com iproute2 - mini-howto

    Olá o único problema ao meu ver é que a cada pouco reseta as conexões e cai os serviços abertos.


















    O único poblema com esse esquema com iproute

  14. #34

    Padrão Re: Balanceamento de carga entre links com iproute2 - mini-howto

    Citação Postado originalmente por m4d3 Ver Post
    Ainda não obtive exito utilizando uma unica interface para odos os links.

    A propósito, glaucio você é irmão do gustavo?
    Sim! Vc é o Luciano Rampanelli de Realeza?