设置领班环境后,我收到错误:
“无法保存为 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/dhcpd/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)