Как избавиться от маршрута 169.254.0.0?

7

Это команда 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>

Я пробовал:

1) отключено ufw и запускается с терминала (то же самое с включенным ufw):

sudo route del -net 169.254.0.0 gw 0.0.0.0

получил SIOCDELRT: Invalid argument

2) прокомментировал link-local 169.254.0.0 в файле /etc/networks и перезагрузился.

3) отключено avahi-deamon , поскольку оно, похоже, связано.

Ничего не работает, я использую статический IP-адрес, но всегда, когда я подключаюсь к своему маршрутизатору и запускаю route -n command , он появляется там. Так. у вас, ребята, есть другие идеи?

UPDATE:

Благодаря ответу ниже я просмотрел% man_de% manpage и смог найти решение. Чтобы удалить маршрут:

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

где avahi-autoipd - ваш сетевой интерфейс, например wlan0. Тем не менее, это приведет к его удалению только после следующей сетевой ассоциации, потому что оно появляется снова и снова. Чтобы сделать его постоянным, вам необходимо изменить файл <interface> , корень нереста.

Я прокомментировал заключительную часть кода:

#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
    
задан user633551 14.03.2017 в 22:40
источник

3 ответа

9

Нет ничего, что вам нужно делать. Маршрут 169.254.0.0 обычно присутствует для всех, у кого есть интернет-соединение. Вот информация о маршруте с моей машины:

[email protected]:~$ 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

Смотрите: Ссылка

Особенно это касается:

The 169.254.0.0/16 network is used for Automatic Private IP Addressing, or APIPA. If a DHCP client attempts to get an address, but fails to find a DHCP server after the timeout and retries period it will randomly assume an address from this network. This allows communication with hosts that have failed to obtain a DHCP address.

Короче говоря, запись полностью нормальная.

    
ответ дан chili555 14.03.2017 в 22:53
1

Вы правы в своем предположении, что этот маршрут происходит от авахи.

Отключить avahi-deamon может быть недостаточно, так как ваш DHCP-клиент может быть настроен на использование avahi-autoipd , чтобы установить локальный IP-адрес, если запрос DHCP завершился с ошибкой.

Есть несколько вещей, которые я хотел бы попробовать:

  • добавить строку deny-interfaces=wifi (это имя вашего сетевого интерфейса, верно?) в /etc/avahi/avahi-daemon.conf
  • , поскольку вы все равно используете статический IP-адрес, отключите DHCP-клиента ( dhcpcd ?)
  • как этот ответ , вы можете просто удалить avahi-daemon . Конечно, это означает убийство мухи с помощью катка, но это сработает.
ответ дан Dmitry Grigoryev 15.03.2017 в 09:40
0

Я решил так:

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

Просто маршрут удаляется при запуске сети. В дистрибутивах Rhel легко настроить Zeroconf, но я не нашел способ в Debian / Ubuntu. Тем не менее, это должно сделать трюк.

    
ответ дан fugitive 15.03.2017 в 09:59