Bug 1404412

Summary: BIND cannot cache URI RR received from recent servers
Product: Red Hat Enterprise Linux 7 Reporter: Petr Menšík <pemensik>
Component: bindAssignee: Petr Menšík <pemensik>
Status: CLOSED CURRENTRELEASE QA Contact: qe-baseos-daemons
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: thozza
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: bind-9.9.4-34.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-03-30 16:08:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1420851    

Description Petr Menšík 2016-12-13 19:08:05 UTC
Description of problem:
Bind 9.9.4-29.el7_2.4 will not cache URI RR from remote servers, if they use more recent format that it recognizes. If RHEL 7 servers are used as your network cache, you will be unable to resolve any URI record from internet.

Version-Release number of selected component (if applicable):
bind-9.9.4-29.el7_2.4

How reproducible:
Always

Steps to Reproduce:
1. setup BIND as caching server, listening on localhost
2. Use more recent bind-utils, for example on fedora 24
3. send dig @cache _kerberos.fedoraproject.org URI, where cache is your RHEL7 cache server with BIND 9.9

Actual results:
$ dig +cd @rhel7 _kerberos.fedoraproject.org uri

; <<>> DiG 9.10.4-P4-RedHat-9.10.4-2.P4.fc24 <<>> +cd @rhel7 _kerberos.fedoraproject.org uri
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 3367
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_kerberos.fedoraproject.org.	IN	URI


Expected results:
$ dig +cd @rhel6 _kerberos.fedoraproject.org uri

; <<>> DiG 9.10.4-P4-RedHat-9.10.4-2.P4.fc24 <<>> +cd @rhel6 _kerberos.fedoraproject.org uri
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40510
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 6

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;_kerberos.fedoraproject.org.	IN	URI

;; ANSWER SECTION:
_kerberos.fedoraproject.org. 300 IN	URI	10 1 "krb5srv:m:kkdcp:https://id.fedoraproject.org/KdcProxy/"


Additional info:
Surprising fact is, older BIND 9.8.2 from RHEL 6 does work as expected. It can cache the record, because it does not try to understand it. It is regression since RHEL6. But 9.9 will refuse current URI record as invalid. But it is in fact more valid, conforming to RFC 7553.

Comment 2 Petr Menšík 2017-03-30 16:02:01 UTC
Ability to cache URI records was fixed with addition of a CAA record in bug #1306610. UI records served by older servers are cached with first byte length, so it caches exactly how served by original server.

It is already fixed in rhel-7.3