一、DNS简介
DNS(Domain Name System),域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。DNS服务器的作用就是就好比生活中的电话簿、114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名。

二、DNS功能
每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。

主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的)
反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时。)

根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色:
1)缓存域名服务器,也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度

2)主域名服务器
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录

3)从域名服务器(通俗一点就是用于备份DNS服务器的)
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
搭建DNS服务应用的软件为:BIND(Berkeley Internet Name Daemon)

三、DNS服务环境部署记录

1)安装DNS服务所需要的软件包
[root@test ~]# yum -y install bind bind-chroot bind-util bind-libs
------------------------------------------------------------------------------------------------
解释:
bind 提供了域名服务的主要程序及相关文件
bind-utils 提供了对DNS服务器的测试工具程序(如nslookup、dig等)
bind-chroot 为bind提供一个伪装的根目录以增强安全性(将“/var/named/chroot/”文件夹作为BIND的根目录)
------------------------------------------------------------------------------------------------ 2)DNS服务器的配置(服务端要能联网)
[root@test ~]# cp /etc/named.conf /etc/named.conf.bak
[root@test ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #使用53端口监听,默认监听的是127.0.0.1,这里修改为any(或者直接修改为服务端的ip地址,如服务器ip为192.168.1.24)
listen-on-v6 port 53 { ::1; }; #监听ipv6的IP地址选项
directory "/var/named"; #DNS的根目录,由于安装了bind-chroot的所致,因此服务的实际工作目录为/var/named/chroot/var/named
dump-file "/var/named/data/cache_dump.db"; #缓存转储文件
statistics-file "/var/named/data/named_stats.txt"; #记录了内存使用的统计信息
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; #允许查询的主机,默认为localhost,这里修改为any
recursion yes; #可以递归查询 dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
}; logging { #named服务的日志文件信息
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN { #根(.)域的配置及信息(也可以通过其它上级域名转发功能来配置缓存域名服务器,可以去了解下) type hint;
file "named.ca";
}; [root@test ~]# chmod 770 /var/named/
[root@test ~]# ls -lh /etc/named.conf
-rw-r-----. 1 root named 984 Nov 20 2015 /etc/named.conf
[root@test ~]# /etc/init.d/named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
[root@test ~]# ps -ef|grep name
named 1592 1 0 15:03 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot
root 1614 32378 0 15:03 pts/0 00:00:00 grep name [root@test ~]# netstat -tunlp|grep named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1592/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1592/named
tcp 0 0 ::1:53 :::* LISTEN 1592/named
tcp 0 0 ::1:953 :::* LISTEN 1592/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1592/named
udp 0 0 ::1:53 :::* 1592/named 3)客户端测试
将上面服务器的ip地址添加到客户端的/etc/resolv.conf文件里
[root@test2 ~]# cat /etc/resolv.conf
nameserver 192.168.1.24 //此处的192.168.1.24是上面DNS服务器的ip地址 [root@test2 ~]# ping www.baidu.com
PING www.a.shifen.com (119.75.213.51) 56(84) bytes of data.
64 bytes from 119.75.213.51: icmp_seq=1 ttl=55 time=2.58 ms
64 bytes from 119.75.213.51: icmp_seq=2 ttl=55 time=2.29 ms
....... [root@test2 ~]# dig www.baidu.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55147
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5 ;; QUESTION SECTION:
;www.baidu.com. IN A ;; ANSWER SECTION:
www.baidu.com. 1100 IN CNAME www.a.shifen.com.
www.a.shifen.com. 200 IN A 119.75.213.50
www.a.shifen.com. 200 IN A 119.75.213.51 ;; AUTHORITY SECTION:
a.shifen.com. 1100 IN NS ns4.a.shifen.com.
a.shifen.com. 1100 IN NS ns2.a.shifen.com.
a.shifen.com. 1100 IN NS ns3.a.shifen.com.
a.shifen.com. 1100 IN NS ns1.a.shifen.com.
a.shifen.com. 1100 IN NS ns5.a.shifen.com. ;; ADDITIONAL SECTION:
ns5.a.shifen.com. 1100 IN A 119.75.222.17
ns3.a.shifen.com. 1100 IN A 61.135.162.215
ns4.a.shifen.com. 1100 IN A 115.239.210.176
ns1.a.shifen.com. 1100 IN A 61.135.165.224
ns2.a.shifen.com. 1100 IN A 180.149.133.241 ;; Query time: 1 msec
;; SERVER: 192.168.1.233#53(192.168.1.233)
;; WHEN: Wed Jun 21 15:12:20 2017
;; MSG SIZE rcvd: 260 ------------注意事项-------------
客户端必须要跟服务器端能够通信(能ping通)及关闭selinux ---------------------------------------扩展-------------------------------------------
上面在/etc/named.conf文件里没有自定义域名去进行解析设置,下面说下自定义域名的设置:
1) DNS主域名服务器配置 [root@test ~]# cp /etc/named.conf /etc/named.conf2.bak
[root@test ~]# vim /etc/named.conf #追加下面内容,即添加wangshibo.com域名配置。如果有多个域名,就如下添加多个类似配置。
......
zone "wangshibo.com" IN { #指定区名。正向解析
type master; #服务器类别,master为主域名
file "wangshibo.com_zone"; #正向解析区域文件名wangshibo.com_zone,在/var/named目录下创建
allow-transfer {192.168.1.23;}; #指定从(辅助)域名服务器IP。即DNS从服务器的ip是192.168.1.23
};
zone "1.168.192.in-addr.arpa" IN { #域名对应的ip地址网段为192.168.1.0,此处必须按照相 。反向解析 同的格式写
type master;
file "192.168.1.zone"; #反向解析文件名192.168.1.zone
allow-transfer {192.168.1.23;};
}; [root@test ~]# vim /var/named/wangshibo.com_zone
$TTL 1D
@ IN SOA ns1.wangshibo.com. mail.www.wangshibo.com. (
2014102101 #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去
1D
1H
1W
3H )
@ IN NS ns1.wangshibo.com. #主域名的域名地址。NS是域名服务器
ns1.wangshibo.com. IN A 192.168.1.24 #主域名的ip地址
@ IN NS ns2.wangshibo.com. #从域名的域名地址。NS是域名服务器
ns2.wangshibo.com. IN A 192.168.1.23 #从域名的ip地址
@ IN MX 10 mail.ww.wangshibo.com. #邮件服务器的域名地址
mail.www.wangshibo.com. IN A 192.168.1.4
www.wangshibo.com. IN A 192.168.1.2
ftp.wangshibo.com IN A 192.168.1.3
win7.wangshibo.com. IN A 192.168.1.224
linux.wangshibo.com. IN CNAME ns1.wangshibo.com.
smb.wangshibo.com. IN CNAME ns1.wangshibo.com.
dhcp.wangshibo.com. IN CNAME ns1.wangshibo.com. [root@test ~]# vim /var/named/192.168.1.zone
$TTL 1D
@ IN SOA ns1.wangshibo.com. mail.www.wangshibo.com. (
2014102101 #主DNS的此解析文件没改动一次,都要修改一次这个值,然后重启naned或rndc reload重启,从DNS就会自动同步过去
1D
1H
1W
3H )
@ IN NS ns1.wangshibo.com.
@ IN NS ns2.wangshibo.com.
24 IN PTR ns1.wangshibo.com.
23 IN PTR ns2.wangshibo.com.
@ IN MX 10 mail.www.wangshibo.com.
4 IN PTR mail.www.wangshibo.com.
2 IN PTR www.wangshibo.com.
3 IN PTR ftp.wangshibo.com.
23 IN PTR win7.wangshibo.com. [root@test ~]# /etc/init.d/named restart
Stopping named: [ OK ]
Starting named: [ OK ] 在客户端测试
[root@test2 ~]# cat /etc/resolv.conf
search wangshibo.com
nameserver 192.168.1.24 [root@test2 ~]# dig www.wangshibo.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> www.wangshibo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29152
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION:
;www.wangshibo.com. IN A ;; ANSWER SECTION:
www.wangshibo.com. 86400 IN A 192.168.1.2 ;; AUTHORITY SECTION:
wangshibo.com. 86400 IN NS ns2.wangshibo.com.
wangshibo.com. 86400 IN NS ns1.wangshibo.com. ;; ADDITIONAL SECTION:
ns1.wangshibo.com. 86400 IN A 192.168.1.24
ns2.wangshibo.com. 86400 IN A 192.168.1.23 ;; Query time: 1 msec
;; SERVER: 192.168.1.24#53(192.168.1.24) #注意这行,说明是主DNS从域名服务器解析的
;; WHEN: Wed Jun 21 15:39:09 2017
;; MSG SIZE rcvd: 119 1) DNS从域名服务器配置
从域名服务器的ip为192.168.1.23
服务的安装过程在上面已介绍,此处省略
[root@test33 ~]# cp /etc/named.conf /etc/named.conf.bak
[root@test33 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes; dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
}; logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN { type hint;
file "named.ca";
}; zone "wangshibo.com" IN {
type slave;
file "wangshibo.com_zone";
masters {192.168.1.24;};
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "192.168.1.zone";
masters {192.168.1.24;};
}; [root@test33 ~]# chmod 770 /var/named/
[root@test33 ~]# ll /var/named/ -d
drwxrwx---. 6 root named 4096 Jun 21 15:44 /var/named/ [root@test33 ~]# service named restart
Stopping named: [ OK ]
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ] 客户端测试
[root@test2 ~]# dig @192.168.1.23 www.wangshibo.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> @192.168.1.23 www.wangshibo.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12862
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION:
;www.wangshibo.com. IN A ;; ANSWER SECTION:
www.wangshibo.com. 86400 IN A 192.168.1.2 ;; AUTHORITY SECTION:
wangshibo.com. 86400 IN NS ns2.wangshibo.com.
wangshibo.com. 86400 IN NS ns1.wangshibo.com. ;; ADDITIONAL SECTION:
ns1.wangshibo.com. 86400 IN A 192.168.1.24
ns2.wangshibo.com. 86400 IN A 192.168.1.23 ;; Query time: 1 msec
;; SERVER: 192.168.1.23#53(192.168.1.23) #注意这行,说明是从DNS从域名服务器解析的
;; WHEN: Wed Jun 21 15:53:47 2017
;; MSG SIZE rcvd: 119 最后,在客户机的/etc/resolv.conf文件里添加上面主从DNS地址,就可以正常解析上面在/var/named/192.168.1.zone里设置的域名了
# vim /etc/resolv.conf
nameserver 192.168.1.24
nameserver 192.168.1.23 -----------------------------------------注意事项--------------------------------------------
a)如果还是无法解析,请返回主域名服务器的/var/named目录给区域配置文件加上权限(单纯是为了练习的话,可以加到最大权限到777)
b)以上的练习都是在关闭防火墙与seLinux的状态下操作的,如果防火墙开启,可自行去添加规则

