Linux网络管理员手册(6) 第六章 名字服务和解析器配置 DNS 解析器库 host.conf nslookup

mDNS协议深度解析:从零配置网络发现到智能家居应用实战 在计算机网络中,服务发现是设备间自动识别和通信的基础技术,它解决了传统手动配置IP地址和依赖中心化服务器的痛点。其核心原理基于多播DNS协议,通过本地网络广播机制实现零配置的即插即用。这项技术的核心价值在于提升运维效率和用户体验,尤其在物联网和智能家居场景中至关重要。例如,在智能家居设备配网和物联网传感器组网中,mDNS让设备能自动宣告服务并相互发现,无需复杂设置。本文聚焦mDNS协议,通过Python实战演示如何实现一个简易服务,并详解其跨平台调试工具和典型应用场景,帮助开发者掌握这一构建无缝本地网络连接 阅读详情
Linux网络管理员手册(6)
2000-07-29 10:47

发布者:netbull 阅读次数:1252
翻译:赵炯
gohigh@shtdu.edu.cn

第六章 名字服务和解析器配置

正如第二章所述,TCP/IP网络可以依赖于不同的方案来将名字转换成地址。如果不利用名字空间被分裂成区的好处的话,最简单的方法是用存储于/etc/hosts中的主机表。这仅对由一个管理员管理的小型局域网有用,而且这个局域网要与外界没有IP通信。hosts文件的格式早已在第5章中描述过。
作为选择,你可以使用BIND—伯克里互连网名字域服务(Berkeley Internet Name Domain Service)--来解析主机名到IP地址。配置BIND可能很是繁杂,但是一旦你完成它,那么网络拓扑的变化很容易做到。在Linux上,正如在许多其它UNIX样的系统中,名字服务是通过一个称为named的程序提供的。在启动时,它将一组主要文件装入缓冲中,等待从远程或本地用户进程来的请求。设立BIND有不同的方法,并且不是所有的方法都需要你在每个主机上都运行名字服务器的。
虽然本章可以叙述的更详细一些,但却只是给出了如何操作一个名字服务器的粗略概况。如果你计划在不只是一个小型局域网并且可能有一个Internet连接的环境下使用BIND,你应该针对BIND取得一本好书,例如Crichet Liu的“DNS和BIND”(见[AlbitzLiu92])。对于当前的信息,你也可以查阅包括在BIND原程序中的发行注释(release notes)。还有一个DNS问题新闻组(newsgroup)称为comp.protocols.tcp-ip.domains。

6.1 解析器库
当谈及“解析器”,我们并不是指任何特殊的应用程序,而是指解析器库(resolver library),是一个能在标准C库中找到的函数的集合。主要的例程是gethostbyname(2)和gethostbyaddr(2),它们查寻属于一个主机的所有的IP地址,并且反之也然。它们可以被配置成只是简单地在hosts中查询信息、请求名字服务器的一个数、或使用NIS的hosts数据库(Network Information Service)。其它的应用程序,象smail,可能包括这些中的任何不同的驱动程序,并且需要特别的照料。

6.1.1 host.conf文件
控制你的解析器设置的主要文件是host.conf。它存储于/etc中并且告知解析器使用哪个服务、以及用什么顺序。
Host.conf中的选项必须出现在不同的行上。各个域要用空格(空格或制表符)隔离。一个“#”号表示一个注释行。
有以下一些选项:

order
这确定了解析服务试验的顺序。有效的选项是:bind用于请求名字服务器、hosts用于在/etc/hosts中查找、nis用于NIS查寻。可以指定其中的任何一个或所有。它们出现在一行上的顺序决定了各个相关服务试验的顺序。
multi
以on或off做为选项。这决定了在/etc/hosts中的一个主机是否可以有几个IP地址,它通常指的是作为“多宿主的”。这个标志对DNS或NIS请求是没有作用的。
nospoof
就如前章所解释的,DNS通过使用in-addr.arpa域,允许你找到属于一个IP地址的主机名。名字服务器提供一个假主机名的企图被称为“哄骗”(“spoofing”)。为了防止这个做法,解析器可以配置成检查是否一个原始IP地址实际上是与一个获得的主机名相关的。如果不是,这个名字将被丢弃并且返回一个出错。这个行为是通过设置nospoof为on来打开的。
alert
这个选项使用on或off作为参数。如果它被打开,任何哄骗企图(见上面)将导致解析器将信息写进syslog日志文件中。
trim
这个选项将一个域名作为参数,在查寻之前它将被从主机名中删去。这对于hosts项是很有用的,那里你可能只想指定无本地域的主机名。附带有本地域名的一个主机的查寻将被移去本地域,这样就使得在/etc/hosts中的查找获得成功。

Vlager的一个样本文件显示如下:

# /etc/host.conf
# We have named running, but no NIS (yet)
order bind hosts
# Allow multiple addrs
multi on
# Guard against spoof attempts
nospoof on
# Trim local domain (not really necessary).
trim vbrew.com.

6.1.2 解析器环境变量
host.conf中的设置可以通过使用环境变量来覆盖。这些环境变量是

