DNS,全称Domain Name System,即域名解析系统

  1. DNS帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP地址”(即互联网协议地址)。由于IP地址(为一串数字)不方便记忆,DNS允许用户使用一串常见的字母(即“域名”)取代。比如,您只需键入www.baidu.com,而不是“119.75.217.109”。即可访问ICANN的官方网站。DNS命名用于InternetTCP/IP网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的其他信息,如IP地址。因为,你在上网时输入的网址,是通过域名解析系解析找到相对应的IP地址,这样才能上网。其实,域名的最终指向是IP

DNS功能

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

主机名到IP地址的映射有两种方式:

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

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

DNS重要性

  1. 1、技术角度看
  2. DNS解析是互联网绝大多数应用的实际寻址方式; 域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。
  3. 2、资源角度看
  4. 域名是互联网上的身份标识,是不可重复的唯一标识资源; 互联网的全球化使得域名成为标识一国主权的国家战略资源。

DNS的工作原理

以访问www.为例说明(主机为Windows系统)

  1. 1)客户端首先检查本地c:\windows\system32\drivers\etc\host文件,是否有对应的IP地址,若有,则直接访问WEB站点,若无
  2. 2)客户端检查本地缓存信息,若有,则直接访问WEB站点,若无
  3. 3)本地DNS检查缓存信息,若有,将IP地址返回给客户端,客户端可直接访问WEB站点,若无
  4. 4)本地DNS检查区域文件是否有对应的IP,若有,将IP地址返回给客户端,客户端可直接访问WEB站点,若无,
  5. 5)本地DNS根据cache.dns文件中指定的根DNS服务器的IP地址,转向根DNS查询。
  6. 6)根DNS收到查询请求后,查看区域文件记录,若无,则将其管辖范围内.com服务器的IP地址告诉本地DNS服务器
  7. 7).com服务器收到查询请求后,查看区域文件记录,若无,则将其管辖范围内.xxx服务器的IP地址告诉本地DNS服务器
  8. 8).xxx服务器收到查询请求后,分析需要解析的域名,若无,则查询失败,若有,返回www.的IP地址给本地服务器
  9. 9)本地DNS服务器将www.的IP地址返回给客户端,客户端通过这个IP地址与WEB站点建立连接

安装DNS服务器软件

  1. [root@CentOS7 ~]# yum install bind

配置相关配置文件

  1. /etc/named.conf ,/etc/named.rfc1912.zones DNS主配置文件
  2. /var/named/目录为DNS数据库文件存放目录,每一个域文件都放在这里。
  3. /etc/rc.d/init.d/named DNS服务的服务脚本。

一 DNS正向解析

这里以mytest.com域为例

www.mytest.com 对应IP 为192.168.29.100;

ftp.mytest.com 对应IP为1.1.1.1 。

1 首先编辑/etc/named.conf文件

  1. listen-on port 53 { any; };
  2. allow-query { any; };
  3. dnssec-enable no;
  4. dnssec-validation no;

2 编辑区域配置文件/etc/named.rfc1912.zones

  1. zone "mytest.com" IN {
  2. type master;
  3. file "mytest.com";
  4. };

其中zone的格式为:

  1. zone ZONE_NAME IN {
  2. type master;
  3. file ZONE_NAME.zone
  4. }

3 新建解析库文件/var/named/mytest.com.zone

  1. [root@CentOS7 ~]# vim /var/named/mytest.com.zone
  2. $TTL 1D
  3. $ORIGIN mytest.com.
  4. @ IN SOA mytest.com. admin.mytest.com. (
  5. 20170526; serial
  6. 1D ; refresh
  7. 1H ; retry
  8. 1W ; expire
  9. 3H ) ; minimum
  10. IN NS @ ; 直接输入域名解析,访问mytest.com
  11. IN A 2.2.2.2;
  12. mytest.com. IN NS ns1.mytest.com.
  13. ns1 IN A 192.168.29.100
  14. www IN A 172.16.254.13
  15. ftp IN A 1.1.1.1

