设置 Bonjour 名称服务器

设置 Bonjour 名称服务器

我一直在关注 DNS-SD 的官方文档设置 Bonjour 名称服务器。即广域 DNS 服务器。这些说明似乎相当陈旧,因为其中提到的一些内容已不复存在(例如dnsextd在 macOS 上,它似乎已并入bind9任何状况之下)。

我实际上是在 Linux 安装(Raspbian)上设置这个 DNS 服务器,根据该页面的说法,这应该是可行的。

您还可以使用 Linux、Solaris 或任何其他可以运行 BIND 名称服务器的 Unix 风格的操作系统。

以下是我在服务器系统上的相关配置文件。

/etc/bind/named.conf.options

options {
    directory "/var/cache/bind";

    forwarders {
        192.168.0.1;
        fdd4:12f8:9ad3:0:8272:15ff:fe97:6678;
    };

    dnssec-lookaside auto;

    listen-on-v6 { any; };
}

/etc/bind/named.conf.local

zone "lan." IN {
    type master;
    file "lan.zone";
};

zone "bonjour.lan." IN {
    type master;
    file "bonjour.lan.zone";
    allow-update { any; };
};

/var/cache/bind/lan.zone

@ IN SOA rpi.lan. hostmaster.lan. (
    1  ; serial
    8H ; refresh
    4H ; retry
    4W ; expire
    1D ; minimum
)

@             IN NS rpi.lan.
@             IN MX 10 rpi.lan.
localhost     IN A  127.0.0.1
router        IN A  192.168.0.1
rpi           IN A  192.168.0.10

/var/cache/bind/bonjour.lan.zone

@ IN SOA rpi.lan. hostmaster.lan. (
    1  ; serial
    3H ; refresh
    1H ; retry
    1W ; expire
    1M ; minimum
)

@ IN NS rpi.lan.

_dns-update._udp IN SRV 0 0 53 rpi.lan.

b._dns-sd._udp  IN PTR @
lb._dns-sd._udp IN PTR @
r._dns-sd._udp  IN PTR @

但是,此设置无法获取通过 Bonjour 在网络上通告的任何设备。运行 即可看到这一点dig bonjour.lan

; <<>> DiG 9.18.12 <<>> bonjour.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41841
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ebefdba02287f4bb7687ffc663fa9167695632eedfc0a265 (good)
;; QUESTION SECTION:
;bonjour.lan.           IN  A

;; AUTHORITY SECTION:
bonjour.lan.        60  IN  SOA rpi.lan. hostmaster.lan. 3 10800 3600 604800 60

;; Query time: 79 msec
;; SERVER: 192.168.0.10#53(192.168.0.10) (UDP)
;; WHEN: Sat Feb 25 22:53:27 GMT 2023
;; MSG SIZE  rcvd: 129

如能得到关于如何实现此功能的任何建议我将非常感激。

答案1

服务器永远不会自己“拾取”任何东西;它不应该这样做。广域 DNS-SD 的工作原理是客户使用 DNS“UPDATE”命令在服务器上明确注册自己。

仅“Bonjour”支持此功能,即 macOS 使用的特定 DNS-SD 实现(又名 mDNSResponder;有时安装在 Windows 上)。其控制面板允许指定域,甚至可选的 TSIG-HMAC 更新密钥。Linux 上的 Avahi 支持浏览广域 DNS-SD 域,但不支持更新它们。

据我所知,没有其他 DNS-SD 实现支持广域 DNS-SD;它们纯粹是 mDNS,只处理域local。(各种支持 mDNS 的设备和嵌入式系统没有理由支持它,也有理由不支持。)

相关内容