RESOLV_HOST_CONF
这指定读一个文件而不是读/etc/host.conf。
RESOLV_SERV_ORDER
覆盖host.conf中给出的顺序选项。服务器以hosts、bind、以及nis顺序给出,用空格、逗号、冒号、或分号来分隔。
RESOLV_SPOOF_CHECK
确定对待哄骗的方法。可以用off来完全禁止它。值warn和warn off启用哄骗检查,但分别打开或关闭日志。值*启用哄骗检查,但留下在host.conf中定义的日志选项。
RESOLV_MULTI
值on或off可用于覆盖host.conf中的multi选项。
RESOLV_OVERRIDE_TRIM_DOMAINS
这个环境变量指定了一个修整域的列表,它覆盖host.conf中给出的修整域。
RESOLV_ADD_TRIM_DOMAINS
这个环境变量指定了一个修整域的列表,它对host.conf中的修整域作了增加。

6.1.3 配置名字服务器查寻—resolv.conf
当配置解析器库以使用BIND名字服务进行主机查找,你也必须告知它使用哪个名字服务器。对此有一个独立的文件,称为resolv.conf。如果这个文件不存在或是空的,那么解析器就假设名字服务器在你本地的主机上。
如果在你的本地主机上运行一个名字服务器,就象在下面一节中解释的那样,你必须单独地设置它。如果你在本地网络上并且有机会使用一个现存的名字服务器的话,这将总是一种推荐的做法。
resolv.conf中最重要的选项是nameserver,它给出了要使用的名字服务器的IP地址。如果你通过几次给出nameserver选项指定了几个名字服务器,那么它们会以给出的顺序试用。因此,你应该首先给出最可靠的服务器。目前,至多支持三个名字服务器。
如果没有给出nameserver选项,那么解析器试图连接本地主机上的名字服务器。
其它两个选项,domain和search涉及到如果BIND不能用第一个请求解析主机名时附加在主机名上的缺省域。search选项指定了一个试用的域名列表。列表项是用空格或制表符分开的。
如果没有给出search选项,就会通过使用域名本身从本地域名以及直至root的父域中建立一个搜寻列表。本地域名可以使用domain语句给出;如果一个也没有给出,那么解析器就通过系统调用getdomainname(2)来获取。
如果这使得你感到混淆,考虑虚拟酿酒厂的resolv.conf样本文件:

# /etc/resolv.conf
# Our domain
domain vbrew.com
#
# We use vlager as central nameserver:
nameserver 191.72.1.1

当解析名字vale时,解析器将查询vale,并且vale.vbrew.com和vale.com都会失败。

6.1.4 解析器的稳固性
如果你在一个大型网络中运行一个局域网,你无疑地应该使用主要名字服务器如果它们存在的话。这样做的优点是它们会有丰富的缓冲,因为所有的请求都转发给了它们。然而,这个方案也有缺点:当一把火毁坏了我校的主干网电缆时,我们系的LAN就做不了什么工作了,因为解析器不再能到达任何名字服务器了、在X-终端上不再能登录了、也没了打印等等。
尽管校园主干网在火中焚毁不是常有的事,但我们必须针对这种情况采取防范措施。
一种选择是设置一个从本地域解析主机名的本地名字服务器,并且转发对其它主机名的所有请求到主服务器上去。当然,这只适用于你运行在自己的后台程序时。
另一种选择是,你可以在你的/etc/hosts中维护一个你的域或LAN的一个备份主机表。然后,在/etc/host.conf中要包含“order bind hosts”使得解析器在主名字服务器不在时后退到hosts文件。

6.2 运行named
在大多数UNIX机器上提供域名服务的程序通常称为named(发音为name-dee)。这是一个最初为BSD开发的用于为客户提供名字服务的服务器程序,其它的名字服务器程序也可能是这样的。目前在多数Linux安装中所使用的版本好象是BIND-4.8.3。现在BIND-4.9.3正处于Beta测试阶段,不久就会有了。
本节需要对域名系统工作原理有一些理解。如果下面的讨论你一点也看不懂,你可以重新阅读第2章,那里有关于DNS的更多的信息。
named通常在系统引导时启动的,并且一直运行到机器再次关闭为止。它从一个称为/etc/named.boot的配置文件中以及各种包含域名到地址映射数据的文件等中取得信息。后者称为区域文件(zone files)。这些文件的格式和语义将在下一节中描述。
要运行named,只需在提示符下简单地键入

# /usr/sbin/named

named将启动,读取named.boot文件以及其中指定的任何区域文件。它将它的进程id以ASCII写入/var/named.pid中、如有需要就从主服务器中下载任何区域文件,并且开始在端口53侦听DNS请求。[1]

6.2.1 named.boot文件
named.boot文件通常很小并且只包括指向含有区域信息的主文件的指针、以及指向名字服务器的指针。该boot文件中的注释行以一个分号开始一直延续到下一个新行开始。在我们详细讨论named.boot的格式之前,我们将看一下图6.1中给出的vlager的样本文件。[2]
;
; /etc/named.boot file for vlager.vbrew.com
;
directory /var/named
;
; domain file
;---------------------------------------------------
cache . named.ca
primary vbrew.com named.hosts
primary 0.0.127.in-addr.arpa named.local
primary 72.191.in-addr.arpa named.rev
图6.1 vlager的named.boot文件。