最后务必查看下/var/log/messages日志的内容,查看DNS主从是否启动正常,是否实现了同步。

Linux下DNS简单部署(主从域名服务器)的更多相关文章

  1. Linux下DNS服务器搭建详解

    Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...

  2. Linux下dns服务器搭建

    Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...

  3. Linux下一个简单的日志系统的设计及其C代码实现

    1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...

  4. 在linux下用tomcat部署java web项目的过程与注意事项

    在linux下用tomcat部署java web项目的过程与注意事项 一.安装JDK 到http://www.oracle.com/technetwork/java/javase/downloads/ ...

  5. linux下实现自动部署tomcat的脚本

    linux下实现自动部署tomcat的脚本 由于经常部署war到tomccat上,经常有一些重复的工作要做:停服务.备份war包.上传新的war包.启动服务.索性就写了一个自动部署的脚本. 脚本如下a ...

  6. Linux下Tomcat同时部署两个工程然而只有一个能访问问题

    Linux下Tomcat同时部署两个工程然而只有一个能访问问题 问题: Linux下单个部署到Tomcat下的时候都正常,两个一起部署,只有一个能访问: 解决方案: 由于采用#./shutdown.s ...

  7. 在linux下用tomcat部署java web项目的过程与注意事项(转)

    在linux下用tomcat部署java web项目的过程与注意事项一.安装JDK到http://www.oracle.com/technetwork/java/javase/downloads/in ...

  8. Linux下Apache服务部署静态网站------网站服务程序

    文章链接(我的CSDN博客): Linux下Apache服务部署静态网站------网站服务程序

  9. Linux下使用JDK11部署Nacos启动报错:Could not find or load main class

    Linux下使用JDK11部署Nacos 错误日志 /nacos/jdk-11.0.12/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize ...