4 修改解析库文件权限

  1. [root@CentOS7 ~]# chgrp named /var/named/mytest.com.zone

5检查 配置语法

(1)检查配置文件语法

  1. [root@CentOS7 ~]# named-checkconf

(2)检查域配置文件语法

  1. [root@CentOS7 ~]# named-checkzone mytest.com /var/named/mytest.com.zone
  2. zone mytest.com/IN: loaded serial 20170526
  3. OK

6 启动named服务

  1. [root@CentOS7 ~]# systemctl start named

7 测试

注意:要配置DNS服务器为本DNS服务器IP地址

或者使用dig命令则不需要修改DNS服务器

  1. [root@CentOS7 ~]# nslookup www.mytest.com
  2. Server: 127.0.0.1
  3. Address: 127.0.0.1#53
  4. Name: www.mytest.com
  5. Address: 172.16.254.13
  6. [root@CentOS7 ~]# nslookup ftp.mytest.com
  7. Server: 127.0.0.1
  8. Address: 127.0.0.1#53
  9. Name: ftp.mytest.com
  10. Address: 1.1.1.1

测试成功,正向解析成功!!

二 DNS反向解析

这里以mytest.com域为例

IP地址192.168.29.100/24对应域名为www.mytest.com;

192.168.29.200/24对应域名为ftp.mytest.com;

1 首先编辑/etc/named.conf文件

  1. listen-on port 53 { any; };
  2. allow-query { any; };
  3. dnssec-enable no;
  4. dnssec-validation no;

2 编辑区域配置文件/etc/named.rfc1912.zones

  1. zone "29.168.192.in-addr.arpa" IN {
  2. type master;
  3. file "name.29.168.192";
  4. };

格式为:

  1. zone "NET_IP.in-addr.arpa" IN { #NET_IP 为反向解析的IP 网段
  2. type master;
  3. file "NAME_ZONE"; #NAME_ZONE为反向解析库配置文件名称
  4. };

3 新建解析库文件

  1. $TTL 1D
  2. $ORIGIN 29.168.192.in-addr.arpa.
  3. @ IN SOA mytest.com. admin.mytest.com. (
  4. 20170526; serial
  5. 1D ; refresh
  6. 1H ; retry
  7. 1W ; expire
  8. 3H ) ; minimum
  9. IN NS mytest.com.
  10. 100 IN PTR www.mytest.com.
  11. 200 IN PTR ftp.mytest.com.

4 修改解析库文件所属组

  1. [root@CentOS7 ~]# chgrp named name.29.168.192

5 语法检查

(1)检查配置文件语法

  1. [root@CentOS7 ~]# named-checkconf

(2)检查域配置文件语法

  1. [root@CentOS7 ~]# named-checkzone 29.168.192.in-addr.arpa /var/named/name.29.168.192
  2. zone 29.168.192.in-addr.arpa/IN: loaded serial 20170526
  3. OK

6 启动named服务

  1. [root@CentOS7 ~]# systemctl start named

7 测试

  1. [root@CentOS7 ~]# dig -x 192.168.29.200 @192.168.29.100
  2. ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 192.168.29.200 @192.168.29.100
  3. [……]
  4. 200.29.168.192.in-addr.arpa. 86400 IN PTR ftp.mytest.com.
  5. [root@CentOS7 ~]# dig -x 192.168.29.100 @192.168.29.100
  6. [……]
  7. ;; ANSWER SECTION:
  8. 100.29.168.192.in-addr.arpa. 86400 IN PTR www.mytest.com.
  9. ;; AUTHORITY SECTION:
  10. 29.168.192.in-addr.arpa. 86400 IN NS mytest.com.

测试成功!!!

三 主从DNS

这里主DNS服务器IP地址为192.168.29.100/24

从DNS服务器IP地址为192.168.29.3/24

