Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1401|回复: 0
打印 上一主题 下一主题

DNS(Domain Name System,域名系统)

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2017-12-1 14:50:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 java 于 2017-12-1 16:24 编辑

http://linux.vbird.org/linux_server/0350dns.php

DNS 越来越重要,尤其未来 IPv6 这个需要 128bits (2^128-1个地址)位址的玩意儿。因为我们连 IPv4 的 32bits (有2^32-1个地址)都背不起来了, 128bits 要怎么背? 这时主机名称自动解析为 IP 就很重要啦!那就是 DNS。

单一文件处理上网的年代: /etc/hosts  [size=14.6667px]第四章 4.2.1



DNS 使用的 port number : 同时启动 tcp 及 udp 的 port 53

Client 端的设定
/etc/hosts :这个是最早的 hostname 对应 IP 的文件;
/etc/resolv.conf :这个重要!就是 ISP 的 DNS 服务器 IP 记录处;
/etc/nsswitch.conf:这个文件则是在‘决定’先要使用 /etc/hosts 还是 /etc/resolv.conf 的设定!

[root@www ~]# vim /etc/nsswitch.conf
hosts:      files dns
上面那个 files 就是使用 /etc/hosts,而最后的 dns 则是使用 /etc/resolv.conf 的 DNS 服务器来进行搜寻啦!

瞭解一下 /etc/resolv.conf 的内容
vim /etc/resolv.conf
nameserver 168.95.1.1
nameserver 139.175.10.20
DNS 服务器的 IP 可以设定多个,为什么要设定多个呢?因为当第一部 (照设定的顺序) DNS 挂点时,我们用户端可以使用第二部 (上述是 139.175.10.20) 来进行查询,这多少有点像 DNS 备援功能。

我的主机使用 DHCP 取得 IP ,很奇怪的,当我修改过 /etc/resolv.conf 之后,隔不多久这个文件又会恢复成原本的样子,这是什么原因?
因为使用 DHCP 时,系统会主动的使用 DHCP 服务器传来的资料进行系统设定檔的修订。因此,你必须告知系统,不要使用 DHCP 传来的服务器设定值。 此时,你得要在 /etc/sysconfig/network-scripts/ifcfg-eth0 等相关文件内,增加一行:‘PEERDNS=no’,然后重新启动网络即可。

DNS 的正、反解查询指令: host, nslookup, dig

host[root@www ~]# host [-a] FQDN [server]
[root@www ~]# host -l domain [server]
选项与参数:
-a :代表列出该主机所有的相关信息,包括 IP、TTL 与除错信息等等
-l :若后面接的那个 domain 设定允许 allow-transfer 时,则列出该 domain
     所管理的所有主机名称对应资料!
server:这个参数可有可无,当想要利用非 /etc/resolv.conf 内的 DNS 主机
        来查询主机名称与 IP 的对应时,就可以利用这个参数了!


1. 使用默认值来查出 linux.vbird.org 的 IP
host linux.vbird.org
linux.vbird.org has address 140.116.44.180             <==这是 IP
linux.vbird.org mail is handled by 10 linux.vbird.org. <==这是 MX (后续章节说明)

2. 查出 linux.vbird.org 的所有重要参数
host -a linux.vbird.org
Trying "linux.vbird.org"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56213
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;linux.vbird.org.               IN      ANY

;; ANSWER SECTION:
linux.vbird.org.        145     IN      A       140.116.44.180

;; AUTHORITY SECTION:
vbird.org.              145     IN      NS      dns.vbird.org.
vbird.org.              145     IN      NS      dns2.vbird.org.

Received 86 bytes from 168.95.1.1#53 in 15 ms  <==果然是从 168.95.1.1 取得的资料

3. 强制以 139.175.10.20 这部 DNS 主机来查询
host linux.vbird.org 139.175.10.20

4. 找出 vbird.org 领域的所有主机对应host -l vbird.org


[root@www ~]# nslookup [FQDN] [server]
[root@www ~]# nslookup
选项与参数:
1. 可以直接在 nslookup 加上待查询的主机名称或者是 IP ,[server] 可有可无;
2. 如果在 nslookup 后面没有加上任何主机名称或 IP ,那将进入 nslookup 的查询功能
   在 nslookup 的查询功能当中,可以输入其他参数来进行特殊查询,例如:
   set type=any :列出所有的信息‘正解方面设定檔’
   set type=mx  :列出与 mx 相关的信息!

