mDNS

代码 主页

启用命令
mdns:github.com/openshift/coredns-mdns

mdns - 在常规 DNS 地址上提供 “.local” mDNS 信息。

描述

本插件从本地网络读取 mDNS 记录,并根据这些记录对查询结果进行响应。

可通过标准 DNS 服务器访问,从而为非 mDNS 感知应用提供 mDNS 记录,非常有用。

语法

mdns example.com [minimum SRV records] [filter text] [bind address]

示例

此插件的使用需要有一个在本地网络上广播 mDNS 记录的系统。请注意,.local 域名将替换为已配置的域名。例如,在使用以下配置时,test.local 将变为 test.example.com

为记录指定域名。

example.com {
	mdns example.com
}

使用 dig进行测试

dig @localhost baremetal-test-extra-1.example.com

;; ANSWER SECTION:
baremetal-test-extra-1.example.com. 60 IN A   12.0.0.24
baremetal-test-extra-1.example.com. 60 IN AAAA fe80::f816:3eff:fe49:19b3

如果配置中指定了 minimum SRV records,插件将在响应任何 SRV 记录之前等待,直到至少有该数量的 SRV 记录。minimum SRV records 的默认值为 3

example.com {
    mdns example.com 2
}

这意味着,对于任何 SRV 记录,至少需要出现两个给定类型的 SRV 记录。如果仅找到一条记录,对该类型 SRV 记录的任何请求都将得不到结果。

如果配置中指定了 filter text,插件将忽略其服务名称中不包含指定文本的任何 mDNS 记录。这允许在将 mDNS 服务用于非预期用途的环境中使用此插件。当 filter text 未被设置时,将处理所有记录。

example.com {
    mdns example.com 3 my-id
}

此配置将忽略其服务名称中不包含字符串“my-id”的任何 mDNS 记录。

如果配置中指定了 bind address,插件将只向相关接口发送 mDNS 流量。这防止在可能不希望发送多播数据包的接口上发送多播数据包。要在不设置过滤器的情况下使用 bind address,将 filter text 设置为“”。

example.com {
    mdns example.com 3 "" 192.168.1.1
}

此配置将仅向被分配了 192.168.1.1 地址的接口发送多播数据包。接口查找在发送 mDNS 查询时是动态的,因此,如果地址移至其他接口,插件将自动切换到该接口。