www.mytest.com 对应IP 为192.168.29.100;

ftp.mytest.com 对应IP为1.1.1.1

1首先编辑主服务器/etc/named.conf文件

  1. listen-on port 53 { any; };
  2. allow-query { any; };
  3. recursion yes;
  4. dnssec-enable no;
  5. dnssec-validation no;

2 编辑主服务器的区域配置文件/etc/named.rfc1912.zones

  1. zone "mytest.com" IN {
  2. type master;
  3. file "mytest.com.zone";
  4. allow-transfer {192.168.29.3; }; ##192.168.29.3位从服务器的ip地址。
  5. };

3 新建主服务器解析库文件vim /var/named/mytest.com.zone

  1. $TTL 1D
  2. $ORIGIN mytest.com.
  3. @ IN SOA mytest.com. admin.mytest.com. (
  4. 20170526; serial
  5. 1D ; refresh
  6. 1H ; retry
  7. 1W ; expire
  8. 3H ) ; minimum
  9. mytest.com. IN NS ns1.mytest.com.
  10. mytest.com. IN NS slave.mytest.com. ###添加从服务器的NS解析记录。
  11. ns1 IN A 192.168.29.100
  12. slave IN A 192.168.29.3 ###指定从服务器的IP地址。
  13. www IN A 172.16.254.13
  14. ftp IN A 1.1.1.1

4 编辑从服务器/etc/named.conf文件

  1. listen-on port 53 { any; };
  2. allow-query { any; };
  3. recursion yes;
  4. dnssec-enable no;
  5. dnssec-validation no;

5 配置从服务器的区域配置文件/etc/named.rfc1912.zones

  1. zone "mytest.com" IN {
  2. type slave; ##表明本机是从服务器
  3. file "slaves/mytest.com"; ##将同步后的文件放置在哪里,这里是相对路径,实际路径为/var/named/slaves/mytest.com
  4. masters {192.168.29.100; }; ##指定主服务器的ip地址
  5. };

6 语法检查

在主从两个服务器上都进行语法检查

  1. [root@CentOS7 ~]# named-checkconf

7 在主从两个服务器上开启服务

  1. [root@CentOS7 ~]# systemctl start named

8 测试

(1)查看从服务器已经取得解析数据库文件

  1. [root@centos7 ~]# ll /var/named/slaves/
  2. total 4
  3. -rw-r--r--. 1 named named 348 May 26 15:22 mytest.com

(2)用从服务器解析www.mytest.com

  1. [root@centos7 ~]# dig -t A www.mytest.com @192.168.29.3
  2. [……]
  3. ;; ANSWER SECTION:
  4. www.mytest.com. 86400 IN A 172.16.254.13
  5. ;; AUTHORITY SECTION:
  6. mytest.com. 86400 IN NS slave.mytest.com.
  7. mytest.com. 86400 IN NS ns1.mytest.com.
  8. ;; ADDITIONAL SECTION:
  9. ns1.mytest.com. 86400 IN A 192.168.29.100
  10. slave.mytest.com. 86400 IN A 192.168.29.3
  11. ;; Query time: 2 msec
  12. ;; SERVER: 192.168.29.3#53(192.168.29.3)
  13. ;; WHEN: Fri May 26 15:37:13 CST 2017
  14. ;; MSG SIZE rcvd: 129

可以看到解析成功。说明从服务器已生效。

四 子域授权

这里子域服务器为192.168.29.110

