Como se livrar da rota 169.254.0.0?

6

Isso é do comando route -n .

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.x     0.0.0.0         UG    600    0        0 <wifi>
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 <wifi>
192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 <wifi>

Eu tentei:

1) desativado ufw e executado a partir do terminal (mesmo com o ufw ativado):

sudo route del -net 169.254.0.0 gw 0.0.0.0

obteve SIOCDELRT: Invalid argument

2) comentou link-local 169.254.0.0 linha no arquivo /etc/networks e reinicializou.

3) desabilitado avahi-deamon desde que pareça estar relacionado.

Nada funciona, eu uso IP estático, mas sempre quando eu me conecto ao meu roteador e executo route -n command ele aparece lá. Assim. vocês tem alguma outra ideia?

ATUALIZAÇÃO:

Graças à resposta abaixo, consultei avahi-autoipd manpage e consegui encontrar uma solução. Para remover a rota:

sudo route del -net 169.254.0.0 netmask 255.255.0.0 dev <interface> metric 1000

onde <interface> é sua interface de rede, como wlan0 por exemplo. No entanto, isso só iria removê-lo até a próxima associação de rede porque ele gera tudo novamente. Então, para torná-lo permanente, você precisa modificar o arquivo /etc/network/if-up.d/avahi-autoipd , a raiz da desova.

Comentei a parte final do código:

#if [ -x /bin/ip ]; then
    # route already present?
    #ip route show | grep -q '^169.254.0.0/16[[:space:]]' && exit 0

    #/bin/ip route add 169.254.0.0/16 dev $IFACE metric 1000 scope link
#elif [ -x /sbin/route ]; then
    # route already present?
    #/sbin/route -n | egrep -q "^169.254.0.0[[:space:]]" && exit 0

    #/sbin/route add -net 169.254.0.0 netmask 255.255.0.0 dev $IFACE metric 1000
#fi
    
por user633551 14.03.2017 / 23:40

3 respostas

9

Não há nada que você precise fazer. A rota 169.254.0.0 normalmente está presente para todos com conectividade à Internet. Aqui está a informação da rota da minha máquina:

chili@T440p:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    600    0        0 wlp3s0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlp3s0
192.168.0.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp3s0

Consulte: link

Veja especialmente:

  

A rede 169.254.0.0/16 é usada para o IP privado automático   Endereçamento, ou APIPA. Se um cliente DHCP tentar obter um endereço, mas   não consegue encontrar um servidor DHCP após o tempo limite e tentativas de novo   irá assumir aleatoriamente um endereço desta rede. Isso permite   comunicação com hosts que não conseguiram obter um endereço DHCP.

Em suma, a entrada é totalmente normal.

    
por chili555 14.03.2017 / 23:53
1

Você está certo em sua suposição de que esse caminho vem de avahi.

Desativar avahi-deamon pode não ser suficiente, pois seu cliente DHCP pode estar configurado para usar avahi-autoipd para definir um IP local de link quando a solicitação DHCP falhar.

Existem várias coisas que eu tentaria:

  • adicione uma linha deny-interfaces=wifi (esse é o nome da sua interface de rede, certo?) em /etc/avahi/avahi-daemon.conf
  • já que você está usando um IP estático, desative seu cliente DHCP ( dhcpcd ?)
  • como esta resposta sugere, você pode simplesmente desinstalar avahi-daemon . Claro, isso equivale a matar uma mosca com um rolo compressor, mas vai funcionar
por Dmitry Grigoryev 15.03.2017 / 10:40
0

Eu resolvi assim:

iface eth1 inet static
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.1
    pre up ip r d 169.254.0.0/16

Simplesmente a rota é excluída quando a rede está sendo iniciada. Em Rhel distros é fácil configurar o Zeroconf, mas não encontrei uma maneira no Debian / Ubuntu. Ainda assim, isso deve fazer um truque.

    
por fugitive 15.03.2017 / 10:59