这个例子中的cache和primary命令将信息装入named。这个信息是从第二个参数指定的主文件中取得的。它们含有DNS资源记录的文本表示,下面我们来看看。
在这个示例中,我们把named配置成三个域的主要(primary)名字服务器,就如该文件末尾的primary语句指出的那样。其中第一个primary语句指示named作为vbrew.com的主服务器,并从named.hosts文件中取得区域数据。directory关键字告诉它所有的区域文件位于/var/named目录中。
cache是非常特殊的项并且实际上应该在所有运行名字服务器的机器上存在。它的功能有两个:它指示named激活它的缓冲,并从指定的缓冲文件中(在该示例中是named.ca)装入根名字服务器提示(root name server hints)。我们将在下面回过来讨论名字服务器提示。
下面是用于named.boot中的非常重要的选项的一张列表:

directory 它指定了区域文件存储的目录。文件名可以用与该目录相关的形式给出。通过重复使用directory可以指定几个目录。根据Linux文件系统标准,这应该是/var/named。
primary 它将一个域名(domain name)和一个文件名(file name)作为参数,宣布了对命名的域的本地服务器的授权。作为一个主要服务器,named从主文件中装入区域信息。一般地,在每个.boot文件中总是有至少一个primary项,即用于网络127.0.0.0的逆向映射,该网络是本地回送(loopback)网络。
secondary 这个语句将域名(domain name)、地址列表(address list)和一个文件名(file name)作为参数。它为指定的域宣布本地服务器为二级主服务器。一个二级服务器同样也掌有该域的授权数据,但它不是从文件中得到的,而是试着从主服务器中下载来的。因此至少一个主服务器的IP地址必须在named的地址列表中给出。本地服务器将联系每个主服务器直到它成功地将区域数据库传输过来,这个区域数据库然后被保存在第三个参数指定的备份文件中。如果主服务器一个都没有响应,就从备份文件中取回区域数据。此后,named将试图定期刷新区域数据。这将在下面连同SOA资源记录类型一起讨论。
cache 它将域(domain)和文件名(file name)作为参数。这个文件包含了根服务器提示,它是一个指向根名字服务器的一张列表。只有NS和A记录将被识别。domain参数通常是根域名“.”。对named来说这个信息是绝对至关重要的:如果.boot文件中没有cache语句,named将完全不会产生一个本地缓冲。如果下一个服务器请求不在本地网上,这将严重地降低性能以及增加网络负荷。更为严重的是,named将不能到达任何根名字服务器,因而,除了那些它授权的,它将不能解析任何地址。这个规则的一个例外是使用转发服务器(cf. 下面的forwarders选项)。
forwarders 这个语句将一个地址列表(address list)作为参数。这个列表中的IP地址指定了在named不能从本地缓冲中解析一个查询时可能会查询的名字服务器的一个列表。它们会被顺序地试用直到其中一个服务器对查询作出响应。
slave 该语句使得名字服务器成为一个从服务器。也即,它本身将永不执行递归查询,但只是将查询转发到forwarders语句指定的服务器上。

还有两个选项,sortlist和domain,我们在这里将不对它们进行讨论。另外,还有两个可以用于区域数据库文件中的指令。它们是$INCLUDE和$ORIGIN。因为它们很少用到,这里我们将同样不对它们进行描述。

6.2.2 DNS数据库文件
named包括的主文件,如named.hosts,总有一个域与它们相关联,称之为origin。这是一个用cache和primary命令指定的域名。在一个主文件中,允许你指定与该域相关的域和主机名。在配置文件中的一个名字如果以一个点结尾就被认为是绝对的(absolute),否则的话它被认为是与orgin相关的。orgin本身可以用“@”来引用。
一个主文件中包含的所有数据被分裂成资源记录(resource records),或简称RRs。它们构成DNS中的最小的信息单元。每一资源记录有一个类型。例如,A记录将一个主机名映射到一个IP地址、一个CNAME记录将一个主机的别名与它的正式主机名相关联。作为一个示例,请观看115页是的图6.3,它显示了虚拟酿酒厂的named.hosts主文件。
主文件中的资源记录表示法共享一个通用的格式,它是

[domain] [ttl] [class] type rdata

各域用空格或制表符分开。如果一个左大括号在第一个新行之前,一个项可以连续跨过几行,并且最后一个域后跟一个右大括号。在分号和新行之间的任何信息都被忽略。

domain 条目所适用的域名。如果没有给出域名,那么该RR假定应用于前一个RR的域。
ttl 为了迫使解析器在一段时间后放弃(废弃)信息,每个RR有一个相应的“存活期”(“time to live”),或简称ttl。ttl域用秒来指定从服务器取得的信息有效的时间。它是一个最多八位的十进制数。如果没有给出ttl值,那么它的值缺省为前面SOA记录的最小域的值。
class 这是一个地址类,正如IP地址的IN,或Hesiod类中对象的HS。对于TCP/IP网络来说,你必须使它为IN。如果没有给出class域,就假定使用前一个RR的类。
type 它描述了RR的类型。最普通的类型是A、SOA、PTR以及NS。下一节描述了RR的各种类型。
rdata 它保存与RR相关的数据。这个域的格式依赖于RR的类型。下面对每种RR进行单独的描述。

下面是用于DNS主文件的RR的一个不完整列表。还有许多RR的类型,我们将不作讨论。它们是试验性的,并且通常很少有用。

SOA 它描述了一个授权区域(SOA是指“Start of Authority”)。它表示紧跟在SOA RR后面的记录包含有对该域的授权信息。每一个用primary语句包括的主文件在此区域必须含有一个SOA记录。资源数据含有以下几个域:

orign 这是该域的主要名字服务器的规范主机名。它通常用一个完全的名字给出。
contact 这是维护该域的负责人的email地址。用一个点替换掉了“@”字符。例如,虚拟酿酒厂域的负责人是janet,那么这个字段域将含有janet.vbrew.com。
serial 这是一个用单个十进制数表示的区域文件的版本号数。每当区域文件中的数据改变时,这个数值将增加。
这个序列(serial)号值是用于次要名字服务器识别何时区域信息改变了。为了保持最新,次要服务器在一定间隔时间后就请求主要服务器的SOA记录,并且将该序列号值与缓冲的SOA记录的序列号值相比较。如果数值改变了,次要服务器就从主要服务器将整个区域数据库传输过来。
refresh 它指定了次要服务器将等待检查主要服务器的SOA记录的一个以秒计的间隔时间,同样地,这是一个最多八位的十进制数。通常网络的拓扑结构不会经常性地改变,所以对于大型网络来说,这个数应该指定为大约一天左右。
retry 这个数值确定了一个间隔时间,它是一个请求或一个区域刷新失败时次要服务器将重试与主要服务器联系的间隔时间。它不应该太小,否则一个临时的服务器失败或网络问题将导致次要服务器浪费网络资源。一个小时、或者一个半小时,可能是一个好的选择。
expire 它以秒指定了一个时间值,在这个时间过后,如果服务器还不能联系到主要服务器的话,它最终将丢弃所有的区域数据。这个时间值通常应该很大。Graig Hunt([GETST 92])推荐为42天。
minimum 这是对于没有明确指定ttl的资源记录的一个缺省的ttl值。这需要其它的名字服务器在一段时间后丢弃RR。然而,它与次要服务器开始试图更新区域信息所等待的时间无关。Minimum应该是一个很大的值,尤其是对于网络拓扑结构几乎不变的局域网。一个大约是一周或一个月的值大概是一个很好的选择。对于单个RR可能经常改变的情况,你仍可以给它们一个不同的ttl值。

A 这将一个IP地址与一个主机名相关联。资源数据域包含点分四组表示的地址。对于每一台主机,只能有一个A记录。用于这个A记录的主机名被认为是正式的或规范的主机名。所有其它主机名都是别名,并且必须使用一个CNAME记录映射到这个规范的主机名上。
NS 这指向一个从属区域的主名字服务器。对于为什么要有NS记录的解释,请参见3.6节。资源数据域包含名字服务器的主机名。为了解析这个主机名,另外需要一个A记录,即给出名字服务器IP地址的所谓的粘合记录。
CNAME 它将一个主机的别名与它的正规(或规范)主机名相关联。规范主机名就是主文件为其提供一个A记录的主机名;别名只是通过一个CNAME记录简单地联结到规范主机名上,但它们本身没有任何其它的记录。
PTR 这个类型的记录用于将in-addr.arpa域中的名字与主机名相关联。这用于IP地址到主机名的逆向映射。所给出的主机名必须是规范主机名。
MX 这个RR对于一个域申明了一个邮件交换器(mail exchanger)。有邮件交换器的原因将在第13章的“互连网上的邮件路由”一节中讨论。MX记录的句法是
[domain] [ttl] [class] MX preference host

host 为domain命名邮件交换器。每个邮件交换器有一个整数preference(优先权)与之关联。一个想要将邮件分发到domain的邮件传输代理会试用所有针对这个域的MX记录的主机,直到成功为止。具有最低优先权值的将首先试用,然后按着优先权值的增大顺序试用其它主机。
HINFO 这个记录提供了有关系统硬件和软件的信息。它的句法是

[domain] [ttl] [class] HINFO hardware software

hardware(硬件)字段确定主机所使用的硬件。存在特别的约定来指定它。在“Assigned Numbers”(RFC 1340)中给出了一张有效名字的列表。如果字段中含有任何空格字符,就必须用双引号括住。Software(软件)字段指定系统所用的操作系统软件。同样,应该选用“Assigned Numbers”RFC中的有效名字。

6.2.3 编写主文件
图6.2、6.3、6.4和6.5给出了在酿酒厂vlager上的一个名字服务器的样本文件。考虑到所讨论网络的特性(单个局域网),这个例子是非常直观的。如果你的要求更复杂些,并且你运行不了named,参见Cricket Liu和Paul Albitz([AlbitzLiu92])的“DNS and BIND”。
图6.2示出的named.ca缓冲文件显示出一个根名字服务器的样本提示记录。一个典型的缓冲文件通常描述了大约一打左右的名字服务器。你可以使用本章末描述的nslookup工具获得根域的当前名字服务器的列表。[3]
;
; /var/named/named.ca Cache file for the brewery.
; We"re not on the Internet, so we don"t need
; any root servers. To activate these
; records, remove the semicolons.
;
; . 99999999 IN NS NS.NIC.DDN.MIL
; NS.NIC.DDN.MIL 99999999 IN A 26.3.0.103
; . 99999999 IN NS NS.NASA.GOV
; NS.NASA.GOV 99999999 IN A 128.102.16.10

