Project

General

Profile

Actions

Feature #14922

open

Resolv getaddresses ignores AAAA records for IPv6

Added by dlampa (Donovan Lampa) almost 3 years ago. Updated 7 months ago.

Status:
Assigned
Priority:
Normal
Target version:
-
[ruby-core:88010]

Description

I'd like some feedback here as I'm not totally convinced this is a bug quite yet. I may have done something silly with my DNS configuration.

I have a local DNS server set up with the following /etc/resolv.conf

[root@ip-10-20-0-181 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search us-east-2.compute.internal
nameserver ::1

And the following zone configured in bind

[root@ip-10-20-0-181 ~]# cat /var/named/test.net.zone
$TTL    86400

@       IN      SOA     test.net root.test.net (
        2016050204
        3600
        900
        604800
        86400
)

@               IN      NS         testbox
testbox         IN      AAAA       2600:1f16:a82:9b01:5a89:f06f:dde4:7b5e
malware         IN      AAAA       2600:1f16:a82:9b01:cab2:a7c0:e2cb:1162
goodware        IN      A          10.20.0.181

It appears that Resolv needs me to explicitly request the AAAA resource for malware.test.net in order to get the IPv6 address in this situation. It doesn't seem to need that for IPv4.

irb(main):001:0> require 'resolv'
=> true
irb(main):002:0> resolver = Resolv.new
=> #<Resolv:0x0000000001db3c78 @resolvers=[#<Resolv::Hosts:0x0000000001db3c28 @filename="/etc/hosts", @mutex=#<Thread::Mutex:0x0000000001db3bd8>, @initialized=nil>, #<Resolv::DNS:0x0000000001db3b88 @mutex=#<Thread::Mutex:0x0000000001db3b38>, @config=#<Resolv::DNS::Config:0x0000000001db3ae8 @mutex=#<Thread::Mutex:0x0000000001db3a48>, @config_info=nil, @initialized=nil, @timeouts=nil>, @initialized=nil>]>
irb(main):003:0> resolver.getaddresses("malware.test.net")
=> []
irb(main):004:0> resolver.getaddresses("goodware.test.net")
=> ["10.20.0.181"]
irb(main):005:0> dns_resolver = Resolv::DNS.new
=> #<Resolv::DNS:0x0000000001d2a040 @mutex=#<Thread::Mutex:0x0000000001d29fa0>, @config=#<Resolv::DNS::Config:0x0000000001d29f78 @mutex=#<Thread::Mutex:0x0000000001d29e60>, @config_info=nil, @initialized=nil, @timeouts=nil>, @initialized=nil>
irb(main):006:0> dns_resolver.getresource("malware.test.net", Resolv::DNS::Resource::IN::AAAA)
=> #<Resolv::DNS::Resource::IN::AAAA:0x0000000001cbaf38 @address=#<Resolv::IPv6 2600:1F16:A82:9B01:CAB2:A7C0:E2CB:1162>, @ttl=86400>

Based on Resolv's documentation I would expect to get back the IPv6 address for malware.test.net


Files

resolv-use_ipv6-14922.patch (2.08 KB) resolv-use_ipv6-14922.patch jeremyevans0 (Jeremy Evans), 08/27/2019 03:36 AM
Actions

Also available in: Atom PDF