随机推荐

  1. Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

    在主工程(ASP.NET WEB/WCF等)的NuGet里引用 System.Data.SQLite.Core 不仅仅是Service需要引用,主工程即使不直接使用SQLite的库,也需要引用. 若使 ...

  2. VSCode + PYQT5 + QtDesigner 环境搭建和测试

    目的:编写Python桌面应用程序. 备注:也可以选择VS2017+QtDesigner ,但更喜欢VSCode 第1步:安装PyQt5和PyQt5-tools pip3 install -i htt ...

  3. 4.8 Sublime Text3 中配置 Python环境 --之下Sublime配置Python环境

    返回总目录 目录: 1.没有配置之前 2.安装Package Control插件 3.安装其他库: 4.配置其他操作: (一)没有配置之前: 我们试着运行以下,会效果怎么样? 1.首先选择Python ...

  4. 学生&部门智能匹配程序

    Github链接 结对成员: 031502308 付逸豪 031502113 胡俊钦 数据生成 样例链接: 来点我啊 由于在生成数据的时候做了很多符合实际情况的限制,所以生成的数据都挺好的,就随便选了 ...

  5. npm包开发(whale-makelink)

    whale-makelink是一个npm工具,是强业务的工具,可以将当前工程目录下的项目文件夹,在README中生成项目的链接地址.Demo. 一.npm init 使用npm init生成packa ...

  6. 组件的三大属性state,props,refs与事件处理

    组件的三大属性state state是组件对象最重要的属性, 值是对象(可以包含多个数据),组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件) 初 ...

  7. read_csv报错Initializing from file failed

    Python版本:Python 3.6 pandas.read_csv() 报错 OSError: Initializing from file failed,一般由两种情况引起:一种是函数参数为路径 ...

  8. Python数据分析实例操作

    import pandas as pd #导入pandas import matplotlib.pyplot as plt #导入matplotlib from pylab import * mpl. ...

  9. reorder-list 单链表

    题意: 给你一个单链表 a1 a2 a3 a4 a5....an 让你变成 a1 an a2 an-1 a3 an-2 .... 这里牵涉到,单链表的倒置和两个单链表的合并. class Soluti ...

  10. Street Numbers POJ - 1320(佩尔方程式)

    题意:就是从n到1再从1到n的各个数字之和为sum1, 然后从n到m,再从m到n的各个数字之和为sum2,求,(n,m)的前10组解. 思路: 直接建模,利用等差数列的求和公式计算一个公式(2n+1) ...