如何让 bind9 只监听这个动态 ip 接口

How to get bind9 to listen only on this dynamic ip interface

bind9 配置的listen-on 语句似乎只为一个接口获取IP 地址。 “man named.conf”显示 listen-on

的详细信息

对于内部 named 守护程序,正在侦听的接口可以声明为:

listen-on {
    127.0.0.1;
    192.168.1.1;
 };

现在转到外部 bind9/named 守护进程...ISP 为这个盒子提供动态 IP 地址(即 4.3.2.1)。如果我只想听 ISP 分配的 IP 地址,我试过这个:

listen-on {
    !127.0.0.1;
    !192.168.1.1;
 };

唉,这并不能阻止绑定 named 获取任何未使用的网络接口。

如何让 bind9 named 守护进程只监听动态 IP 接口和 none 未使用的接口(IP 地址)?请记住,您事先并不知道绑定配置文件所需的面向 public 的网络接口的 IP 地址。

这对我有用:

listen-on {
        !127.0.0.1;
        !172.17.0.0/24;
        0.0.0.0/0;
};

或者,如果您知道服务提供商使用的潜在 IP 地址范围列表(您可以询问他们,或者您可以查看 WHOIS 数据库中的 AS 路由对象),您可以仅列出这些前缀:

listen-on {
        194.38.96.0/19;
        200.201.202.0/24;
};