1 在mytest.com.域的服务器上修改区域数据库文件

  1. [root@CentOS7 ~]# cat /var/named/mytest.com.zone
  2. $TTL 1D
  3. $ORIGIN mytest.com.
  4. @ IN SOA mytest.com. admin.mytest.com. (
  5. 20170526; serial
  6. 1D ; refresh
  7. 1H ; retry
  8. 1W ; expire
  9. 3H ) ; minimum
  10. IN NS @ ; 直接输入域名解析,访问mytest.com
  11. IN A 2.2.2.2;
  12. mytest.com. IN NS ns1.mytest.com.
  13. mytest.com. IN NS slave.mytest.com.
  14. haha.mytest.com. IN NS ns2.haha.mytest.com. ###新添加的行
  15. ns1 IN A 192.168.29.100
  16. slave IN A 192.168.29.3
  17. www IN A 172.16.254.13
  18. ftp IN A 1.1.1.1
  19. ns2.haha.mytest.com. IN A 192.168.29.110 ###新添加行,指明子域服务器IP地址。

2 修改子域服务器的主配置文件/etc/named.conf

  1. [root@CentOS7 ~]# vim /etc/named.conf
  2. listen-on port 53 { any; };
  3. allow-query { any; };
  4. recursion yes;
  5. dnssec-enable no;
  6. dnssec-validation no;

3 编辑子域服务器的区域配置文件/etc/named.rfc1912.zones

  1. [root@CentOS7 ~]# vim /etc/named.rfc1912.zones
  2. zone "haha.mytest.com" IN {
  3. type master;
  4. file "haha.zone";
  5. allow-transfer {192.168.29.0/24; };
  6. };

4 新建主服务器解析库文件/var/named/haha.zone

域名www.haha.mytest.com 对应IP 172.16.11.11

域名ftp. haha.mytest.com 对应IP 2.2.2.2

  1. [root@CentOS7 ~]# vim /var/named/haha.zone
  2. $TTL 1D
  3. $ORIGIN haha.mytest.com.
  4. @ IN SOA haha.mytest.com. admin.haha.mytest.com. (
  5. 20170528; serial
  6. 1D ; refresh
  7. 1H ; retry
  8. 1W ; expire
  9. 3H ) ; minimum
  10. IN NS @ ; 直接输入域名解析,访问haha.mytest.com
  11. IN A 3.3.3.3;
  12. haha.mytest.com. IN NS ns2.haha.mytest.com.
  13. ns2 IN A 192.168.29.110
  14. www IN A 172.16.11.11
  15. ftp IN A 2.2.2.2

5 语法检查

在两个服务器上都进行语法检查

  1. [root@CentOS7 ~]# named-checkconf

6 在两个服务器上开启服务

  1. [root@CentOS7 ~]# systemctl start named

7测试

  1. [root@centos7 ~]# dig -t A www.haha.mytest.com @192.168.29.100
  2. ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.haha.mytest.com @192.168.29.100
  3. […….]
  4. ;www.haha.mytest.com. IN A
  5. ;; ANSWER SECTION:
  6. www.haha.mytest.com. 86400 IN A 172.16.11.11
  7. ;; AUTHORITY SECTION:
  8. haha.mytest.com. 86400 IN NS ns2.haha.mytest.com.
  9. ;; ADDITIONAL SECTION:
  10. ns2.haha.mytest.com. 86400 IN A 192.168.29.110

可以看到,已经可以成功解析