1. 直接搜寻 mail.ksu.edu.tw 的 IP 信息
nslookup mail.ksu.edu.tw

Server:         168.95.1.1
Address:        168.95.1.1#53  <==还是请特别注意 DNS 的 IP 是否正确!

Non-authoritative answer:
Name:   mail.ksu.edu.tw
Address: 120.114.100.20        <==回报 IP 给你啰!

直接进入 nslookup 这个软件的操作画面中,如下范例:

nslookup  <==进入 nslookup 查询画面
> 120.114.100.20         <==执行反解的查询
> www.ksu.edu.tw         <==执行正解的查询
# 上面这两个仅列出正反解的信息,没有啥了不起的地方啦!
> set type=any           <==变更查询,不是仅有 A,全部信息都列出来
> www.ksu.edu.tw
Server:         168.95.1.1
Address:        168.95.1.1#53

Non-authoritative answer:
Name:   www.ksu.edu.tw
Address: 120.114.100.101  <==这是答案

Authoritative answers can be found from: <==这是相关授权 DNS 说明
ksu.edu.tw      nameserver = dns2.ksu.edu.tw.
ksu.edu.tw      nameserver = dns1.ksu.edu.tw.
dns1.ksu.edu.tw internet address = 120.114.50.1
dns2.ksu.edu.tw internet address = 120.114.150.1
> exit <==离开吧!皮卡丘

请注意,如果你在 nslookup 的查询画面当中,输入 set type=any 或其他参数, 那么就无法再进行反解的查询了!这是因为 any 或者是 mx 等等的标志都是记录在正解 zone 当中的缘故!

dig
[root@www ~]# dig [options] FQDN [@server]
选项与参数:
@server :如果不以 /etc/resolv.conf 的设定来作为 DNS 查询,可在此填入其他的 IP
options:相关的参数很多,主要有 +trace, -t type 以及 -x 三者最常用
  +trace :就是从 . 开始追踪
  -t type:查询的资料主要有 mx, ns, soa 等类型
  -x     :查询反解信息,非常重要

1. 使用默认值查询 linux.vbird.org 吧!
[root@www ~]# dig linux.vbird.org
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 <<>> linux.vbird.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37415
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:     <==提出的问题的部分
;linux.vbird.org.               IN      A

;; ANSWER SECTION:       <==主要的回答阶段
linux.vbird.org.        600     IN      A       140.116.44.180

;; AUTHORITY SECTION:    <==其他与此次回答有关的部分
vbird.org.              600     IN      NS      dns.vbird.org.
vbird.org.              600     IN      NS      dns2.vbird.org.

;; Query time: 9 msec
;; SERVER: 168.95.1.1#53(168.95.1.1)
;; WHEN: Thu Aug  4 14:12:26 2011
;; MSG SIZE  rcvd: 86

QUESTION(问题):显示所要查询的内容,因为我们是查询 linux.vbird.org 的 IP,所以这里显示 A (Address);
ANSWER(回答):依据刚刚的 QUESTION 去查询所得到的结果,答案就是回答 IP 啊!
AUTHORITY(验证):由这里我们可以知道 linux.vbird.org 是由哪部 DNS 服务器所提供的答案! 结果是 dns.vbird.org 及 dns2.vbird.org 这两部主机管理的。另外,那个 600 是允许查询者能够保留这笔记录多久的意思 (高速缓存),在 linux.vbird.org 的设定中,默认可以保留 600 秒。

2. 查询 linux.vbird.org 的 SOA 相关信息吧!
[root@www ~]# dig -t soa linux.vbird.org

3. 查询 120.114.100.20 的反解信息结果
[root@www ~]# dig -x 120.114.100.20

查询域名管理者相关信息: whois
whois centos.org
大家都知道查看域名的详细信息,
都是跑去whois服务器去查询,
http://whois.chinaz.com

其实在Linux下直接有一个whois的命令,
不过需要安装jwhois才可以,以CentOS为例
yum install jwhois -y

sudo apt-get install jwhois









回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-7 06:02 , Processed in 0.055289 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表