图6.2 named.ca文件
;
; /var/named/named.hosts Local hosts at the brewery
; Origin is vbrew.com
;
@ IN SOA vlager.vbrew.com. (
janet.vbrew.com.
16 ; serial
86400 ; refresh: once per day
3600 ; retry: one hour
3600000 ; expire: 42 days
604800 ; minimum: 1 week
)
IN NS vlager.vbrew.com.
;
; local mail is distributed on vlager
IN MX 10 vlager
;
; loopback address
localhost. IN A 127.0.0.1
; brewery Ethernet
vlager IN A 191.72.1.1
vlager-if1 IN CNAME vlager
; vlager is also news server
news IN CNAME vlager
vstout IN A 191.72.1.2
vale IN A 191.72.1.3
; winery Ethernet
vlager-if2 IN A 191.72.2.1
vbardolino IN A 191.72.2.2
vchianti IN A 191.72.2.3
vbeaujolais IN A 191.72.2.4

图6.3 named.hosts 文件
;
; /var/named/named.local Reverse mapping of 127.0.0
; Origin is 0.0.127.in-addr.arpa.
;
@ IN SOA vlager.vbrew.com. (
joe.vbrew.com.
1 ; serial
360000 ; refresh: 100 hrs
3600 ; retry: one hour
3600000 ; expire: 42 days
360000 ; minimum: 100 hrs
)
IN NS vlager.vbrew.com.
1 IN PTR localhost.

图6.4 named.local文件


;
; /var/named/named.rev Reverse mapping of our IP addresses
; Origin is 72.191.in-addr.arpa.
;
@ IN SOA vlager.vbrew.com. (
joe.vbrew.com.
16 ; serial
86400 ; refresh: once per day
3600 ; retry: one hour
3600000 ; expire: 42 days
604800 ; minimum: 1 week
)
IN NS vlager.vbrew.com.
; brewery
1.1 IN PTR vlager.vbrew.com.
2.1 IN PTR vstout.vbrew.com.
3.1 IN PTR vale.vbrew.com.
; winery
1.2 IN PTR vlager-if1.vbrew.com.
2.2 IN PTR vbardolino.vbrew.com.
3.2 IN PTR vchianti.vbrew.com.
4.2 IN PTR vbeaujolais.vbrew.com.

图6.5 named.rec文件

6.2.4 验证名字服务器的设置
有一个很好的工具用于检查名字服务器设置的操作。它称为nslookup,即可以交互式地使用,也可以从命令行上使用。在后一种情况下,你只需象这样简单地调用它

nslookup hostname

它将对hostname查询resolv.conf中指定的名字服务器。(如果这个文件指定了多个服务器,nslookup将随机地选择一个)。
然而,交互模式则更令人兴奋。除了能查询单个的主机,你可以查询DNS记录的任何类型,并且传输一个域的整个区域信息。
当不加参数地调用,nslookup将显示它所用的名字服务器,并且进入交互模式。在’>’提示符下,你可以键入任何想要查询的域名。缺省地,它请求类A记录,这些是包含与域名相关的IP地址的。
你可以通过发出“set type=type”来改变这个类型,这里type是上面6.2节中描述的资源记录名,或ANY。
例如,你可以与它进行下面的对话:

$ nslookup
Default Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60

> sunsite.unc.edu
Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60

Non-authoritative answer:
Name: sunsite.unc.edu
Address: 152.2.22.81

如果你试者去查询一个没有相应IP地址的名字,但DNS数据库中能找到其它的记录,nslookup将返回一个错误信息说“No type A records found”(“没有类型A记录发现”)。然而,你可以通过发出“set type”命令来查询不是类型A的其它记录。例如,要得到unc.edu的SOA记录,你要发出:

> unc.edu
*** No address (A) records available for unc.edu
Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60

> set type=SOA
> unc.edu
Name Server: rs10.hrz.th-darmstadt.de
Address: 130.83.56.60

Non-authoritative answer:
unc.edu
origin = ns.unc.edu
mail addr = shava.ns.unc.edu
serial = 930408
refresh = 28800 (8 hours)
retry = 3600 (1 hour)
expire = 1209600 (14 days)
minimum ttl = 86400 (1 day)

Authoritative answers can be found from:
UNC.EDU nameserver = SAMBA.ACS.UNC.EDU
SAMBA.ACS.UNC.EDU internet address = 128.109.157.30

以同样的方式你可以查询MX记录,等等。使用一个ANY类型将返回与一个给出的名字关联的所有资源记录。
> set type=MX
> unc.edu
Non-authoritative answer:
unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu
lambada.oit.unc.edu internet address = 152.2.22.80

Authoritative answers can be found from:
UNC.EDU nameserver = SAMBA.ACS.UNC.EDU
SAMBA.ACS.UNC.EDU internet address = 128.109.157.30

除了调试,nslookup的一个实际应用是为named.ca文件获取根名字服务器的当前列表。你可以通过查询与根域相关的所有NS类型记录来做到:

> set typ=NS
> .
Name Server: fb0430.mathematik.th-darmstadt.de
Address: 130.83.2.30

Non-authoritative answer:
(root) nameserver = NS.INTERNIC.NET
(root) nameserver = AOS.ARL.ARMY.MIL
(root) nameserver = C.NYSER.NET
(root) nameserver = TERP.UMD.EDU
(root) nameserver = NS.NASA.GOV
(root) nameserver = NIC.NORDU.NET
(root) nameserver = NS.NIC.DDN.MIL

