LINUX.ORG.RU

Заставить работать Avahi

 ,


0

1

Подключил к домашней сети принтер со встроенным Wi-Fi (Epson WF-2750). Столкнулся с проблемой, что смог настроить принтер только указав фиксированный IP, но не по Avahi-имени принтера (EPSON90BD7F.local), хотя автоматически CUPS пытался именно так (пришлось ручками прописывать IPP адрес с явным указанием IP). Мне это кажется некрасивым (либо надо прописывать на роутере статический IP принтеру, либо он рано или поздно принтер пробудет отключенным слишком долго и в следующий раз ему дадут другой IP), тем более что принтер умеет в протокол Avahi.

Принтер видится через avahi-browse, но простейший пинг выдаёт, что хост не найден (пингуется только по IP). А хочу, чтобы нормально ресолвил имя.

Подправил nsswitch.conf, теперь там напротив hosts такая строчка (я просто дописал mdns4_minimal [NOTFOUND=return] перед resolve, всё остальное там уже было):

hosts: files mymachines myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

Однако это не помогло.

Если что systemd-сервисы avahi-daemon и avahi-dnsconfd запущены.

Что ещё можно сделать?

★★★★★
s/mdns4_minimal/mdns/

systemd-resolved в mDNS по факту не умеет, хотя такая возможность там вроде с некоторых пор есть (и даже в конфиге есть крутилка). Почему — не знаю.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx
hosts: files mymachines myhostname mdns [NOTFOUND=return] resolve [!UNAVAIL=return] dns

Теперь так. Рестартовал systemd-resolved (вроде как это должно сбрасывать кеши DNS). Не помогло.

$ ping EPSON90BD7F.local
ping: EPSON90BD7F.local: Неизвестное имя или служба
KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от intelfx

При этом:

$ avahi-resolve-host-name EPSON90BD7F.local
EPSON90BD7F.local       192.168.1.11

То есть сам по себе Avahi видит этот хост.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

Рестартовал systemd-resolved (вроде как это должно сбрасывать кеши DNS).

Это влияет только на кэш самого resolved.

Не помогло.

Тупой вопрос: а nss-mdns, собственно, установлен?

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Не было. Поставил. Не помогло. Перезагрузился. Поведение изменилось. Теперь пинг тупит пару секунд и в итоге решает пинговать локалхост (127.0.0.200). Следующие вызовы сразу же пингует локалхост. Это, конечно, не «неизвестное доменное имя», но и не совсем то, что нужно.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от KivApple

Странно. Могу предложить разве что пострейсить / по-tcpdump-ать / запустить Avahi с дебагом. Ну и кастани/ответь, если/когда решишь.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

В одном терминале запускаю команду host, в другом tcpdump:

$ sudo tcpdump -i wlp58s0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp58s0, link-type EN10MB (Ethernet), capture size 262144 bytes
18:01:03.086536 ARP, Request who-has xps-9350 tell 192.168.1.13, length 28
18:01:03.086578 ARP, Reply xps-9350 is-at 54:8c:a0:df:a5:cd (oui Unknown), length 28
18:01:03.190552 IP6 xps-9350.mdns > ff02::fb.mdns: 0 PTR (QM)? 13.1.168.192.in-addr.arpa. (43)
18:01:03.190695 IP xps-9350.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 13.1.168.192.in-addr.arpa. (43)
18:01:04.192060 IP6 xps-9350.mdns > ff02::fb.mdns: 0 PTR (QM)? 13.1.168.192.in-addr.arpa. (43)
18:01:04.192181 IP xps-9350.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 13.1.168.192.in-addr.arpa. (43)
18:01:06.194531 IP6 xps-9350.mdns > ff02::fb.mdns: 0 PTR (QM)? 13.1.168.192.in-addr.arpa. (43)
18:01:06.194694 IP xps-9350.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 13.1.168.192.in-addr.arpa. (43)
18:01:07.813394 IP xps-9350.33632 > 192.168.1.13.xmsg: Flags [.], ack 619632868, win 321, options [nop,nop,TS val 457659947 ecr 8862364], length 0
18:01:08.097414 IP xps-9350.58193 > _gateway.domain: 51326+ PTR? b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. (90)
18:01:08.171528 IP _gateway.domain > xps-9350.58193: 44229 NXDomain 0/1/0 (154)
18:01:08.219427 IP 192.168.1.13.xmsg > xps-9350.33632: Flags [.], ack 1, win 358, options [nop,nop,TS val 8862895 ecr 457578005], length 0
18:01:13.101990 IP xps-9350.58193 > _gateway.domain: 51326+ PTR? b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa. (90)
18:01:13.174966 IP _gateway.domain > xps-9350.58193: 61740 NXDomain 0/1/0 (154)
18:01:15.913929 IP xps-9350.34802 > _gateway.domain: 37293+ A? EPSON90BD7F.local. (35)
18:01:15.952963 IP _gateway.domain > xps-9350.34802: 37293 1/0/0 A 127.0.0.200 (51)
18:01:15.953669 IP xps-9350.45322 > _gateway.domain: 63110+ AAAA? EPSON90BD7F.local. (35)
18:01:18.205472 IP6 xps-9350.mdns > ff02::fb.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
18:01:18.205642 IP xps-9350.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
18:01:18.266756 IP xps-9350.33632 > 192.168.1.13.xmsg: Flags [.], ack 1, win 321, options [nop,nop,TS val 457670401 ecr 8862895], length 0
18:01:18.557845 IP 192.168.1.13.xmsg > xps-9350.33632: Flags [.], ack 1, win 358, options [nop,nop,TS val 8863021 ecr 457578005], length 0
18:01:19.037633 ARP, Request who-has xps-9350 tell _gateway, length 28
18:01:19.037672 ARP, Reply xps-9350 is-at 54:8c:a0:df:a5:cd (oui Unknown), length 28
18:01:19.207350 IP6 xps-9350.mdns > ff02::fb.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
18:01:19.207491 IP xps-9350.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
18:01:20.954120 IP xps-9350.45322 > _gateway.domain: 63110+ AAAA? EPSON90BD7F.local. (35)
18:01:20.993842 IP _gateway.domain > xps-9350.45322: 63110 0/1/0 (98)
18:01:20.994470 IP xps-9350.43095 > _gateway.domain: 11983+ MX? EPSON90BD7F.local. (35)
18:01:21.210118 IP6 xps-9350.mdns > ff02::fb.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
18:01:21.210262 IP xps-9350.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 251.0.0.224.in-addr.arpa. (42)
18:01:23.386778 ARP, Request who-has 192.168.1.13 tell xps-9350, length 28
18:01:23.460338 ARP, Reply 192.168.1.13 is-at 38:a4:ed:b8:74:39 (oui Unknown), length 28
18:01:24.078827 IP _gateway.domain > xps-9350.43095: 11983 0/1/0 (98)
18:01:28.719778 IP xps-9350.33632 > 192.168.1.13.xmsg: Flags [.], ack 1, win 321, options [nop,nop,TS val 457680854 ecr 8863021], length 0
18:01:28.790259 IP 192.168.1.13.xmsg > xps-9350.33632: Flags [.], ack 1, win 358, options [nop,nop,TS val 8863375 ecr 457578005], length 0
^C
35 packets captured
35 packets received by filter
0 packets dropped by kernel
KivApple ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Оно внезапно заработало и ping начал пинговать принтер (причём сразу по приватному IPv6, умные нынче принтеры пошли, с ключом -4 пингует по IPv4). Я почувствовал подвох и перезагрузил компьютер. И правда - теперь снова резолвится в локалхост. Использовал команду getent hosts EPSON90BD7F.local.

