Foreman DNS 错误 ERF12-2357 [ProxyAPI::ProxyException]: 无法设置 DNS 条目

Foreman DNS 错误 ERF12-2357 [ProxyAPI::ProxyException]: 无法设置 DNS 条目

设置领班环境后,我收到错误:

“无法保存为 mydomain.de 创建反向 DNS 记录任务,失败并出现以下错误:ERF12-2357 [ProxyAPI::ProxyException]: 无法为代理设置 DNS 条目([RestClient::BadRequest]: 400 错误请求)https://mydomain.de:8443/dns

我确实阅读了我能找到的关于该问题的每个 Google 页面以及我能找到的每个错误报告,但我不知道它为什么不起作用。我有点绝望了……

我目前所做的:

  • 我把 /etc/foreman-proxy/settings.yml 中带有 dns-key 的行注释掉了
  • 我使用了 Centos、Ubuntu 13.04、13.10、14.04
  • 我把 HOLE 系统 777 赋予了每个文件
  • 我选择了另一个域名

我的系统日志错误消息锁定如下:

“8 月 12 日 18:54:22 foremanmaster01 named1016:客户端 127.0.0.1#58169:更新‘10.in-addr.arpa/IN’被拒绝”

有人知道为什么这不起作用吗?因为我无法理解。我会为您提供我能找到的所有信息来解决这个问题。

答案1

如果这仍然是一个问题,我发现按照 Foreman 安装指南进行操作非常令人困惑。您的 dns 和 dhcp 密钥都需要相同,而在安装指南中,它显示了在 dns 和 dhcp 之间配置密钥的两种不同方法。

这最终对我有用:运行:ddns-confgen -k foreman -a hmac-md5

产生的输出如下:

 key "foreman" {
         algorithm hmac-md5;
         secret "GGd1oNCxaKsh8HA84sP1Ug=="; };

将此文本块放入 /etc/rndc.key

现在您必须更新您的守护进程配置:
/etc/named.conf
/etc/zones.conf
/etc/dhcp/dhcpd.conf

/etc/named.conf:
添加:

include "/etc/rndc.key";
controls  {
        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "foreman"; };
};

这告诉 BIND 从 /etc/rndc.key 中读取名为“foreman”的密钥,并允许名为“foreman”的密钥连接到 953 上的控制端口来执行 ddns 更新。

现在,在/etc/zones.conf,这是我的示例,我使用“.local”作为我的域,使用 172.16.1.0/24 作为我的网络。请进行相应调整。

zone "1.16.172.in-addr.arpa" {
    type master;
    file "/var/named/dynamic/db.1.16.172.in-addr.arpa";
    update-policy {
            grant foreman zonesub ANY;
    };
};
zone "local" {
    type master;
    file "/var/named/dynamic/db.local";
    update-policy {
            grant foreman zonesub ANY;
    };
};

重要的部分是:

update-policy {
                grant foreman zonesub ANY;
        };

这告诉 BIND,主要负责人被允许更新/添加这些区域中的任何记录。

最后,这让我很困惑,因为安装指南对 DHCP 服务器使用了不同的语法: /etc/dhcp/dhcpd.conf 添加:

omapi-port 7911;
key foreman {
algorithm HMAC-MD5;
secret "GGd1oNCxaKsh8HA84sP1Ug==";
};
omapi-key foreman;

现在您转到 foreman-proxy 配置文件:
/etc/foreman-proxy/settings.d/dns.yml
/etc/foreman-proxy/settings.d/dhcp.yml


内容:/etc/foreman-proxy/settings.d/dns.yml

---
# DNS management
:enabled: true

# valid providers:
#   dnscmd (Microsoft Windows native implementation)
#   nsupdate
#   nsupdate_gss (for GSS-TSIG support)
#   virsh (simple implementation for libvirt)

:dns_provider: nsupdate
:dns_key: /etc/rndc.key

# use this setting if you are managing a dns server which is not localhost though this proxy
:dns_server: 127.0.0.1
# use this setting if you want to override default TTL setting (86400)
:dns_ttl: 86400

内容:/etc/foreman-proxy/settings.d/dhcp.yml

---
# Enable DHCP management
:enabled: true
# valid vendors:
#   - isc
#   - native_ms (Microsoft native implementation)
#   - virsh (simple implementation for libvirt)
:dhcp_vendor: isc
:dhcp_config: /etc/dhcp/dhcpd.conf
:dhcp_leases: /var/lib/dhcpd/dhcpd.leases
:dhcp_key_name: foreman
:dhcp_key_secret: GGd1oNCxaKsh8HA84sP1Ug==

无论出于什么原因,使用不同的密钥配置两者总是给我带来问题。这终于解决了问题。希望有帮助。

哦,仅供参考,这些文件/etc/rndc.key、/etc/dhcp/dhcpd.conf、/var/lib/dh​​cpd/dhcpd.leases需要可被 foreman-proxy 读取,我通过将 foreman-proxy 添加到 dhcp 和命名组来实现这一点:

usermod -a -G dhcpd foreman-proxy
usermod -a -G named foreman-proxy

ls -l /etc/named.conf /etc/zones.conf /etc/rndc.key /etc/dhcp/dhcpd.conf /var/lib/dhcpd/dhcpd.leases
-rw-r--r--. 1 root  root   787 Apr 10 14:56 /etc/dhcp/dhcpd.conf
-rw-r-----. 1 root  named  275 Apr 10 14:45 /etc/named.conf
-rw-r-----. 1 root  named   77 Apr 10 14:41 /etc/rndc.key
-rw-r-----. 1 root  named  316 Apr 10 12:40 /etc/zones.conf
-rw-r--r--. 1 dhcpd dhcpd 1262 Apr 10 15:00 /var/lib/dhcpd/dhcpd.leases

id foreman-proxy
uid=498(foreman-proxy) gid=497(foreman-proxy) groups=497(foreman-proxy),52(puppet),177(dhcpd),25(named)

相关内容