Authoritative answers can be found from:
(root) nameserver = NS.INTERNIC.NET
(root) nameserver = AOS.ARL.ARMY.MIL
(root) nameserver = C.NYSER.NET
(root) nameserver = TERP.UMD.EDU
(root) nameserver = NS.NASA.GOV
(root) nameserver = NIC.NORDU.NET
(root) nameserver = NS.NIC.DDN.MIL
NS.INTERNIC.NET internet address = 198.41.0.4
AOS.ARL.ARMY.MIL internet address = 128.63.4.82
AOS.ARL.ARMY.MIL internet address = 192.5.25.82
AOS.ARL.ARMY.MIL internet address = 26.3.0.29
C.NYSER.NET internet address = 192.33.4.12
TERP.UMD.EDU internet address = 128.8.10.90
NS.NASA.GOV internet address = 128.102.16.10
NS.NASA.GOV internet address = 192.52.195.10
NS.NASA.GOV internet address = 45.13.10.121
NIC.NORDU.NET internet address = 192.36.148.17
NS.NIC.DDN.MIL internet address = 192.112.36.4

nslookup完整的命令集可以通过nslookup中的help命令得到。

6.2.5 其它有用工具
还有几个工具能帮助你完成作为一个BIND管理员的任务。这里我将概要地描述其中的两个。请查阅这些工具的文档来获取如何使用它们的信息。
hostcvt通过将你的/etc/hosts文件转换成named的主文件来帮助你进行初始BIND配置。它产生前向(A)和逆向映射(PTR)条目,并且管理别名等。当然,它不可能为你做整个工作,正如你仍想要,例如,调整SOA记录的超时值、增加MX记录等等这类工作。不过,它仍能帮助你节约几片阿司匹林。hostcvt是BIND原代码的一部分,但是你也能在几个Linux FTP服务器上找到作为一个独立的软件包的。
在设置好你的名字服务器以后,你可能想测试一下你的配置。做这件事的理想的(并且,就我所知而言)唯一的工具是dnswalk,一个基于perl的软件包,它通览你的DNS数据库,查找常见的错误并且验证信息的一致性。近来,dnswalk已在comp.sources.misc上发布,并且将会在所有对该组存档的FTP站点上存储(如果你不知道靠近你的任何这样的站点,ftp.uu.net将是一个可靠的地方)。





注释
[1] 在Linux的FTP站点上有各种named执行文件,每个的配置稍有不同,有些将它们的pid文件放在/etc中,有些将pid文件存储在/tmp或/var/tmp中。
[2] 注意,这个例子中的域名是以无轨迹点给出的。Named的早期版本好象将轨迹点当作错误看待,并且悄无声息地舍弃了该行。BIND-4.9.3据称以修正。
[3] 注意,如果没有安装任何根服务器提示,你就不能向你的名字服务器查询根服务器。Catch-22!为了避免这个难题,你可以或者使得nslookup使用一个不同的名字服务器,或者你可以使用图6.2中的样本文件作为一个起点,然后获取一张有效服务器的完全列表。

来源: Linux自由鸽
UG\NX二次开发 分割曲线 分割曲线没有ufun函数?那就换一种思路实现。 阅读详情

相关推荐

LAMMPS实战:如何用ReaxFF力场模拟碳氢化合物热解(附完整脚本)

本文提供了一份使用LAMMPS软件中ReaxFF反应力场模拟碳氢化合物热解过程的完整实战指南。内容涵盖从环境准备、力场参数选择、能量最小化,到升温恒温动力学模拟的完整脚本编写,并介绍了基于轨迹文件的产物分析方法,帮助计算化学与材料科学研究者快速上手这一关键的分子动力学仿真技术。

soda5的博客 1099

/etc/hosts.conf

作用指定如何解析主机域名,可设置网络安全。默认文件内容默认情况,/etc/hosts.conf 文件有如下内容 order hosts,bind multi on参数说明 order 是解析顺序的参数,order hosts,bind,nis ,说明先查询解析/etc/hosts文件,然后DNS,再是NIS。multi 表示是否运行/etc/hosts文件允许主机指定多个

u011617097的博客 1万+

带挂牵引车前向运动模型推导及仿真实现

牵引车-半挂车的车辆结构与普通的车辆相比增加了一个半挂车,它们之间通过鞍座相连接,为了分析半挂牵引车运动过程中的位姿和状态,本文将基于车辆的机械结构建立对应的运动学模型,该模型基于以下假设: 车辆行驶过程中,道路平坦且无凸凹; 车辆低速行驶,且运行过程中车身无侧倾和俯仰运动; 车辆行驶过程中,轮胎无形变,无侧向滑动,且无侧向力; 牵引车和半挂车均满足阿克曼转向几何原理; 牵引车与半挂车不会发现折叠。

jianmo的博客 3182

网络配置文件详解——/etc/host.conf

功能:指定主机名查找方法,通常指先查找文件/etc/hosts,找不到时再向DNS服务器请求。 对于大多数用户不用改动此文件内容。 Linux: /etc/host.conf文件内容 order hosts, bind multi on Soalris: /etc/nsswitch.conf 中的hosts项 hosts files, dns ...

weixin_34252686的博客 2894

告别环境依赖!用PyInstaller把PaddleOCR项目打包成独立EXE(附完整spec文件配置)

