Не удается обнаружить локальный IPv4-адрес при настройке статического IP-адреса

У меня есть локальные адреса ссылок, которые работают вне коробки при соединении с DHCP, поскольку, когда DHCP отсутствует, устройство не получает IP, только локальный канал связи. Тем не менее, мне нужно, чтобы локальные адреса работали, даже если я настраиваю интерфейсы статически. Я не уверен, как мне поступить. Вот что я сделал:

auto eth0
allow-hotplug eth0
        iface eth0 inet static
        gateway 192.168.0.1
        address 192.168.0.25
        netmask 255.255.255.0
        post-up /usr/sbin/avahi-autoipd --force-bind --daemonize --wait $IFACE 2> /dev/null
        pre-down /usr/sbin/avahi-autoipd --kill $IFACE 2> /dev/null

И вот результат:

$ ifconfig
eth0      Link encap:Ethernet  HWaddr d0:63:b4:00:88:1f
          inet addr:192.168.0.25  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::d263:b4ff:fe00:881f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:243 errors:0 dropped:0 overruns:0 frame:0
          TX packets:554 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:33114 (33.1 KB)  TX bytes:56243 (56.2 KB)

eth0:avahi Link encap:Ethernet  HWaddr d0:63:b4:00:88:1f
          inet addr:169.254.5.135  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

Все хорошо, моя цель получила 2 локальных IP. Теперь я хочу получить к нему доступ, подключив сетевой кабель напрямую. Я не могу просмотреть его с помощью avahi-browse, "avahi-browse -alr" возвращает только статический адрес 192.168.0.25 или локальный канал IPv6, но не локальный канал IPv4. Я могу ssh цели, используя локальный адрес 169.254.5.135! и я не могу сделать это с помощью отчетов avahi-browse со статическим адресом, потому что для этого нет маршрута, это просто кабельное соединение. Я просто не знаю, как я могу обнаружить этот локальный IP-адрес ссылки... Это последняя часть этой головоломки, так как локальный IP-адрес работает. Как будто статическая конфигурация имеет приоритет над обнаружением.

Обратите внимание, что все машины сообщают об обслуживании рабочей станции avahi.

РЕДАКТИРОВАТЬ

Ах, я забыл установить службу публикации рабочей станции на целевой avahi-daemon.conf. Итак, после установки этого, поведение изменилось. avahi-browse -arдаже если выполняется изнутри цели, не перечисляет свой собственный локальный адрес канала, только его IPv6 и статический IPv4. Итак, если сама цель больше не может просматривать этот локальный адрес ссылки, как подключенный компьютер может сделать это в первую очередь. Я не знаю, как сделать Avahi-просмотр списка этот адрес, который является действительным.

~ ❯❯❯ ssh francisco@169.254.5.135                                                                                                                  archlinux ✱
francisco@169.254.5.135's password:
  ____      _                 _ ____     __  __
 / ___|   _| |__   _____  __ (_)___ \ ___\ \/ /
| |  | | | | '_ \ / _ \ \/ / | | __) / _ \\  /
| |__| |_| | |_) | (_) >  <  | |/ __/  __//  \
 \____\__,_|_.__/ \___/_/\_\ |_|_____\___/_/\_\


Welcome to ARMBIAN Ubuntu 14.04.4 LTS 3.14.60-cubox

System load:   0.00             Up time:       35 min
Memory usage:  5 % of 3788Mb    IP:            192.168.0.25
CPU temp:      47°C
Usage of /:    4% of 29G

Last login: Wed Feb 24 04:19:27 2016 from 169.254.4.29
francisco@cubox-i:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d0:63:b4:00:88:1f brd ff:ff:ff:ff:ff:ff
    inet 169.254.5.135/16 brd 169.254.255.255 scope link eth0:avahi
       valid_lft forever preferred_lft forever
    inet 192.168.0.25/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::d263:b4ff:fe00:881f/64 scope link
       valid_lft forever preferred_lft forever
3: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default
    link/ether f6:4b:80:39:3e:0b brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 6c:ad:f8:1d:4b:87 brd ff:ff:ff:ff:ff:ff
francisco@cubox-i:~$ avahi-browse -ar
+   eth0 IPv6 cubox-i [d0:63:b4:00:88:1f]                   Workstation          local
+   eth0 IPv4 cubox-i [d0:63:b4:00:88:1f]                   Workstation          local
=   eth0 IPv6 cubox-i [d0:63:b4:00:88:1f]                   Workstation          local
   hostname = [cubox-i.local]
   address = [fe80::d263:b4ff:fe00:881f]
   port = [9]
   txt = []
=   eth0 IPv4 cubox-i [d0:63:b4:00:88:1f]                   Workstation          local
   hostname = [cubox-i.local]
   address = [192.168.0.25]
   port = [9]
   txt = []

2 ответа

Правда в том, что я могу получить доступ к статическому IP 192.168.0.25! Проблема заключалась в том, что я пытался общаться по прямому кабелю, когда мой ноутбук был подключен к WiFi, внутри сети 192.168.0.0/24. При отключении WiFi я могу получить доступ к 192.168.0.25.

У меня была такая же проблема, и я понимаю, почему ваше заявление

Как будто статическая конфигурация имеет приоритет над обнаружением.

отчасти правильно. По крайней мере, поведение объяснимо.

Avahi публикует только локальные адреса ссылок, если они являются единственными в ссылке, см. [ https://github.com/lathiat/avahi/blob/1cc2b8e8d62e939b8bd683f795794878863931af/avahi-core/iface.c#L707%5D%5B1%5D. Вы также можете наблюдать это поведение при запуске avahi-daemon в конфигурации вашего интерфейса, в выходных состояниях которого адреса публикуются. Поскольку существует два IPv4-адреса (статический и локальный для канала), локальный адрес не публикуется. Для IPv6 у вас есть только локальная ссылка, которую вы соответственно видите в своем avahi-browse.

Как гласит Википедия

RFC 3927 предостерегает от одновременного использования адресов IPv4 различной области действия [6], таких как настройка локальных адресов каналов, а также глобально маршрутизируемых адресов на одном и том же интерфейсе. Поэтому хосты ищут DHCP-сервер в сети перед назначением локальных адресов.

Так что я думаю, что такое поведение предназначено, и использование локального адреса для статических конфигураций не рекомендуется.

Другие вопросы по тегам