通过系统调用理解resolve.conf名称服务器

通过系统调用理解resolve.conf名称服务器

我试图了解 /etc/resolve.conf /etc/nsswitch.conf 的具体工作原理以及名称服务器条目 127.0.1.1 的意义

我执行了 strace ping google.com 来了解所涉及的系统调用,其中一部分是:

stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=172, ...}) = 0
socket(PF_INET, SOCK_DGRAM|SOCK_NONBLOCK, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.1.1")}, 16) = 0
gettimeofday({1413780874, 913366}, NULL) = 0
poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])
send(4, "\0040\1\0\0\1\0\0\0\0\0\0\6google\3com\0\0\1\0\1", 28, MSG_NOSIGNAL) = 28
poll([{fd=4, events=POLLIN}], 1, 5000)  = 1 ([{fd=4, revents=POLLIN}])
ioctl(4, FIONREAD, [204])               = 0
recvfrom(4, "\0040\201\200\0\1\0\v\0\0\0\0\6google\3com\0\0\1\0\1\300\f\0\1"..., 1024, 0, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("127.0.1.1")}, [16]) = 204
close(4)                                = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("173.194.123.36")}, 16) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(58830), sin_addr=inet_addr("192.168.1.13")}, [16]) = 0
close(4)

有人能解释一下这里发生了什么吗?特别是连接到 127.0.1.1,因为它是我的 resolve.conf 中的 namsserver 条目。为什么我们需要与 127.0.1.1 建立套接字连接?我们如何从它那里得到响应?

答案1

127.XXX.XXX.XXX 为环回保留。您可以 ping 127.0.0.1 到 127.255.255.254 之间的任何地址,并且您正在向自己发送 ping 请求。/etc/resolv.conf 是计算机 DNS 解析器的配置文件(告诉您的计算机在哪里查找名称到 IP 的解析)。

就您而言,DNS 解析器会回头查找自身以进行名称解析。如果您正在运行 DNS 服务器(例如 BIND DNS),这完全正常,但请记住,BIND DNS 服务器将使用根提示查询自身未知的地址(任何未在您自己的 BIND DNS 服务器上配置的区域),并将解析您查询的任何名称的公共 IP 地址。

话虽如此,如果您在内部 IP 地址 192.168.1.10 上托管 www.company.com 的内部网站,并尝试从该 Linux 服务器 ping 该网站,您将解析为外部公共 DNS 服务器上列出的 IP 地址。除非:

  1. 您已在 BIND DNS 服务器上配置 DNS 区域 company.com,并具有指向内部 IP 地址的记录。

  2. 您在 BIND DNS 服务器上设置了一个转发器,以指向具有地址 www.company.com 的内部 DNS 条目的内部 DNS 服务器(即 Active Directory DNS 服务器)。

  3. 您将 /etc/resolv.conf 文件配置为使用内部 DNS 服务器而不是其自身。(某些系统在编辑此文件时会有所不同。在 Ubuntu 中,如果您想编辑 resolv.conf 文件,则应编辑 /etc/resolvconf/resolv.conf.d/base 文件,以便在重启后保留配置)

相关内容