本文详细介绍了如何使用PyInstaller将PaddleOCR项目打包成独立EXE文件,彻底解决Python环境依赖问题。通过完整的spec文件配置和实战技巧,开发者可以轻松创建开箱即用的OCR工具,特别适合需要交付给非技术用户的场景。文章涵盖环境配置、模型打包、性能优化等关键环节,并提供了解决常见问题的方案。

weixin_33712987的博客 573

RK3588 MIPI屏幕调试避坑指南:双通道8Lane下DSC压缩屏的花屏、分层问题排查实录

本文详细解析了RK3588平台在双通道8Lane MIPI接口下调试DSC压缩屏时遇到的花屏、分层问题。通过硬件信号完整性检查、软件配置验证及帧数据分析,提供了一套系统化的排查方法,并深入探讨了初始化序列优化和双通道同步机制,帮助工程师高效解决高分辨率屏幕显示异常问题。

weixin_27015733的博客 280

网络相关问题

网络诊断: 1.链接之前,检查网卡是否被系统捕获 [root@test2 test]# dmesg | grep -in eth [root@test2 test]# lspci | grep -in ethernet 若是捕获不到,则需考虑驱动模块是否匹配 [root@test2 test]# lsmod | grep e1000 [root@test2 test]# modinfo e1000 2. 测试链接 [root@test2 test]# nmcli conn mod ens.

chunlin 458

支付漏洞防护绕过的一种方式

放完包后就到了提交订单的地方,可以发现,金额确实小了很多,合理的搭配的话还可以更低,再次前进可以发现,金额确实是这么多,后面就不支付了,到此就结束了。也就是说数量可以为负数,但是金额不能为0或者0以下,有什么方法可以绕过这个限制吗,其实并不难,既然可以为负数,只是对金额不能为0或者负数做了限制。我们可以尝试拼接法,利用负数加上正数让他的值变得很低,但是又大于0就可以了,这里利用购物车的结算方法,随机加一些在购物车里。这里为了方便查看数据包,我这边商品的数量选择3,点击立即购买并抓包。

2301_80115097的博客 1529

龙叔Linux:etc下的hosts配置文件们

作为linux运维 对etc这个目录必然不会陌生 本文简单讲解一下ect下host开头的配置文件

龙叔运维的博客 3120

C# 上位机内存泄漏排查指南:3 个工具 + 4 个技巧,从 GC 频繁到稳定运行 720 小时

C# 上位机内存泄漏排查的核心是「先定位泄漏存在,再追溯引用根源,最后修复验证通过「Visual Studio 诊断工具(快速定位)+ dotMemory(深度分析)+ PerfView(生产监控)」三个工具的配合,结合「复现场景、排查静态成员+事件、检查非托管资源、GC 日志验证」四个技巧,可高效解决绝大多数泄漏问题。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 735

第069篇:浸入边界法进阶