https://pastebin.com/wvc4tHE7

Если что принтер имеет локальный IP 192.168.1.11, а ноутбук 192.168.1.12 (хостнейм xps-9350), Роутер имеет IP 192.168.1.1. В сети есть другие машины.

Также avahi-resolve-host-name выдаёт правильный IP мгновенно.

KivApple ★★★★★
() автор топика
Последнее исправление: KivApple (всего исправлений: 3)
Ответ на: комментарий от KivApple

Странно. В твоём трейсе до mDNS вообще дело не доходит, но зато есть DNS-запросы с зоной .local. Их в твоей конфигурации быть не должно, потому что у тебя [NOTFOUND=return] написано.

В общем, ни черта не понятно. :) Может, у тебя Avahi как-то не так настроен (например, на другую зону по умолчанию)?

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Да нет же...

$ systemctl status avahi-daemon
● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
   Loaded: loaded (/usr/lib/systemd/system/avahi-daemon.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2018-08-25 18:17:47 +04; 30min ago
 Main PID: 626 (avahi-daemon)
   Status: "avahi-daemon 0.7 starting up."
    Tasks: 2 (limit: 4915)
   Memory: 1.5M
   CGroup: /system.slice/avahi-daemon.service
           ├─626 avahi-daemon: running [xps-9350.local]
           └─631 avahi-daemon: chroot helper

авг 25 18:17:47 xps-9350 avahi-daemon[626]: Successfully dropped remaining capabilities.
авг 25 18:17:47 xps-9350 avahi-daemon[626]: No service file found in /etc/avahi/services.
авг 25 18:17:47 xps-9350 avahi-daemon[626]: Network interface enumeration completed.
авг 25 18:17:47 xps-9350 avahi-daemon[626]: Server startup complete. Host name is xps-9350.local. Local service cookie is 2789106336.
авг 25 18:18:03 xps-9350 avahi-daemon[626]: Joining mDNS multicast group on interface wlp58s0.IPv6 with address fe80::8378:ab02:f6d7:a420.
авг 25 18:18:03 xps-9350 avahi-daemon[626]: New relevant interface wlp58s0.IPv6 for mDNS.
авг 25 18:18:03 xps-9350 avahi-daemon[626]: Registering new address record for fe80::8378:ab02:f6d7:a420 on wlp58s0.*.
авг 25 18:18:04 xps-9350 avahi-daemon[626]: Joining mDNS multicast group on interface wlp58s0.IPv4 with address 192.168.1.12.
авг 25 18:18:04 xps-9350 avahi-daemon[626]: New relevant interface wlp58s0.IPv4 for mDNS.
авг 25 18:18:04 xps-9350 avahi-daemon[626]: Registering new address record for 192.168.1.12 on wlp58s0.IPv4.

Вполне себе .local.

KivApple ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.