diff options
author | Petr Spacek <pspacek@redhat.com> | 2016-03-07 14:37:31 +0100 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2016-04-28 18:46:06 +0200 |
commit | 51907d5bb8fce9e5358fed50c0ec7074ef7f0c69 (patch) | |
tree | 2579a2299ac93029092174bf2a95f501ac574bbf | |
parent | c7ee765c4de086ac92922519d7065fc6b6796f10 (diff) | |
download | freeipa-51907d5bb8fce9e5358fed50c0ec7074ef7f0c69.tar.gz freeipa-51907d5bb8fce9e5358fed50c0ec7074ef7f0c69.tar.xz freeipa-51907d5bb8fce9e5358fed50c0ec7074ef7f0c69.zip |
Auto-detect default value for --forward-policy option in installers
Forward policy defaults to 'first' if no IP address belonging to a private
or reserved ranges is detected on local interfaces (RFC 6303).
Defaults to only if a private IP address is detected.
This prevents problems with BIND automatic empty zones because
conflicting zones cannot be disabled unless forwarding policy == only.
https://fedorahosted.org/freeipa/ticket/5710
Reviewed-By: Martin Basti <mbasti@redhat.com>
-rwxr-xr-x | install/tools/ipa-dns-install | 2 | ||||
-rw-r--r-- | install/tools/man/ipa-dns-install.1 | 5 | ||||
-rw-r--r-- | install/tools/man/ipa-replica-install.1 | 5 | ||||
-rw-r--r-- | install/tools/man/ipa-server-install.1 | 5 | ||||
-rw-r--r-- | ipaserver/install/dns.py | 11 | ||||
-rw-r--r-- | ipaserver/install/server/common.py | 2 |
6 files changed, 25 insertions, 5 deletions
diff --git a/install/tools/ipa-dns-install b/install/tools/ipa-dns-install index 53afd714d..d8b2eb0fe 100755 --- a/install/tools/ipa-dns-install +++ b/install/tools/ipa-dns-install @@ -58,7 +58,7 @@ def parse_options(): action="store_true", default=False, help="Use DNS forwarders configured in /etc/resolv.conf") parser.add_option("--forward-policy", dest="forward_policy", - choices=("first", "only"), default="first", + choices=("first", "only"), default=None, help="DNS forwarding policy for global forwarders") parser.add_option("--reverse-zone", dest="reverse_zones", default=[], action="append", metavar="REVERSE_ZONE", diff --git a/install/tools/man/ipa-dns-install.1 b/install/tools/man/ipa-dns-install.1 index e3739e2bb..ad937cc59 100644 --- a/install/tools/man/ipa-dns-install.1 +++ b/install/tools/man/ipa-dns-install.1 @@ -42,7 +42,10 @@ Do not add any DNS forwarders, send non\-resolvable addresses to the DNS root se Add DNS forwarders configured in /etc/resolv.conf to the list of forwarders used by IPA DNS. .TP \fB\-\-forward\-policy\fR=\fIfirst|only\fR -DNS forwarding policy for global forwarders specified using other options. Defaults to first. +DNS forwarding policy for global forwarders specified using other options. +Defaults to first if no IP address belonging to a private or reserved ranges is +detected on local interfaces (RFC 6303). Defaults to only if a private +IP address is detected. .TP \fB\-\-reverse\-zone\fR=\fIREVERSE_ZONE\fR The reverse DNS zone to use. This option can be used multiple times to specify multiple reverse zones. diff --git a/install/tools/man/ipa-replica-install.1 b/install/tools/man/ipa-replica-install.1 index 6875f4e41..0e9f51a64 100644 --- a/install/tools/man/ipa-replica-install.1 +++ b/install/tools/man/ipa-replica-install.1 @@ -150,7 +150,10 @@ Do not add any DNS forwarders. Root DNS servers will be used instead. Add DNS forwarders configured in /etc/resolv.conf to the list of forwarders used by IPA DNS. .TP \fB\-\-forward\-policy\fR=\fIfirst|only\fR -DNS forwarding policy for global forwarders specified using other options. Defaults to first. +DNS forwarding policy for global forwarders specified using other options. +Defaults to first if no IP address belonging to a private or reserved ranges is +detected on local interfaces (RFC 6303). Defaults to only if a private +IP address is detected. .TP \fB\-\-reverse\-zone\fR=\fIREVERSE_ZONE\fR The reverse DNS zone to use. This option can be used multiple times to specify multiple reverse zones. diff --git a/install/tools/man/ipa-server-install.1 b/install/tools/man/ipa-server-install.1 index e5f6f760b..55b49449e 100644 --- a/install/tools/man/ipa-server-install.1 +++ b/install/tools/man/ipa-server-install.1 @@ -159,7 +159,10 @@ Do not add any DNS forwarders. Root DNS servers will be used instead. Add DNS forwarders configured in /etc/resolv.conf to the list of forwarders used by IPA DNS. .TP \fB\-\-forward\-policy\fR=\fIfirst|only\fR -DNS forwarding policy for global forwarders specified using other options. Defaults to first. +DNS forwarding policy for global forwarders specified using other options. +Defaults to first if no IP address belonging to a private or reserved ranges is +detected on local interfaces (RFC 6303). Defaults to only if a private +IP address is detected. .TP \fB\-\-reverse\-zone\fR=\fIREVERSE_ZONE\fR The reverse DNS zone to use. This option can be used multiple times to specify multiple reverse zones. diff --git a/ipaserver/install/dns.py b/ipaserver/install/dns.py index cae8787a4..ccb7760e3 100644 --- a/ipaserver/install/dns.py +++ b/ipaserver/install/dns.py @@ -259,6 +259,17 @@ def install_check(standalone, api, replica, options, hostname): ip_addresses = get_server_ip_address(hostname, options.unattended, True, options.ip_addresses) + if not options.forward_policy: + # user did not specify policy, derive it: default is 'first' but + # if any of local IP addresses belongs to private ranges use 'only' + options.forward_policy = 'first' + for ip in ip_addresses: + if dnsutil.inside_auto_empty_zone(dnsutil.DNSName(ip.reverse_dns)): + options.forward_policy = 'only' + root_logger.debug('IP address %s belongs to a private range, ' + 'using forward policy only', ip) + break + if options.no_forwarders: options.forwarders = [] elif options.forwarders or options.auto_forwarders: diff --git a/ipaserver/install/server/common.py b/ipaserver/install/server/common.py index 84b176bc8..ecddc6143 100644 --- a/ipaserver/install/server/common.py +++ b/ipaserver/install/server/common.py @@ -170,7 +170,7 @@ class BaseServerDNS(common.Installable, core.Group, core.Composite): ) forward_policy = Knob( - {'only', 'first'}, 'first', + {'only', 'first'}, None, description=("DNS forwarding policy for global forwarders"), ) |