-
DNS配置
2014-06-25 16:53:01 -
Linux中DNS配置
2017-08-20 23:22:20DNS配置很多平台平台提供
云解析
功能,所谓的云解析就是一个DNS服务器,一般情况下,在域名的提供商购买一个域名之后,会指定一个NS记录,例如,在域名的提供商购买一下域名miner-k.com.需要设置云解析
记录。NS记录的值指向云解析提供的域名地址(ns1.alidns.com、ns2.alidns.com)购买域名常见的有两种场景: - 在公司内部构建一个域环境,公司内部配置很多的主机 - 直接将域名设置为主机名。(只使用一台服务器)
基本知识
DNS:Domain name service 域名解析服务
FQDN:Full Qualified Domain Name,完全合格域名
TLD:Top level Domain 顶级域
组织域:.com、.org、.net、.cc
国家域:.cn、.tw、.hk、jp
反向域:IP —> FQDN
反向:IP —> FQDN
正向:FQDN —> IP查询方式:
查询方式有两种:递归、迭代
递归
:客户端向本地的DNS服务器查询,本地的DNS服务器没有记录需要向其他的域名服务器查询,并将查询到的结果返回该客户端迭代
:以查询www.qq.com.本地DNS服务器查询时,先向根(root)DNS服务器查询,根服务器告知本地的DNS服务器qq.com的NS、A记录。本地的DNS服务器向qq.com服务器查询www.qq.com对应的A记录DNS服务器:
接受本地客户端查询(递归)
外部客户端请求:请求权威答案
肯定答案:TTL
否定答案:TTL
外部客户端请求:非权威答案缓存DNS服务器:
注意
:一个公司申请一个域名(qq.com),在com的DNS服务器上指定了qq.com的主机指定到一个IP地址,在公司用构建一个DNS服务器,可以分配不同的主机名给不同的服务器。例如:www.baidu.com、ftp.baidu.com、yunpan.baidu.com、tv.baidu.com等。数据库中的每一条记录称为一个资源记录(Resource Record,RR)
资源记录的格式NAME(名称) TTL(可省略有全局) IN(internal互联网) RRT(Resource Record Type 资源记录类型) VALUE 起始授权机构 默认设置为60分钟 互联网(IN) SOA(start of authority设置主从服务器的同步,其实授权的对象) 所有者名称、服务器的DNS名称、序列号、刷新间隔、重试时间、过期时间、最小TTL 主机名 记录特定的TTL时间(如果存在),否则为区域TTL 互联网(IN) A (IPv4)、AAAA(IPv4)、PTR(反向解析) 所有者名称、IP地址 名称服务器(Name Server) 记录特定的TTL时间(如果存在),否则为区域TTL 互联网(IN) NS 区域名称(Zone Name)、名称服务器的名称 邮件交换器 记录特定的TTL时间(如果存在),否则为区域TTL 互联网(IN) MX 区域名称(Zone Name)、邮件交换服务器、DNS名称的首选值(优先级,0-99,数据越小,优先级越高) 别名 记录特定的TTL时间(如果存在),否则为区域TTL 互联网(IN) CNAME(Canonical Name) 所有者名称、主机的DNS名称 资源记录类型:
SOA(Start Of Authority): ZONE NAME TTL IN SOA FQDN(主DNS的名称) ADMINISTRATOR_MAILBOX ( serial number refresh retry expire na ttl ) serial number :序列号 refresh: 刷新时间,间隔多长时间向主服务器检测一次 retry: 重试时间,当第一次检查主服务器失败之后间隔重试的时间(一定要比refresh小) expire: 过期时间,从服务器连接不到主服务器的时间 nagative answer TTL:否定答案的缓存时间 时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒 邮箱格式:admin@miner.com -写为-> admin.miner.com miner.com. 600 IN SOA ns1.miner.com. admin.miner.com. ( 2013040101 1H 5M 1W 1D ) NS(Name Server): ZONE NAME --> FQDN #miner.com的域名服务器时ns1.miner.com miner.com. 600 IN NS ns1.miner.com. miner.com. 600 IN NS ns2.miner.com. ns1.miner.com. 600 IN A 1.1.1.2 ns2.miner.com. 600 IN A 1.1.1.5 MX(Mail eXchanger): ZONE NAME --> FQDN ZONE NAME TTL IN MX pri VALUE 优先级:0-99,数字越小级别越高 miner.com. 600 IN MX 10 mail.miner.com. mail.miner.com. 600 IN A 1.1.1.3 A(address): FQDN-->IPv4 AAAA:FQDN-->IPv6 PTR(pointer):IP-->FQDN CNAME(Canonical NAME): FQDN-->FQDN # www2.miner.com是www.miner.com的别名 www2.miner.com. IN CNAME www.miner.com. 泛域名解析: *.miner-k.com. IN A 1.1.1.3 所有的以miner-k.com 中的地址指向1.1.1.3 TXT CHAOS SRV
socket套接字:IP+端口
域:Domain
区域:Zone域是逻辑概念、区域是物理概念,区域分为正向区域和反向区域(都有配置文件)。
部署环境
[root@miner_k ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@miner_k ~]#
部署
BIND (Berkeley Internet Name Domain)
安装
[root@cxy-65 ~]# yum -y install bind bind-utils bind-libs [root@cxy-65 ~]# rpm -qa | grep bind bind-9.8.2-0.62.rc1.el6_9.4.x86_64 #主要安装包 bind-utils-9.8.2-0.62.rc1.el6_9.4.x86_64 #bind工具 rpcbind-0.2.0-13.el6_9.1.x86_64 bind-libs-9.8.2-0.62.rc1.el6_9.4.x86_64 #bind库文件
配置文件
[root@miner_k ~]# rpm -qc bind-9.8.2-0.62.rc1.el6_9.4.x86_64 /etc/logrotate.d/named /etc/named.conf #主配置文件 /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key /etc/rndc.conf #Remote name domain controller 远程域名服务器控制器 /etc/rndc.key #密钥文件 /etc/sysconfig/named /var/named/named.ca #13个根节点的IP地址 /var/named/named.empty /var/named/named.localhost #本地主机名的正向解析 /var/named/named.loopback #本地主机名的反向解析
区域文件配置的格式:
区域: zone "ZONE NAME" IN { type {master|slave|hint|forward}; }; 主区域: file "区域数据文件"; #可以是相对路径,也可以是绝对路径 从区域: file "区域数据文件"; masters { master1_ip; };
修改主配置文件/etc/named.conf
options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; }; zone "." IN { #根区域的配置 type hint; file "named.ca"; }; zone "localhost" IN { #localhost的区域配置 type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" IN { #127.0.0.1的反向解析区域配置 type master; file "named.loopback"; };
acl 配置
格式:
acl string { address_match_element; ... };
实例:
acl internet { 192.168.3.0/24; 10.0.0.0/24; 172.16.8.2; }; options { directory "/var/named"; allow-query-cache { internet;}; };
opetions 中的配置
options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; #区域配置文件的位置 allow-recursion { 192.168.1.0/24; }; #设置允许递归的网段。 recursion no; #no,不允许所用的客户端递归; yes,允许客户递归 allow-query { any; }; #指定查询的客户端 allow-transfer { 122.112.217.171/32; }; #在指定的主机上设置允许区域传送。 forward ( first | only ); #转发,first首先转发,only只转发 forwarders { 192.168.12.1;}; #如果此DNS解析不了转发到指定的IP地址的服务器上。 };
配置文件的语法检查
# 查看配置文件的权限是否有640、属组是否为named [root@miner-k etc]# ll /etc/named.conf -rw-r----- 1 root named 300 Aug 14 10:58 /etc/named.conf # 检查named.conf是否有语法问题 [root@miner-k ~]# named-checkconf #检查区域配置文件是否有问题 [root@miner-k ~]# named-checkzone "localhost" /var/named/named.localhost zone localhost/IN: loaded serial 0 OK [root@miner-k ~]# named-checkzone "0.0.127.in-addr.apra" /var/named/named.lo named.localhost named.loopback [root@miner-k ~]# named-checkzone "0.0.127.in-addr.apra" /var/named/named.loopback zone 0.0.127.in-addr.apra/IN: loaded serial 0 OK
端口
53/tcp
53/tcp
953/tcp rndc
通常DNS是以UDP这个较快速的数据传输协议来查询的,但是万一没有办法查询到完整的信息时,会再次以TCP这个协议重新查询。实例
实例(场景一)
需求
在域名的供应商购买一个域名miner.com,本地部署一个DNS服务器,分别指定不同的不同的主机www.miner.com、ftp.miner.com、www2.miner.com是www的别名。
com的DNS部署(为了解结构原理)
设置主配置文件
[root@com ~]# vim /etc/named.conf options { directory "/var/named"; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; }; // 下面这部分是必须写的 zone "com" IN { type master; file "com.zone"; };
查看权限:
配置文件的权限是640,属组是named,[root@com ~]# ll /etc/named.conf -rw-r----- 1 root named 282 Aug 17 11:25 /etc/named.conf
设置区域配置文件:
[root@com ~]# vim /var/named/com.zone $TTL 600 @ IN SOA ns1.com. admin.miner.com ( 20170817 1D 1H 1W 3H ) IN NS ns1.com. ns1 IN A 127.0.0.1 miner-k IN A *.*.217.247 #此处可以使用NS记录,但是必须能就解析记录名称。此处的"*"是将真实IP地址遮挡了。 或者 miner-k IN NS ns2.alidns.com #如果是使用阿里的云解析可以设置为ns2.alidns.com或者ns1.alidns.com
miner.com的DNS部署
公司内网DNS服务器(正向)
主配置文件
# 编辑主配置文件 [root@miner ~]# vim /etc/named.conf [root@miner ~]# cat /etc/named.conf options { directory "/var/named"; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; }; zone "0.0.127.in-addr.apra" IN { type master; file "named.loopback"; }; zone "miner-k.com" IN { type master; file "miner-k.com.zone"; }; #查看主配置文件的权限 [root@miner ~]# ll /etc/named.conf -rw-r----- 1 root named 294 Aug 14 15:45 /etc/named.conf [root@miner ~]# named-checkconf
配置区域配置文件
# 修改区域配置文件 [root@miner ~]# vim /var/named/miner-k.com.zone [root@miner ~]# cat /var/named/miner-k.com.zone $TTL 600 miner-k.com. IN SOA ns1.miner-k.com. admin.miner-k.com ( 20170814 1H 5M 1W 5D) #miner-k.com.中的最后一个"."是不可省略的,此处的值可以使用"@" 代替 #ns1.miner-k.com 是miner.com域的DNS服务器的名称,此处必须是名称 #admin.miner-k.com 是邮箱,本应该的有些地址为amdin@miner-k.com。但是在区域配置文件中"@"有特殊的含义,故只能用户"."代替。 IN NS ns1.miner-k.com. # 该记录和上一条记录相同故可以省略开头,设置为空格。最后的ns1.miner-k.com可以省略为ns1 ns1 IN A 10.0.1.53 www IN A 10.0.1.57 ftp IN CNAME www #设置权限 [root@miner-k ~]# chmod 640 /var/named/miner-k.com.zone [root@miner-k ~]# chown root:named /var/named/miner-k.com.zone #检查语法 [root@miner-k ~]# named-checkzone "miner-k.com" /var/named/miner-k.com.zone zone miner-k.com/IN: loaded serial 20170814 OK
反向区域配置
在主配置文件中增加反向区域配置文件的内容
[root@miner-k ~]# tail -5 /etc/named.conf zone "49.78.117.in-addr.arpa" IN { type master; file "117.78.49.zone"; };
设置反向区域配置文件
[root@miner-k ~]# cat /var/named/117.78.49.zone $TTL 600 @ IN SOA ns1.miner-k.com. admin.miner-k.com ( 20170817 1D 1H 1w 1M ) IN NS ns1.miner-k.com. #此处的配置最后必须加".",否则会自动117.78.49.in-addr.apra 247 IN PTR ns1.miner-k.com. 247 IN PTR www.miner-k.com.
设置区域配置文件的权限
[root@miner-k ~]# chmod 640 /var/named/117.78.49.zone [root@miner-k ~]# chown root:named /var/named/117.78.49.zone
实例(场景二)
购买域名之后指向一个台服务器,这种配置比较简单,直接在域名提供商的解析中设置一条A记录即可。
主从复制
架构:
master IP:117.78.49.247
slave IP:122.112.217.171主服务器的配置:
[root@master ~]# cat /etc/named.conf options { directory "/var/named"; allow-query { any; }; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; }; zone "0.0.127.in-addr.apra" IN { type master; file "named.loopback"; }; zone "miner-k.com" IN { type master; file "miner-k.com.zone"; }; zone "49.78.117.in-addr.arpa" IN { type master; file "117.78.49.zone"; };
在区域配置文件中指定从服务器的IP地址
[root@master ~]# cat /var/named/miner-k.com.zone $TTL 600 @ IN SOA ns1.miner-k.com. admin.miner.com ( 20170819 1H 5M 1W 3H ) IN NS ns1.miner-k.com. ns1 IN A 127.0.0.1 @ IN NS ns2 ns2 IN A 122.112.217.171 # 从服务器IP地址必须写 www IN A 117.78.49.24 ftp IN A 117.78.49.24 pop IN A 117.78.49.24
从服务器的配置:
从服务器的配置和主服务器的配置相似,只是部分需要修改,故在配置从服务器时,只需要修改部分的配置即可。
从服务器需要同步主服务器的配置需要有完全区域传送的权限
[root@slave ~]# cat /etc/named.conf options { directory "/var/named"; allow-query { any; }; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "named.localhost"; }; zone "0.0.127.in-addr.apra" IN { type master; file "named.loopback"; }; zone "miner-k.com" IN { type slave; #设置参数是slave,表示为从服务器 masters { 117.78.49.247; }; #设置主服务器的IP地址 file "slaves/miner-k.com.zone"; #设置从服务器的区域配置文件的存放位置。切记需要查看slaves目录的权限 }; zone "49.78.117.in-addr.arpa" IN { type slave; masters { 117.78.49.247; }; file "slaves/117.78.49.zone"; };
从服务器区域配置文件的目录权限
[root@slave ~]# ls -ld /var/named/slaves/ drwxrwx--- 2 named named 4096 Aug 17 22:20 /var/named/slaves/
查看是否有完全区域传送的权限
[root@slave ~]# dig -t axfr miner-k.com @117.78.49.247 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t axfr miner-k.com @117.78.49.247 ;; global options: +cmd miner-k.com. 600 IN SOA ns1.miner-k.com. admin.miner.com.miner-k.com. 20170817 3600 300 604800 10800 miner-k.com. 600 IN NS ns1.miner-k.com. ns1.miner-k.com. 600 IN A 127.0.0.1 www.miner-k.com. 600 IN A 117.78.49.24 miner-k.com. 600 IN SOA ns1.miner-k.com. admin.miner.com.miner-k.com. 20170817 3600 300 604800 10800 ;; Query time: 31 msec ;; SERVER: 117.78.49.247#53(117.78.49.247) ;; WHEN: Thu Aug 17 15:12:09 2017 ;; XFR size: 5 records (messages 1, bytes 171)
测试
修改主服务器的区域配置文件
[root@master ~]# cat /var/named/miner-k.com.zone $TTL 600 @ IN SOA ns1.miner-k.com. admin.miner.com ( 20170820 #修改序列号,在以前的基础上加1 1H 5M 1W 3H ) IN NS ns1.miner-k.com. ns1 IN A 127.0.0.1 @ IN NS ns2 ns2 IN A 122.112.217.171 www IN A 117.78.49.24 ftp IN A 117.78.49.24 pop IN A 117.78.49.24 hello IN A 117.78.49.20 #增加一条记录
主服务器上查看日志
[root@master ~]# service named reload Reloading named: [ OK ] [root@master ~]# tailf /var/log/messages Aug 17 22:45:12 ecs-8c70 named[13161]: reloading configuration succeeded Aug 17 22:45:12 ecs-8c70 named[13161]: reloading zones succeeded Aug 17 22:45:12 ecs-8c70 named[13161]: zone miner-k.com/IN: loaded serial 20170820 Aug 17 22:45:12 ecs-8c70 named[13161]: zone miner-k.com/IN: sending notifies (serial 20170820) Aug 17 22:45:12 ecs-8c70 named[13161]: client 122.112.217.171#55585: transfer of 'miner-k.com/IN': AXFR-style IXFR started Aug 17 22:45:12 ecs-8c70 named[13161]: client 122.112.217.171#55585: transfer of 'miner-k.com/IN': AXFR-style IXFR ended
rndc 配置
生成RNDC的配置文件
[root@ecs-8c70 ~]# rndc-confgen > /etc/rndc.conf [root@ecs-8c70 ~]# cat /etc/rndc.conf # Start of rndc.conf key "rndc-key" { algorithm hmac-md5; secret "5bNswdCUaehpdZiWoBtYzg=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-md5; # secret "5bNswdCUaehpdZiWoBtYzg=="; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndc-key"; }; # }; # End of named.conf
将上面注释的部分复制到named.conf的配置文件中
[root@ecs-8c70 ~]# tail /etc/named.conf key "rndc-key" { algorithm hmac-md5; secret "5bNswdCUaehpdZiWoBtYzg=="; }; controls { inet 127.0.0.1 port 953 #设置监听的地址 allow { 127.0.0.1; } keys { "rndc-key"; }; #允许控制named服务的地址 };
重新启动named服务
[root@ecs-8c70 ~]# service named restart Stopping named: [ OK ] Starting named: [ OK ]
使用rndc命令测试
格式:
[root@ecs-8c70 ~]# rndc -h Usage: rndc [-b address] [-c config] [-s server] [-p port] [-k key-file ] [-y key] [-V] command
查看服务器的状态
[root@ecs-8c70 ~]# rndc -c /etc/rndc.conf status version: 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 CPUs found: 1 worker threads: 1 number of zones: 20 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running
手动发送通知
[root@ecs-8c70 ~]# rndc -c /etc/rndc.conf notify "miner-k.com" zone notify queued [root@ecs-8c70 ~]# tail /var/log/messages Aug 17 23:20:15 ecs-8c70 named[21620]: zone miner-k.com/IN: sending notifies (serial 20170820)
清空缓存
[root@ecs-8c70 ~]# rndc -c /etc/rndc.conf flush
停止named服务
[root@ecs-8c70 ~]# rndc -c /etc/rndc.conf stop
子域转发
父域:miner-k.com 122.112.217.171
子域:market.miner-k.com 117.78.49.247父域配置:
设置主配置文件
[root@centos6-8 ~]# cat /etc/named.conf options { directory "/var/named"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "miner-k.com" IN { type master; file "miner-k.com.zone"; };
设置区域配置文件
[root@centos6-8 ~]# cat /var/named/miner-k.com.zone $TTL 600 @ IN SOA ns1.miner-k.com. admin.miner-k.com ( 20170820 1D 1H 1w 1H ) IN NS ns1 ns1 IN A 122.112.217.171 www IN A 122.112.217.171 market IN NS ns2 ns2 IN A 122.112.217.171
查看区域配置文件的权限
[root@centos6-8 ~]# ls -ld /var/named/miner-k.com.zone -rw-r-----. 1 root named 204 Aug 20 19:51 /var/named/miner-k.com.zone
启动服务
[root@cxy-65 ~]# service named restart Stopping named: [ OK ] Generating /etc/rndc.key: [ OK ] Starting named: [ OK ]
子域DNS配置
设置配置文件
[root@cxy-65 ~]# cat /etc/named.conf [root@cxy-65 ~]# cat /etc/named.conf options { directory "/var/named"; allow-query-cache { any;}; #必须设置该参数否则无法转发 }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "market.miner-k.com" IN { type master; file "market.miner-k.com.zone"; }; zone "miner-k.com" IN { #在指定的区域做转发 type forward; forward first; forwarders { 122.112.217.171; }; };
[root@cxy-65 ~]# cat /var/named/market.miner-k.com.zone $TTL 600 @ IN SOA ns1 rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns1 A 127.0.0.1 ns1 A 117.78.49.247 www A 117.78.49.247
设置权限,重新启动服务
[root@cxy-65 ~]# chown root:named /var/named/market.miner-k.com.zone [root@cxy-65 ~]# chmod 640 /var/named/market.miner-k.com.zone [root@cxy-65 ~]# service named restart Stopping named: [ OK ] Generating /etc/rndc.key: [ OK ] Starting named: [ OK ]
常见错误
日志中的错误提示:query (cache) ‘www.miner-k.com/A/IN’ denied
解决方法: 在named.conf中加入`allow-query-cache { any;};`
日志中的错误提示:network unreachable resolving ‘www.baidu.com/A/IN’:2001:5023:c27::2:30#53
解决方法: 在named.conf中设置`recursion no;`
客户端工具
dig (domain information groper)
查找对应的区域的NS记录(-t NS)
[root@miner_k named]# dig -t NS . ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t NS . ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32144 ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;. IN NS ;; ANSWER SECTION: . 262805 IN NS c.root-servers.net. . 262805 IN NS a.root-servers.net. . 262805 IN NS e.root-servers.net. . 262805 IN NS g.root-servers.net. . 262805 IN NS b.root-servers.net. . 262805 IN NS f.root-servers.net. . 262805 IN NS j.root-servers.net. . 262805 IN NS k.root-servers.net. . 262805 IN NS h.root-servers.net. . 262805 IN NS d.root-servers.net. . 262805 IN NS l.root-servers.net. . 262805 IN NS i.root-servers.net. . 262805 IN NS m.root-servers.net. ;; Query time: 30 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: Mon Aug 14 10:09:04 2017 ;; MSG SIZE rcvd: 228
查找对应域名的A记录(-t A)
[root@centos7-2 ~]# dig -t NS miner.com @117.78.49.247 ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -t NS miner.com @117.78.49.247 ;; global options: +cmd ;; connection timed out; no servers could be reached [root@centos7-2 ~]# dig -t A www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -t A www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35965 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 721 IN CNAME www.a.shifen.com. www.a.shifen.com. 232 IN A 61.135.169.121 www.a.shifen.com. 232 IN A 61.135.169.125 ;; Query time: 8 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: Mon Aug 14 15:17:15 CST 2017 ;; MSG SIZE rcvd: 101
指定对应的域服务器(@)
[root@centos7-2 ~]# dig -t A www.baidu.com @dns.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -t A www.baidu.com @dns.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62864 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 6 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 1200 IN CNAME www.a.shifen.com. ;; AUTHORITY SECTION: a.shifen.com. 1200 IN NS ns1.a.shifen.com. a.shifen.com. 1200 IN NS ns3.a.shifen.com. a.shifen.com. 1200 IN NS ns5.a.shifen.com. a.shifen.com. 1200 IN NS ns2.a.shifen.com. a.shifen.com. 1200 IN NS ns4.a.shifen.com. ;; ADDITIONAL SECTION: ns1.a.shifen.com. 1200 IN A 61.135.165.224 ns2.a.shifen.com. 1200 IN A 180.149.133.241 ns3.a.shifen.com. 1200 IN A 61.135.162.215 ns4.a.shifen.com. 1200 IN A 115.239.210.176 ns5.a.shifen.com. 1200 IN A 119.75.222.17 ;; Query time: 24 msec ;; SERVER: 202.108.22.220#53(202.108.22.220) ;; WHEN: Mon Aug 14 15:18:11 CST 2017 ;; MSG SIZE rcvd: 239
反向查找(-x)
[root@centos7-2 ~]# dig -x 119.75.222.17 ; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7_3.1 <<>> -x 119.75.222.17 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 14843 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;17.222.75.119.in-addr.arpa. IN PTR ;; Query time: 168 msec ;; SERVER: 114.114.114.114#53(114.114.114.114) ;; WHEN: Mon Aug 14 15:22:19 CST 2017 ;; MSG SIZE rcvd: 44
不做递归查找(+norecurse)
[root@com ~]# dig +norecurse -t A www.sohu.com @117.78.49.247 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> +norecurse -t A www.sohu.com @117.78.49.247 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38949 ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 11 ;; QUESTION SECTION: ;www.sohu.com. IN A ;; AUTHORITY SECTION: com. 172678 IN NS j.gtld-servers.net. com. 172678 IN NS f.gtld-servers.net. .... ;; ADDITIONAL SECTION: a.gtld-servers.net. 172678 IN A 192.5.6.30 a.gtld-servers.net. 172678 IN AAAA 2001:503:a83e::2:30 .... ;; Query time: 29 msec ;; SERVER: 117.78.49.247#53(117.78.49.247) ;; WHEN: Thu Aug 17 14:47:30 2017 ;; MSG SIZE rcvd: 490
追踪DNS解析的路径(+trace)
[root@com ~]# dig +trace -t A www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> +trace -t A www.baidu.com ;; global options: +cmd . 505169 IN NS b.root-servers.net. . 505169 IN NS m.root-servers.net. ...... ;; Received 228 bytes from 114.114.114.114#53(114.114.114.114) in 5115 ms com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS k.gtld-servers.net. ...... ;; Received 491 bytes from 192.112.36.4#53(192.112.36.4) in 454 ms baidu.com. 172800 IN NS dns.baidu.com. baidu.com. 172800 IN NS ns2.baidu.com. ....... ;; Received 201 bytes from 192.43.172.30#53(192.43.172.30) in 15459 ms www.baidu.com. 1200 IN CNAME www.a.shifen.com. a.shifen.com. 1200 IN NS ns3.a.shifen.com. a.shifen.com. 1200 IN NS ns4.a.shifen.com. ....... ;; Received 228 bytes from 220.181.37.10#53(220.181.37.10) in 27 ms
完全区域传送(-t axfr)
得到指定域中的所有数据
[root@com ~]# dig -t axfr miner-k.com @117.78.49.247 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t axfr miner-k.com @117.78.49.247 ;; global options: +cmd miner-k.com. 600 IN SOA ns1.miner-k.com. admin.miner.com.miner-k.com. 20170817 3600 300 604800 10800 miner-k.com. 600 IN NS ns1.miner-k.com. ns1.miner-k.com. 600 IN A 127.0.0.1 www.miner-k.com. 600 IN A 117.78.49.24 miner-k.com. 600 IN SOA ns1.miner-k.com. admin.miner.com.miner-k.com. 20170817 3600 300 604800 10800 ;; Query time: 31 msec ;; SERVER: 117.78.49.247#53(117.78.49.247) ;; WHEN: Thu Aug 17 15:12:09 2017 ;; XFR size: 5 records (messages 1, bytes 171)
增量区域传送(-t ixfr)
[root@com ~]# dig -t ixfr=20170818 miner-k.com @117.78.49.247 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t ixfr=20170818 miner-k.com @117.78.49.247 ;; global options: +cmd miner-k.com. 600 IN SOA ns1.miner-k.com. admin.miner.com.miner-k.com. 20170819 3600 300 604800 10800 miner-k.com. 600 IN NS ns1.miner-k.com. ftp.miner-k.com. 600 IN A 117.78.49.24 ns1.miner-k.com. 600 IN A 127.0.0.1 pop.miner-k.com. 600 IN A 117.78.49.24 www.miner-k.com. 600 IN A 117.78.49.24 miner-k.com. 600 IN SOA ns1.miner-k.com. admin.miner.com.miner-k.com. 20170819 3600 300 604800 10800 ;; Query time: 31 msec ;; SERVER: 117.78.49.247#53(117.78.49.247) ;; WHEN: Thu Aug 17 15:20:40 2017 ;; XFR size: 7 records (messages 1, bytes 211)
host命令
[root@centos7-2 ~]# host -t NS baidu.com baidu.com name server ns2.baidu.com. baidu.com name server ns7.baidu.com. baidu.com name server ns3.baidu.com. baidu.com name server dns.baidu.com. baidu.com name server ns4.baidu.com.
nslookup
[root@centos7-2 ~]# nslookup > server 114.114.115.115 #设置DNS地址 Default server: 114.114.115.115 Address: 114.114.115.115#53 > set q=A #设置A记录 > www.baidu.com #查询www.baidu.com的A记录 Server: 114.114.115.115 Address: 114.114.115.115#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 61.135.169.125 Name: www.a.shifen.com Address: 61.135.169.121
反向解析查询
[root@centos6-8 ~]# nslookup > server 10.0.1.53 Default server: 10.0.1.53 Address: 10.0.1.53#53 > set q=PTR > 10.0.1.57 Server: 10.0.1.53 Address: 10.0.1.53#53 57.1.0.10.in-addr.arpa name = www.miner.com.
queryperf DNS压力测试
使用bind包中自带的工具,安装queryperf
[root@miner-k ~]#wget https://www.isc.org/downloads/file/bind-9-10-6 [root@miner-k ~]#tar -xvf bind-9-10-6 [root@miner-k ~]#cd bind-9.10.6/ [root@miner-k bind-9.10.6]# cd contrib/ [root@miner-k contrib]# cd queryperf/ [root@miner-k queryperf]# ./configure checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed .......... [root@miner-k queryperf]# make gcc -DHAVE_CONFIG_H -c queryperf.c gcc -DHAVE_CONFIG_H queryperf.o -lnsl -lresolv -lm -o queryperf [root@miner-k queryperf]# mv queryperf /bin/
测试DNS的解析情况
[root@miner-k ~]# vim querytxt baidu.com A www.baidu.com A baidu.com NS baidu.com A baidu.com A baidu.com A baidu.com A baidu.com A baidu.com A baidu.com A ....... [root@miner-k ~]# queryperf -d querytxt -s 114.114.114.114 DNS Query Performance Testing Tool Version: $Id: queryperf.c,v 1.12 2007/09/05 07:36:04 marka Exp $ [Status] Processing input data [Status] Sending queries (beginning with 114.114.114.114) [Status] Testing complete Statistics: Parse input file: once Ended due to: reaching end of file Queries sent: 540 queries Queries completed: 540 queries Queries lost: 0 queries Queries delayed(?): 0 queries RTT max: 0.029657 sec RTT min: 0.027262 sec RTT average: 0.027699 sec RTT std deviation: 0.000401 sec RTT out of range: 0 queries Percentage completed: 100.00% Percentage lost: 0.00% Started at: Sat Oct 14 20:49:22 2017 Finished at: Sat Oct 14 20:49:22 2017 Ran for: 0.751673 seconds Queries per second: 718.397495 qps
在bind启动时,会将文件中的数据全部读入内存中,故查询指定的DNS记录时,查询速率比较快。
常见错误
提示:no servers could be reached
[root@cxy-65 ~]# dig -t NS market.miner-k.com @117.78.36.1 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> -t NS market.miner-k.com @117.78.36.1 ;; global options: +cmd ;; connection timed out; no servers could be reached
原因:没有找到对应的服务器,
解决方法:1.查看named的状态是否开启
2.检查53端口是否开放
3.关闭防火墙之类的限制 -
Linux 网络配置 修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失
2016-11-16 11:45:31在执行命令: ... ping不通,报错如下: ...去查看DNS配置文件,果然没有DNS配置信息。 图2 添加DNS配置信息: nameserver 202.96.134.33 图3 保存成功后 #重启网络 图4 继续ping www在执行命令:
ping www.baidu.com
ping不通,报错如下:
图1
很明显,这很有可能是DNS配置文件/etc/resolv.conf的问题。
去查看DNS配置文件,果然没有DNS配置信息。
图2
添加DNS配置信息:
nameserver 202.96.134.33
图3
保存成功后
#重启网络
图4
继续ping www.baidu.com命令
继续无法ping通。报错信息如图1
再次查看DNS配置文件,发现之前对DNS的配置莫名其妙的消失了。DNS配置文件/etc/resolv.conf仍然如图2的情况,我们的配置信息nameserver 202.96.134.33丢失了。
进入正题:
这个问题我也不知道是怎么产生的。但是最后重新配置NetworkManager解决了DNS配置失效的问题。
解决方案:
解决方法同
弹出界面 eth0: 错误:激活连接失败:Device not managed by Network 解决方案。
继续重新配置DNS配置文件,继续重启网络,解决问题。
ping www.baidu.com
成功
感悟:
最开始我也琢磨不透为什么,修改并且保存好的DNS配置信息会丢失。
通过在第二台机器上做实验发现,它和NetworkManager有很大的关系。
具体可能原因分析,参见下一篇博客:《Linux网络配置 DNS配置信息丢失 可能原因分析》
472 service NetworkManager stop
473 service NetworkManager off
474 chkconfig NetworkManager off
475 vim /etc/resolv.conf
476 /etc/init.d/network restart
477 more /etc/resolv.conf -
手动进行主机DNS配置
2018-01-07 17:45:20本文介绍了如何手动进行主机DNS配置,有时候机器服务提供商不提供DHCP服务,或者由于错误的DNS配置导致服务器无法解析域名,此时就需要检查下服务器的DNS配置并配置正确的nameserver,首先介绍几个和DNS有关的配置...手动进行主机DNS配置
本文介绍了如何手动进行主机DNS配置,有时候机器服务提供商不提供DHCP服务,或者由于错误的DNS配置导致服务器无法解析域名,此时就需要检查下服务器的DNS配置并配置正确的nameserver,首先介绍几个和DNS有关的配置文件:
/etc/hosts
本地域名到IP的映射文件,一般默认Linux域名与IP的对应解析以此文件优先;/etc/resolv.conf
ISP的DNS服务器IP地址,本文件定义了本机进行域名解析请求的地址;/etc/nsswitch.conf
这个文件则是来决定先要使用/etc/hosts
还是/etc/resolv.conf
的配置。文件中hosts字段定义了优先使用哪个文件来进行DNS解析,其中files
就是使用/etc/hosts
,而后面的”dns”则是使用/etc/resolv.conf
的DNS服务器来进行解析:
#hosts: db files nisplus nis dns hosts: files dns myhostname
一般情况下是不需要自己手动修改主机DNS的配置的,除非机器提供商不提供DHCP服务,或者本机DNS配置有问题,导致无法进行域名解析才需要手动配置,以下是配置方法:
修改/etc/resolv.conf
,添加能访问通的DNS服务器地址,以下示例修改成Google的DNS服务器地址:nameserver 8.8.8.8 #主DNS地址 nameserver 8.8.4.4 #备用DNS地址,在主的失效时启用备的,当然还可以添加更多的地址
⚠️注意:尽量不要设置超过3台以上的DNS IP在
/etc/resolv.conf
中,如果是你的局域网出问题,会导致无法连接到DNS服务器,那么你的主机还是会向每台DNS服务器发出连接请求,每次连接都有timeout时间的等待,会导致浪费非常多的时间。 -
客户端DNS配置
2017-11-16 16:18:00客户端DNS配置 特别说明:为了实现当DNS服务器变更后,客户端能即时响应,需要关闭客户端操作系统DNS缓存服务 (1)RedHat 、centOS、oracle linux 需要在网卡上绑定DNS1=172.28.8.196 DNS2=172.28.8.197,如下示... -
RHEL7.3 DNS配置
2017-07-13 10:38:03RHEL7.3 DNS配置 -
修改DNS配置文件/etc/resolv.conf后,重启网络,DNS配置丢失
2017-01-19 10:40:49在执行命令: ... ping不通,报错如下: ...去查看DNS配置文件,果然没有DNS配置信息。 图2 添加DNS配置信息: nameserver 202.96.134.33 图3 保存成功后 #重启网络 图4 继续ping www -
RHEL7 DNS配置
2018-11-20 23:50:10RHEL7 DNS配置 2016年9月29日 admin发表评论阅读评论 在RHEL7下,手工设置 /etc/resolv.conf 里的DNS有可能被系统清除或覆盖,与7.0以前的配置不同,可以使用一下三种方式配置。 方法1:nmcli工具设置 使用... -
eureka集群dns配置
2018-12-05 11:17:53eureka集群dns配置 需要配置txt记录,如何搭建请参照 搭建dns服务器添加 txt记录 这篇文章 eureka 服务配置 pom.xml &lt;?xml version="1.0" encoding="UTF-8"?&... -
彻底解决Ubuntu 14.04 重启后DNS配置丢失的问题
2019-03-24 10:42:49最近得到一个比较好用的DNS,每次重启后都修改DNS配置文件 etc resolv conf 重启就会失效从网上得知 etc resolv conf中的DNS配置是从 最近得到一个比较好用的DNS,每次重启后都修改DNS配置文件 /etc/resolv.conf ... -
NAT /DNS 配置实例
2017-04-09 20:07:12二、DNS配置 DNS原理 AR1为DNS Client ,Server4作为 DNS Server,必须保证DNS Client 与DNS Server 之间的路由互通(此拓扑直连,无需配置路由) DNS Client 配置如下: dns resolve dns server 12.0.0.3 ... -
IPV6介绍-DNS配置-实验对比
2020-08-20 17:35:10IPV6介绍-DNS配置-实验对比IPv6介绍-DNS配置-实验对比IPv6介绍DNS配置--配置步骤实验对比国内 IPv6 DNS国内教育网 IPv6 DNS 服务器国外知名公共 IPv6 DNS 服务器结果分析 IPv6介绍-DNS配置-实验对比 IPv6介绍 IPv6是... -
Linux网络配置 DNS配置信息丢失 原因分析及解决办法
2019-08-21 11:52:38重新配置DNS信息 ...重新查看DNS配置文件,发现DNS配置信息又一次丢失了。 所以,到这儿,我认为DNS配置信息丢失应该是NetworkManager引起的。 使用下边的方法,成功解决问题。 [root@localhost /etc]$ chkco... -
linux查看服务器dns配置
2020-02-20 10:21:14查看dns配置: [root@ecs-a3b8-0206438 ~]# cat /etc/resolv.conf # Generated by NetworkManager search openstacklocal novalocal nameserver 100.125.108.250 nameserver 202.98.192.67 [root@ecs-a3b8-... -
linux下dns配置方法与常用dns
2017-08-01 09:53:48linux下dns配置方法: 1、修改网卡配置文件 echo 'DNS1="114.114.114.114" ' >> /etc/sysconfig/network-scripts/ifcfg-eth0 2、修改/etc/hosts文件 echo "223.231.234.33 www.baidu.com" >> /etc/... -
Linux 学习 (五) DNS配置
2017-11-28 17:44:30CentOS 7 Linux DNS配置 yum -
shell之dns配置
2016-03-15 19:08:55## 简介 域名作为一棵倒挂的树,从根节点开始解析,直至叶子节点 .(根域) ... ## DNS查询流程图 ...## DNS配置文件字段详解 options{ 定义全局变量,影响整个DNS服务器的环境 directory "/var/name -
centos 6 7 DNS配置问题
2019-05-25 12:08:18网卡配置文件: [root@centos6 ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0 //选择相应网卡名 ...DNS配置文件: [root@centos6 ~]#vi /etc/resolv.conf nameserver 114.114.114.114 n... -
bind9智能dns配置
2018-09-25 15:14:30智能dns配置基于bind9 视图语句语法 view view_name [class] { match-clients { address_match_list } ; match-destinations { address_match_list } ; match-recursive-only { yes_or_no } ; [ view_option; ... -
linux DNS配置
2012-06-07 23:01:30怎样不重启而让修改resolv.conf...1.vi /etc/resolv.conf 增加dns配置 search site nameserver 192.168.1.26 nameserver 119.147.9.49 nameserver 222.73.76.227 nameserver 172.27.36.190 nameserver 172.17.19 -
Linux网络配置 DNS配置信息丢失 可能原因分析
2016-06-19 22:21:19具体情况如下: 在没有启动NetworkManager服务的情况下,已经成功连接:ping www.baidu.com ... ...查看DNS配置文件,果然DNS配置信息没了。 重新配置DNS信息 重新启动网络 service netw -
centos7更改dns配置
2017-02-13 15:49:47CentOS7启用了新的dns管理工具 nmcli connection show 查看当前启动的连接 nmcli con mod eth0 ipv4.dns xxxxxxx ...nmcli con up eth0 配置生效 再次尝试 可以解析域名了 [root@localhost yum.repos.d... -
DNS配置规则
2019-01-04 06:44:291、网卡如果配置DNS,会优先于/etc/resolv.conf 的配置,并且重启网卡,会把/etc/resolv.con里的覆盖。 2、网络如果没有配置 DNS,那么在/etc/resolv.conf里配置会生效,如果有多块网卡(DHCP获取方式)时候,可能... -
Docker daemon及容器实例的DNS配置详解
2019-06-05 23:48:08Linux系统中,DNS解析器是一组C库的进程,用以访问DNS服务器。DNS解析器通过/etc/resolv.conf配置文件给出要访问的...1. Docker daemon的DNS配置 Docker daemon的配置有两种方式,一种是通过/etc/docker/daemon.jso... -
linux下DNS配置及域名解析服务
2018-05-24 18:48:23一.DNS(Domain Name System,域名系统) 因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP... -
centos修改dns配置
2014-01-24 19:00:47公司的linux服务器安装centos6.5后,默认启用dhcp服务,用ifconfig查看ip地址,显示已经拿到了内网地址,用route命令查看,默认网关也是正确的,但就是不能上网,怀疑是dns无效导致的,修改dns配置: # vim /etc/... -
Linux 修改DNS配置
2018-03-27 21:30:30Question ...更改/etc/resolv.conf文件,更改成如下配置: nameserver 180.76.76.76 nameserver 114.114.114.114 ### Google nameserver 8.8.8.8 nameserver 8.8.4.4 LINUX DNS解析的3种修改方... -
Ubuntu 16.04 DNS 配置
2018-12-24 00:46:07在学习hadoop的时候,需要先将虚拟机设置为nat模式和设置静态ip,但是有时候...1.首先看一下你的静态ip地址,子网掩码,网关,dns地址(设置静态ip需要dns进行域名解析,需要配置dns地址)是否缺少,先贴上我的/etc/... -
Ubuntu 14.04下静态DNS配置详解
2018-12-03 20:06:47最近在使用校园网,输入正确的帐号密码后,系统一直显示认证失败,检查了一下ubuntu14.04的dns配置,果然,它的dns默认为127.0.0.1(127.0.1.1也是本地回环),于是就上网查找了一下修改dns的教程,分享给大家!...
-
面试题 17.07. 婴儿名字 ( 字符标志 并查集 )
-
Jupyter notebook导出包含中文的pdf
-
Leetcode 31. Next Permutation
-
AZ-900 -2021年1月最新.pdf
-
HTML调用PHP的方法
-
ProBuilder快速原型开发技术
-
CPP-Summit 2019 - 李永顺 - 嵌入式系统C++性能优化.pdf
-
Zhong Shi Ying Yu Zhi Jian (Bei - Ping Qia Mu.mobi
-
CUnit CUnit CUnit CUnit CUnit CUnit
-
three.js入门速成
-
Kotlin协程极简入门与解密
-
第1章 Java入门基础及环境搭建【java编程进阶】
-
2021年408考试真题 下载 PDF打印
-
2021 1 . 21 周四 每日反思
-
centos 7 安装 ifconfig
-
【数据分析实战训练营】Hive详解
-
bootstrap remote用法是什么
-
【数据分析-随到随学】量化交易策略模型
-
python办公自动化技巧
-
API代理版自动发卡平台源码V4.5.6.zip