浸入边界法(Immersed Boundary Method, IBM)是处理流固耦合问题的强大数值方法。本文深入介绍直接力法、反馈力法、Ghost Cell方法和多域IBM等高级技术。通过Python实现完整的IBM求解器,展示处理移动边界、弹性边界和多体相互作用的方法。浸入边界法,直接力法,反馈力法,Ghost Cell,流固耦合,移动边界,弹性边界Navier-Stokes方程添加体积力项:∂u∂t+(u⋅∇)u=−1ρ∇p+ν∇2u+f\frac{\partial \mathbf{u}}{\part

2401_87715305的博客 412

Linux下TCP/IP配置文件

/etc/sysconfig/network  包含了主机最基本的网络信息用于系统启动./etc/sysconfig/network-script/   此目录下就是系统启动时用来禄始化网络系统的一些信息,例如:第一以太网接口的文件为ifcfg-eth0./etc/xinetd.conf  定义了由超级进程xinted启动的网络服务./etc/hosts  完成主机名映射为IP地址的功能./etc

adobil的专栏 2562

即插即用系列(代码实践) | CVPR 2025 FDConv:频域动态卷积,打破密集预测任务的参数效率瓶颈

本文提取自 CVPR 2025 的最新底层算子革新论文《Frequency Dynamic Convolution for Dense Image Prediction》。近年来,动态卷积(Dynamic Convolution)通过融合多个并行卷积核极大地提升了模型性能,但研究表明:这些并行卷积核在频域上的响应高度相似,导致了极其严重的参数浪费,且缺乏对不同频率特征的自适应能力。本文复现了该网络的核心架构——FDConv(频率动态卷积)。该方案创造性地在傅里叶域(Fourier Domain)中学习固定参

分享顶会顶刊论文即插即用模块 111

php nslookup,Linux nslookup命令帮助和DNS查找示例

nslookup代表“名称服务器查找”,是从DNS服务器获取信息的有用命令。它对于解决与DNS相关的问题也非常有用,可以查询到DNS(域名服务器)并获取IP地址的任何域的DNS记录。DNS查找示例使用以下命令查找域的地址记录。它查询域名服务器并获取详细信息。# nslookup google.comServer: 8.8.8.8Address: 8.8.8.8#53N...

weixin_39993989的博客 345

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

linux中20个高级命令--【转载自微信公众号入门小站】

本介绍几个linux系统高级命令

istrangeboy&begin zero的博客 1047

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Linux中/etc/hosts与/etc/resolv.conf配置文件以及/etc/hosts.conf中如何进行排序

1. /etc/hosts——主机名查询静态表 hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP地址,否则就需要使用DNS服务程序来解决。通常可以将常用的域名和IP地址映射加入到hosts文件中,实现快速方便的访问。 在局域网或是 INTERNET上,每台主机都有一个IP地址,它区分开每台主机,并可以根据ip进行通讯。但IP地址不方便记忆,所以又有了域名。在一个局域网中,每台机器都有一个主.

yunyuzhu的博客 1229

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机网络 day14 DNS域名劫持、DNS域名污染 - CDN的工作流程 - DNS的记录类型 - 搭建DNS缓存/主域名服务器 - DNAT-SNAT实验项目

CDN使用Anycast技术,将相同的IP地址分配给全球不同地区的服务器节点,用户请求将导向离用户最近的服务器,从而实现高效的内容交付。CDN提供商会在DNS解析层面进行优化,通过返回离用户最近的CDN节点的IP地址,将用户的请求导向最近的节点,从而实现就近访问。本地DNS服务器会将DNS解析请求发送给CDN加速DNS,并由CDN加速DNS返回离用户最近的CDN节点的IP地址,而不是源服务器的IP地址。CDN会在边缘节点上缓存动态内容的副本,并与源服务器进行实时同步,以确保用户获取最新的内容。

lpfstudy的博客 3162

Linux命令 nslookup,每天学一个 Linux 命令(69):nslookup

命令简介nslookup(name server lookup)命令用于查询域名 DNS 信息的工具。nslookup 有两种工作模式,即“交互模式”和“非交互模式”。[root@CentOS7-1~]#nslookup-bash:nslookup:commandnotfound[root@CentOS7-1~]#yuminstall-ybind-utils语法格式nsloo...

weixin_42515377的博客 812

Linux 系统/etc目录下配置文件分类

etc/hostname 中是什么主机名称 则系统就会配置成什么!除了上述介绍的配置文件,/etc/目录下还有哪些重要的系统配置文件?1.可以实现通过主机名称互相通信。2.统一化命名标准(自动化)启动操作系统时候 系统会根据配置文件进行配置主机名称!详细介绍一下Linux系统中与网络相关的配置文件。第三种方式: 永久+临时配置主机名称 重点。如何修改Linux系统中的配置文件?第一种方式: 临时修改重启系统失效。作用: 存放主机名称的配置文件。第二种方式: 永久修改主机名称。

m0_59388634的博客 2913

《Linux》/etc/hosts,/etc/host.conf,/etc/resolv.conf

Linux下有三个网络配置文件 /etc/hosts、/etc/host.conf、/etc/resolv.conf   1. /etc/hosts 文件  它与Windows系统下的host的文件相类似,就是一个文本文件,里面存放一些IP和域名的对应关系   例如: root@sha:/ # cat /etc/hosts 172.20.30.1    sha-node-h

点测营专栏 1万+

对 Linux 专家非常有用的 20 个命令

原文出处: Tecmit   译文出处: oschina 在第一部分文章中我们讨论了那些都只是切换到 Linux 和linux新手所需的必要知识的用户的命令。 对 Linux 新手非常有用的 20 个命令 第二篇文章中我们讨论了中级用户管理自己的系统所需要的命令。 对中级 Linux 用户非常有用的 20 个命令 接下来呢?在这篇文章中我将解释管理Li

南城匠 1117

Linux之DNS篇

Linux之DNS篇 DNS简介 DNS是Domain Name System的缩写,中文名为“域名系统”。在互联网中起着非常重要的作用。 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。自从有了DNS我们去访问网站时就不会去记哪些晦涩的IP,就像现在我们访问百度一般都是输入www.baidu.com或者直接搜索百度,应该没有人会通过百度的IP地址去访问吧! DNS使用的UDP的53端口号,当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。 DNS

世间万事,风云变幻,苍黄翻覆,纵使波橘云诡,但制心一处,便无事不成。天定胜人,人定兮胜天。 3181

/etc下的host配置文件们

/etc下的host配置文件们

m0_46829545的博客 5301

Linux之nslookup命令使用详解—网络故障定位(一)

nslookup命令是常用域名查询工具,就是查DNS信息用的命令。 nslookup有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。

专注自动化、性能测试、测试架构学习交流 8896

[网络相关]/etc/host.conf & /etc/hosts/ & /etc/resolv.conf等等

买了本自己一直期望的书《Linux系统架构与目录解析》,其实想要这样一本书很久了。虽然不是一个sa,但是也想对linux做到应用方面的熟练,而对linux整体把握,甚至细到有哪些目录,哪些文件,这些文件是做什么用的,我想做到这些应该能水平提升不少。 初步浏览了这本书,正如作者所说这本书书更像是工具书,适合查阅,而不是通篇读。又正如有人评论这本书,感觉正入境了,作者却停止了他的思绪---讲得比...

数据库天地 421

python多进程

要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子进程的ID。

Mr.Yan的专栏 1170
上一篇: Linux网络管理员手册(8) 第八章 点对点协议 PTP PPP LCP
下一篇: Linux网络管理员手册(5) 第五章 配置TCP/IP网络 proc文件系统 设置主机名 分配IP地址 IP的接口配置 以太网接口
hem
hem
博客等级 码龄26年 19粉丝 287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值