todos os pacotes tcp de saída possuem endereço IP de origem 0.0.0.0

3

Atualmente, estou conectado a uma rede cuja máscara de sub-rede é 169.254.0.0 e o Gateway é 169.254.20.1.

De uma máquina Windows, posso acessar a Internet e a LAN nessa rede.

Mas sempre que me conecto a essa rede de uma máquina Linux, não consigo acessar a Internet, mas posso acessar somente a LAN.

Em uma captura do Wireshark, vi todos os pacotes IP fora da rede local. O IP de origem está definido como 0.0.0.0 . Acredito que essa seja a razão pela qual não recebo nenhuma resposta.

Eu usei kali.

Alguém pode me dizer o que pode estar errado?

    
por Kaleem Ullah 26.04.2016 / 15:16

3 respostas

4

Quem configurou a rede desse hostel cometeu o erro de usar a sub-rede RFC 3927 IPv4 Link-Local (169.254.0.0 / 16) onde deveria ter usado uma sub-rede privada RFC 1918 (192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8) como a sub-rede privada NAT.

Isso viola a cláusula "Proibição de uso alternativo de 1,6" do RFC 3927 .

Portanto, não é surpresa que alguns clientes tenham problemas com essa configuração. Você pode tentar configurar estaticamente sua caixa do Linux para um endereço no intervalo de endereços 169.254.0. [1-255] ou no intervalo de endereços 169.254.255. [0-254], ainda com uma sub-rede / 16 (255.255.0.0) mascarar. Esses dois intervalos dentro da sub-rede são geralmente reservados para quando você realmente precisa configurar estaticamente algo na sub-rede IPv4 Link-Local. Configurar estaticamente um dos roteadores de gateway NAT conhecidos (por exemplo, 169.254.10.1) como seu gateway padrão.

Eu não garanto que essa sugestão funcionará. Para o bem de todos, seria melhor se você ajudasse essa pousada a configurar sua rede para melhor atender aos padrões relevantes.

    
por 26.04.2016 / 22:51
2

169.254.x.x é irromper, ele é projetado para não passar por um roteador, ele só pode ficar dentro de sua própria sub-rede.

pode ser encaminhado, mas não deveria ser.

De RFC 5735

This is the "link local" block. As described in RFC3927, it is allocated for communication between hosts on a single link. Hosts obtain these addresses by auto-configuration, such as when a DHCP server cannot be found.

Além disso, de RFC 3927

The host MUST NOT send a packet with an IPv4 Link-Local destination address to any router for forwarding.

    
por 26.04.2016 / 15:25
2

Resumo

Você deve verificar o escopo do endereço IP da sua interface de rede. Se for link , os endereços IP de origem de seus pacotes de saída não locais serão substituídos por 0.0.0.0 . Se for global , você entrará na Internet como de costume.

O escopo do endereço IP pode ser encontrado na saída do comando ip address show , na seção da sua interface de rede.

Para alterar o escopo, você pode usar ip address del para excluir o endereço IP de seu host e, em seguida, usar ip address add para adicioná-lo novamente com o escopo direito. Se você fizer isso, o gateway padrão será removido da tabela de roteamento. Então você deve adicioná-lo manualmente.

Isso é tudo. Após as etapas listadas acima, a Internet deve funcionar.

Exemplo

Aqui está um exemplo (algumas saídas não relevantes são truncadas, outras são (não) recuadas):

# ip addr
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:d1:09:56 brd ff:ff:ff:ff:ff:ff
    inet 169.254.55.3/16 brd 169.254.255.255 scope link dynamic ens33
       valid_lft 1596sec preferred_lft 1596sec
# ip addr del 169.254.55.3/16 dev ens33
# ip addr add 169.254.55.3/16 dev ens33 scope global
# ip addr
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:d1:09:56 brd ff:ff:ff:ff:ff:ff
    inet 169.254.55.3/16 scope global ens33
       valid_lft forever preferred_lft forever
# ip route add default via 169.254.0.34 dev ens33
# ip route
    default via 169.254.0.34 dev ens33 
    169.254.0.0/16 dev ens33  proto kernel  scope link  src 169.254.55.3 

Testado em CDs ao vivo do Fedora 23 e Centos 7.2.

Notas

  1. Esta solução tem uma grande desvantagem no uso do endereço estático. Não se encaixa bem com LANs e DHCP do hostel.
  2. Tenho certeza de que há uma linha de configuração simples em algum lugar para instruir o sistema a fornecer escopo global para endereços locais de link (169.254.0.0/16). Mas ainda não encontrei. Deixe-me saber, por favor, se você fizer isso.
  3. Note que algumas distribuições antigas e maduras não têm esse problema. Por exemplo, o Fedora 12 e o novo Centos 6.8 (todos eles têm o antigo kernel 2.6.32) fornecem escopo global para endereços locais de links.
  4. Se alguém alterasse o escopo para vincular a esses distors, ele se depararia com o problema discutido: os endereços IP de origem de todos os pacotes IP de saída não locais seriam substituídos por 0.0.0.0 .
  5. É interessante saber, o que faz isso substituir. Se eu soubesse disso, encontraria a resposta para o item 2.
  6. Com escopo global , pacotes IP de saída não-locais são roteados perfeitamente pelo roteador NAT construído na recente VMWare Workstation e por uma máquina Linux com o Fedora 12 funcionando como um roteador, apesar dos RFCs.
por 09.08.2016 / 17:25