部署DNS服务的更多相关文章

  1. DNS解析原理与Bind部署DNS服务

    DNS是什么? DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址.反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提 ...

  2. CentOS6.7搭建部署DNS服务 (详解主配置文件)

    -DNS服务器的基本原理 域名简介:使用tcp/udp协议,默认使用53端口号 默认情况下,客户端发起的查询请求都是用UDP/53查询的. 默认情况下,从从服务器到主服务器传输数据用的是TCP/53. ...

  3. Linux_配置主DNS服务(基础)

    [RHEL8]-DNSserver:[Centos7.4]-DNSclient !!!测试环境我们首关闭防火墙和selinux(DNSserver和DNSclient都需要) [root@localh ...

  4. 《linux就该这么学》第十四节课:第13章,部署DNS域名解析服务(bind服务)

    (借鉴请改动)  第十二章收尾  12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在  /etc/export  写入格式:共享目录    允许的客户端(参数)  ro        ...

  5. Linux下DNS服务(Bind9)之Web管理利器-NamedManager部署说明

    NamedManager 是一个基于Web的DNS管理系统,可用来添加.调整和删除DNS的zones/records数据.它使用Bind作为底层DNS服务,提供一个现代Ajax的Web界面,支持 IP ...

  6. Kubernetes 部署集群内部DNS服务

    Kubernetes 部署集群内部DNS服务 部署官网:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/ ...

  7. 二进制部署1.23.4版本k8s集群-2-安装DNS服务

    2.安装DNS服务 为什么要安装bind9? K8S中,使用Ingress进行7层流量调度,需要使用域名,进行7层调度. 以前使用绑定host的方法,来进行域名和IP地址的解析. 在K8S里,没有好的 ...

  8. Liunx下配置DNS服务

    当Ping 主机名时可以映射出该主机的IP地址,反之亦然.配置并指定DNS服务器可以快速部署集群,不需要每台主机都去修改HOSTS文件即可实现IP与主机名的相互解析.而在Linux下的DNS是用bin ...

  9. centos7 部署dns服务器

    =============================================== 2017/12/6_第2次修改                       ccb_warlock 20 ...

随机推荐

  1. Coursera 机器学习笔记(一)

    主要是第一二周内容 机器学习概要 机器学习是什么? 生活在信息时代的我们,其实时时刻刻都离不开机器学习算法.比如日常使用的搜索引擎就涉及到很多学习算法. Arthur Samuel 给出第一个定义.他 ...

  2. html打造动画【系列1】- 萌萌的大白

    每个人心中都有一个暖暖的大白,blingbling的大眼睛~软软的肚子~宽厚的肩膀~善良的心肠~如果可以,我愿意沦陷在大白的肚子里永远不出来,哈哈~毛球要失宠咯~ 哈哈哈 每个人都是独立的个体,大白也 ...

  3. Mac下将ISO写入U盘镜像

    在Mac下面如果想做一个启动U盘,确实不如windows下那么方便,Windows下面有ultraiso+王涛,Mac下面测可以用下面的办法. 打开磁盘工具 插入U盘,并在磁盘工具里面找到U盘,把它卸 ...

  4. 【webpack整理】一、安装、配置、按需加载

    如果你: 是前端热爱者 :) 有JavaScript/nodejs基础 会使用一些常用命令行,mkdir,cd,etc. 会使用npm 想对webpack有更深的认识,或许此时你恰好遇到关于webpa ...

  5. php调用java

    PHP调用JAVA方式 1.     背景 在开发招商银行信用卡分期付款功能过程中,在支付成功之后需要对银行的返回数据进行签名验证,因签名加密方式招商银行是不提供的,只提供了相应的JAVA验证类测试例 ...

  6. [0] Devexpress 控件参数集合

    gridview控件/统计功能 比如对“数量”列进行统计,只要在GridControl的设计器中设置SummaryItem:   SummaryItem.DisplayFormat = "{ ...

  7. JavaScript Trick

    JavaScript 判断 一个元素 是否在 数组中 : indexOf 原理 : array.indexOf(item) 如果 item 不在 array 中 , 则返回 -1 ; 如果 item ...

  8. JAVAEE——spring01:介绍、搭建、概念、配置详解、属性注入和应用到项目

    一.spring介绍 1.三层架构中spring位置 2.spring一站式框架 正是因为spring框架性质是属于容器性质的. 容器中装什么对象就有什么功能.所以可以一站式. 不仅不排斥其他框架,还 ...

  9. .Net WebApi基本操作

    一.服务端 1.新建webapi项目 2.配置WebApiConfig public const string DEFAULT_ROUTE_NAME = "DB";// DB指数据 ...

  10. php中memcache的运用

    <?php /** * •Memcache::add — 增加一个条目到缓存服务器 * •Memcache::addServer — 向连接池中添加一个memcache服务器 * •Memcac ...