+ Responder ao Tópico



  1. #1

    Padrão Martian Source.... Ajuda

    Agradeço quem puder ajudar...

    Seguinte motivo, Instalei 2 servers linux...1 como gateway de clientes e outro como proxy com marcação de pacotes distribuidos em 2 links...

    O seguinte problema acontece na hora q ativo meu script de iproute, minha rede local (server para server) para de funcionar, a do proxy para de responder dando o seguinte erro...

    depois de ativar o script vi q funciona poor uns 5 segundos respondendo normal ai começa a dar esse erro

    martian source 172.16.1.2 from 172.16.1.1 on dev eth0
    ll header FF:FF:FF:FF:FF:FF:00:00:06:4F:3B:30:6D:08:06

    Entendimentos:
    172.16.1.2 é meu proxy
    172.16.1.1 é meu server de gerenciamento
    00:06:4F:3B:30:6D percebi q é o mac da 172.16.1.1, mas o q para de funcionar é o 172.16.1.2(proxy)

    Acredito q seja algum problema de rota, mas realmente ñ sei em qual e como fazer tal roteamento, c alguem tiver uma luz, ajudara muitoooo...

    Aguardo uma resposta, abraços a todos...

  2. #2



  3. #3

    Padrão

    Cara, explica a estrutura da sua rede ai. Endereçamento, conexões, configuração do iproute... Só assim não dá pra apontar o problema não...

    Até mais...

  4. #4

    Padrão

    Citação Postado originalmente por lucianogf Ver Post
    5 segundos de pesquisa

    martian source - Pesquisa Google

    Meu amigo vc ñ entendeu...
    Eu sei o q é mas ñ sei o pq ta acontecendo, entendeu agora? as 2 maquinas são da minha rede e estao com a mesma faixa de ip e mesmo mascaramento...

    Mas obrigado mesmo assim



  5. #5

    Padrão Estrutura...

    Citação Postado originalmente por Magnun Ver Post
    Cara, explica a estrutura da sua rede ai. Endereçamento, conexões, configuração do iproute... Só assim não dá pra apontar o problema não...

    Até mais...

    Ta do seguinte modo....

    Clientes entram pela eth1 do server titan com o ip definido a essa placa por 10.10.10.1, saindo desse titan pela porta eth0 pelo ip 172.16.1.1 (onde esta dando o tal problema, acusando o mac dessa placa) entrando na eth0 do proxy, sendo assim eth1 difinida para o adsl, e eth2 definida para o frame relay, abaixo postarei minhas configurações de iproute e firewall...
    Ja verifiquei os ips estão certos, e estao com mesmo mascaramento...

    Minha estrutura hj é essa... acho q da pra entender bem, o problema esta entre as eth0s, com cabo cross over tudo certinho, mas ñ sei realmente o q acontece...

    martian source 172.16.1.2 from 172.16.1.1 on dev eth0
    ll header FF:FF:FF:FF:FF:FF:00:00:06:4F:3B:30 :6D:08:06


    A eth0 do server proxy perde o ip e fica dando esse erro continuo...
    a eth0 do titan consigo ficar pingando... (dentro da maquina logico)

    Vamos la... agora postarei minhas regras de iproute

    --------------------------------------------------------------------------------------------------------------------

    #!/bin/bash

    IF_LAN='eth0'
    IF_LINK1='eth1'
    IF_LINK2='eth2'
    GW_LINK1='192.168.1.1'
    GW_LINK2='200.200.200.201'


    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 80 -j MARK --set-mark 2

    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 443 -j MARK --set-mark 2

    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 25 -j MARK --set-mark 3

    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 110 -j MARK --set-mark 3

    iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
    iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2
    iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 3
    iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 3

    ip rule add fwmark 3 table 20 prio 20
    ip rule add fwmark 2 table 21 prio 20

    ip route add default via $GW_LINK2 dev $IF_LINK2 table 20
    ip route add default via $GW_LINK1 dev $IF_LINK1 table 21

    ip route flush cache
    --------------------------------------------------------------------------------------------------------------------


    Só isso claro tenho regras de firewall tb, vou colocar para ficar mais completo, o firewall é executado puxando o iproute


    --------------------------------------------------------------------------------------------------------------------

    #!/bin/bash

    echo "Limpando tabelas...........................................[OK]"
    iptables -F
    iptables -Z
    iptables -X
    iptables -t nat -F

    echo "Iniciando Redirecionamentos................................[OK]"
    echo "1" >/proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

    echo "Iniciando regras avancadas com IPROUTE.....................[OK]"
    /etc/rc.d/./rc.route

    echo "Ativando PROXY transparente................................[OK]"
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

    --------------------------------------------------------------------------------------------------------------------

    Abraços e agurado um retorno, obrigado a todos...

    Realmente ta tirando meu sono pois o iproute ñ funcionava quando ele funciona os pacotes marcianos me atacam, rs
    Última edição por erickwa; 25-08-2008 às 09:22. Razão: Fiz um projeto por desenho com caarcteres mas ficou deformado

  6. #6

    Padrão

    Cara, muito estranho isso... Se estivesse acontecendo constantemente faria mais sentido. Porque geralmente aparece martian source quando tem conflito de ip, ou o recebimento de pacotes de uma rede inesperada.

    Agora, se ocorre quando você ativa algum roteamento geralmente é devido a um erro de confiuração de redes. Seria o caso se o seu proxy, por exemplo, tivesse uma eth com um IP da rede 10.10.10.0/24. O seu server titan teria só uma rota de GW apontando pro proxy, e quando o proxy recebesse os pacotes vindos do titan com o IP de origem da rede 10.10.10.0/24 ele iria acusar pois ele espera que esses pacotes entrem pela outra eth, que possui um endereço nessa rede...

    Agora, geralemente quando acusa martian source a interface não cai, a não ser no caso de IP duplicado...

    Cara, confirma os IPs de todas as iterfaces dos dois server (proxy e titan) e também suas tabelas de roteamento. Se realmente não houver nada de estranho faz uma captura de pacotes e aciona o iproute pra tentar capturar os pacotes que tão gerando esse martian source...

    Acho que é isso ai...
    Até mais...



  7. #7

    Padrão

    Citação Postado originalmente por Magnun Ver Post
    Cara, muito estranho isso... Se estivesse acontecendo constantemente faria mais sentido. Porque geralmente aparece martian source quando tem conflito de ip, ou o recebimento de pacotes de uma rede inesperada.

    Agora, se ocorre quando você ativa algum roteamento geralmente é devido a um erro de confiuração de redes. Seria o caso se o seu proxy, por exemplo, tivesse uma eth com um IP da rede 10.10.10.0/24. O seu server titan teria só uma rota de GW apontando pro proxy, e quando o proxy recebesse os pacotes vindos do titan com o IP de origem da rede 10.10.10.0/24 ele iria acusar pois ele espera que esses pacotes entrem pela outra eth, que possui um endereço nessa rede...

    Agora, geralemente quando acusa martian source a interface não cai, a não ser no caso de IP duplicado...

    Cara, confirma os IPs de todas as iterfaces dos dois server (proxy e titan) e também suas tabelas de roteamento. Se realmente não houver nada de estranho faz uma captura de pacotes e aciona o iproute pra tentar capturar os pacotes que tão gerando esse martian source...

    Acho que é isso ai...
    Até mais...
    Cara to achando q é minha regra de roteamentoq esta errada, me ajuda a fazer ela correta? o´route ta tudo certo, ta muito estranho, acho q a parte do martian source consegui resolver... troquei o cabo, parecia q tinha um fio invertido.. brincadeira... n fui eu quem fez passou despercebido....

    eu gostaria de fazer uma regra para direcionar trafego nobre na eth2 e trafego lixo na eth1, c pudesse me ajudar


    IF_LAN='eth0'
    IF_LINK1='eth1'
    IF_LINK2='eth2'
    GW_LINK1='192.168.1.1'
    GW_LINK2='201.28.77.161'


    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 80 -j MARK --set-mark 2

    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 443 -j MARK --set-mark 2

    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 25 -j MARK --set-mark 3

    iptables -t mangle -A PREROUTING -i $IF_LAN -p tcp --dport 110 -j MARK --set-mark 3

    iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2

    iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2

    iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 3

    iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 3


    ip rule add fwmark 2 table 21 prio 20

    ip rule add fwmark 3 table 20 prio 20

    ip route add default via $GW_LINK2 dev $IF_LINK2 table 20

    ip route add default via $GW_LINK1 dev $IF_LINK1 table 21


    -------------------------------------------
    MEU FIREWALL


    echo "Limpando tabelas...........................................[OK]"
    iptables -F
    iptables -Z
    iptables -X
    iptables -t nat -F

    echo "Iniciando Redirecionamentos................................[OK]"
    echo "1" >/proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

    ---------------------------------


    C puder dar essa força só me falta isso e to apanhando faz tempo...

    Abraços e muito obrigado...

  8. #8

    Padrão

    Cara, faz um tempinho que mechi com isso... mas seguinte, essas regras:

    Código :
    iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
    iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2
    iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 3
    iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 3
    São desnecessárias. A marcação de pacotes é feita somente na PREROUTING pois ela é utilziada antes do roteamento. A Chain OUTPUT já é depois do reoteamento.

    Você criou essas tables 20 e 21?? Confirma la no arquivo /etc/iproute2/rt_tables. elas tem que existir lá... tipo assim:
    Código :
    20 framerelay
    21 adsl
    Lembrando que isso tem que ser na última linha (após #1 inr.ruhep)

    Confirma se as regras estão atribuidas as tabelas corretamente com o comando:
    Código :
    ip route list table nome_da_tabela
    Lembrando que o nome da tabela e definido naquele arquivo... no caso do exemplo os nomes sao ads e framerelay...

    Confirma também a vinculação da marcação com as tabelas:
    Código :
    ip rule list
    Acho que básicamente isso... A um tempo atraz ajudei um cara com isso... o link é esse aqui: https://under-linux.org/forums/proxy...tml#post315252
    Última edição por Magnun; 26-08-2008 às 10:11.



  9. #9

    Padrão

    Citação Postado originalmente por Magnun Ver Post
    Cara, faz um tempinho que mechi com isso... mas seguinte, essas regras:

    Código :
    iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 2
    iptables -t mangle -A OUTPUT -p tcp --dport 443 -j MARK --set-mark 2
    iptables -t mangle -A OUTPUT -p tcp --dport 25 -j MARK --set-mark 3
    iptables -t mangle -A OUTPUT -p tcp --dport 110 -j MARK --set-mark 3
    São desnecessárias. A marcação de pacotes é feita somente na PREROUTING pois ela é utilziada antes do roteamento. A Chain OUTPUT já é depois do reoteamento.

    Você criou essas tables 20 e 21?? Confirma la no arquivo /etc/iproute2/rt_tables. elas tem que existir lá... tipo assim:
    Código :
    20 framerelay
    21 adsl
    Lembrando que isso tem que ser na última linha (após #1 inr.ruhep)

    Confirma se as regras estão atribuidas as tabelas corretamente com o comando:
    Código :
    ip route list table nome_da_tabela
    Lembrando que o nome da tabela e definido naquele arquivo... no caso do exemplo os nomes sao ads e framerelay...

    Confirma também a vinculação da marcação com as tabelas:
    Código :
    ip rule list
    Acho que básicamente isso... A um tempo atraz ajudei um cara com isso... o link é esse aqui: https://under-linux.org/forums/proxy...tml#post315252


    Cara olha isso.... tenho certeza q ta certinho mas ñ funciona...

    [[email protected] ~]# rpm -qa |grep iproute
    iproute2-2.6.23-1mdv2008.1
    [[email protected] ~]# ip route list table link
    default via 201.xx.xxx.xxx dev eth2
    [[email protected] ~]# ip route list table adsl
    default via 192.168.1.1 dev eth1
    [[email protected] ~]# ip rule list
    0: from all lookup local
    20: from all fwmark 0xa lookup link
    20: from all fwmark 0x14 lookup adsl
    20: from all fwmark 0xa lookup link
    20: from all fwmark 0x14 lookup adsl
    32766: from all lookup main
    32767: from all lookup default
    [[email protected] ~]# cat /etc/iproute2/rt_tables
    #
    # reserved values
    #
    255 local
    254 main
    253 default
    0 unspec
    #
    # local
    #
    #1 inr.ruhep
    10 link
    20 adsl
    [[email protected] ~]# cat /etc/rc.d/rc.fire
    rc.fireroute rc.firewall
    [[email protected] ~]# cat /etc/rc.d/rc.firewall
    echo "1" >/proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

    iptables -t mangle -A PREROUTING -i eth0 -p tcp --dport 80 -j MARK --set-mark 20
    iptables -t mangle -A PREROUTING -i eth0 -p tcp --dport 80 -j RETURN
    iptables -t mangle -A PREROUTING -i eth0 -j MARK --set-mark 10

    [[email protected] ~]# route
    Tabela de Roteamento IP do Kernel
    Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
    201.28.77.160 * 255.255.255.248 U 10 0 0 eth2
    192.168.1.0 * 255.255.255.0 U 10 0 0 eth1
    172.16.1.0 * 255.255.255.0 U 10 0 0 eth0
    link-local * 255.255.0.0 U 10 0 0 eth2
    link-local * 255.255.0.0 U 10 0 0 eth1
    link-local * 255.255.0.0 U 10 0 0 eth0


    Me disseram q tem q recompilar o kernel... vc fez isso???

    ta vendo ta apontando para os gateways certos mas ñ navega e eu tirei a rota padrao mas assim nem dentro do server resolve nome...

    falta uma coisinha de nada, mandei um pm para vc c puder me adicionar em msn para vc me ajudar e postarmos o resultado aqui, pois vi q é o problema de muitas pessoas, ñ so meu, abração cara obrigado....