一、什么是DNS
DNS 是域名服务 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,
并具有将域名转换为IP地址功能的服务器。
其中域名必须对应一个IP地址,而IP地址不一定有域名。
域名系统采用类似目录树的等级结构。
域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。
将域名映射为IP地址的过程就称为"域名解析"。
在Internet上域名与IP地址之间是一对一(或者多对一)的,
也可采用DNS轮循实现一对多,域名虽然便于人们记忆,
但机器之间只认IP地址,它们之间的转换工作称为域名解析,
域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
DNS 命名用于 Internet等 TCP/IP网络中,通过用户友好的名称查找计算机和服务。
当用户在应用程序中输入 DNS 名称时,
DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。
因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,
这样才能上网。其实,域名的最终指向是IP

二、域名的规则
  域名空间结构
采用分层结构:
根域:用.表示
顶级域:分为组织域和国家或地区域。组织域采用3个字符代号,如.com  .edu  .gov
国家或地区域,采用两个字符代号。如.cn  .jp

二级域:二级域注册到个人、组织或者公司名称,如baidu、taobao等
主机名称:主机名称处于域名空间的最底层,主机名与上述各级域名结合构成FQND(完全合格域名)

每个域用一个点号“.”分开

三、DNS服务的作用
将域名解析为IP地址

四、域名查询的过程
DNS查询类别:
递归查询
迭代查询

DNS解析方式:
正向解析:将FQDN解析为对应的IP
反向解析:将IP解析为对应的FQDN

五、DNS服务搭建有两种
1.bind   2.unbound
今天我们先讲我们的bind
我们要传输一个文件,是不是要知道你的IP,比如要传输给我们班上的50位,我是不是要记住所有人的IP,我是记不住的,记住名字可能可以记住。我可以将所有人的ip和名字写入一个文件,这样就可以了。文件是/etc/hosts。
ssh 172.16.30.30可以连上system2
ssh system2 就会失败。
如果在/etc/hosts里写入:172.16.30.30 system2就可以了
也可以在后面加上system2.example.com这两个连都可以。
这样的话,我只能和你通讯,而你不能和我这样通讯,想要的话就要将我的信息写入你的/etc/hosts写入。例如,公司有200个你将要写200条,其他人也要写200。有个哥们改了名字,是不是200台都要改啊。
这样呢,我们就需要DNS服务器了。我们只需要知道DNS的IP就好了。

DNS重要的配置文件及目录解释
/etc/hosts    本地解析配置文件
/etc/resolv.conf    客户端的DNS指向
named    DNS服务名称
bind,bind-chroot DNS安装软件包
/var/named DNS的家目录
/etc/named.conf    映射的DNS主配置文件
/var/named/chroot/etc/named.rfc1912.zones    记录DNS正向和反向的全局解析配置文件
/var/named/named.localhost    正向解析的配置文件模板
/var/named/named.empty    反向解析的配置文件模板

配置主DNS服务器
1、安装bind、bind-chroot软件
yum -y install bind bind-chroot

2、编辑DNS服务器主配置文件
vim /etc/named.conf
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query     { any; };

include /etc/named.rfc1912.zones也就是将这些导入这个文件中,
是用来解析DNS正向、反向解析全局配置文件
再下面就是模板,复制到最后再来更改

3、编辑正向和反向解析全局配置文件
vim /etc/named.rfc1912.zones
zone "example.com" IN {
        type master;
        file "example.com";-----------告诉配置文件我的正向解析文件是谁
        allow-update { none; };
};

zone "30.16.172.in-addr.arpa" IN {
        type master;
        file "com.example";------告诉配置文件我的反向解析文件是谁
        allow-update { none; };
};

4、配置正向解析文件和反向解析文件
(1)将原先的正向和反向解析文件的模板复制到我们刚刚设置的配置文件中
此时一定要注意文件的所有者和所属组,我们不能改变,所以在cp的时候一定要
加上-p的选项
cd /var/named
cp -p named.localhost example.com
cp -p named.empty com.example

(2)编辑正向解析文件
vim example.com
$TTL 1D
@       IN SOA  server.example.com. root.example.com. (
                                20210228        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      server.example.com.
server  IN      A       172.16.30.20
client  IN      A       172.16.30.10

$TTL 1D:缓存周期为1天
SOA:起始授权记录,就是由谁让你做解析的,即DNS服务器
serial:序列号,可以随便写
refresh:定义辅助DNS刷新的时间,也就是说辅助DNS会隔多久同步主dns解析数据。

retry:表示重试延迟,也就是说辅助dns第一次同步数据失败,那么就需要隔多久(就是retry来定义)来同步

expire:表示失效的时间,超过这个时间,辅助DNS一直同步数据失败,
那么该辅助DNS服务器将失效,则不会再去同步主DNS数据

minimum:表示定义无效解析的缓存时间。

一个FQDN只能对应一个IP,但是一个IP可以对应多个FQDN。

(3)编辑方向解析文件
vim  com.example
$TTL 3H
@       IN SOA  server.example.com. root.example.com. (
                                20210228        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      server.example.com.
10      IN      PTR     client.example.com.
20      IN      PTR     server.example.com.

5、重启服务
systemctl  restart  named
systemctl  enable  named

6、设置防火墙
firewall-cmd --add-service=dns --permanent 
firewall-cmd --reload
或者使用富规则
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.30.0/24 
service name=dns accept' --permanent

firewall-cmd  --reload

7、在客户端上的网卡配置文件中配置DNS为服务器的IP
vim /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=78fae162-eb2f-4a4e-b46f-e77f72410498
DEVICE=ens160
ONBOOT=yes
IPADDR=172.16.30.10
PREFIX=24
DNS1=172.16.30.20

保存退出后,重启网卡服务并激活网络连接
systemctl restart NetworkManager
nmcli connection up ens160

8、验证
在client上ping服务器server.example.com,看能否ping通

ping server.example.com

或者使用nslookup

=================================================
unbound  为了对比我们在system2上做。

yum -y install unbound 安装我们的unbound软件包
也就会在/etc/出现一个unbound一个文件夹
里面unbound.conf就是DNS配置文件

vim /etc/unbound/unbound.conf
interface : 0.0.0.0  打开所有
access-control 0.0.0.0/0 allow 允许所有访问
/etc/unbound/local.d/*.conf

bind和unbound的对比
1、/etc/named.conf = /etc/unbound/unbound.conf
2./etc/named.rfc1912.zone= /etc/unbound/unbound.conf
3./var/named/*(自己指定的)=/etc/unbound/local.d/*.conf

example.conf

local-zone: "example.com." static
local-data: "example.com. 86400 IN SOA ns.example.com. root 2016121501 1D 1H 1W 3H"
local-data: "ns.example.com. IN A 172.16.30.30"
local-data-ptr: "172.16.30.30 ns.example.com."

这个就是要认真一点,不要有马虎,也不能少引号,字母错了没事他不报错,就是解析时解不出来。

注意,此时一定要注意53端口不能开启,通过netstat -tulnp | grep 53命令查找出53端口对应
的进程,然后使用kill -9 进程号  来杀死该进程

重启服务,做防火墙,都没问题了
也可以做测试
nslookup www.example.com
解析域名,如果可以的话,他就是成功了。

==============================
辅助DNS
作用,当主DNS挂了,它会充当DNS角色。主DNS和辅助DNS不是在同一台设备上做的。

在named.rfc1912.zones里面修改。
zone "example.com" IN {
    type slave;
    file "slaves/example.zone";
    masters { 172.16.30.130;};
};

zone "30.16.172.in-addr.arpa" IN {
    type slave;
    file "slaves/zone.example";
    masters { 172.16.30.130;};
};

在slaves目录中不用拷贝模板文件,这个重启服务自动同步的。

=======================
正向解析文件
CNAME(别名)写在正向上。
www IN A 172.16.30.40
www IN A 172.16.30.30
这样当访问服务器时一次访问40,一次访问30.减轻服务器的压力。

@ IN MX mail.example.com.
mail IN A 172.16.30.30
指向邮件服务器,当所有的邮件需要发向example.com这个域的时候,所有邮件丢到这个mail.example.com这个机器上。这个机器在哪里就是30。
当我们有两个mail服务器的时候,要设置优先级,在A后面加上数字10 20,数字越小,优先级越高。

========================

转发DNS
named.conf
转发dns只需要改全局。
forwarders {ip地址;};
forward only;

企业中间用的最多的就是转发,我会把我不知道的全部转发出去。(百度,淘宝)

Linux服务之DNS相关推荐

  1. linux服务篇-DNS服务

    DNS(Domain Name System,域名系统),在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务,简单的说,域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的 ...

  2. linux 服务搭建DNS

    查看本地服务器所开启的服务.命令: service --status-all  举例说明: [root@zabbix-server ~]# service --status-all auditd (p ...

  3. Linux服务配置 DNS服务器配置

    一.什么是DNS服务器 DNS(Domain Name System):域名系统 用于IP和域名的解析 产生原因:上网需要IP,而IP不好记忆,用英文字母表示的域名便于记忆. 二.CentOS 7 配 ...

  4. linux mrtg 命令,linux服务器之流量监控(MRTG)

    本系列文章原则:灰常详细,灰常简单,新手包学包会! 因其简单,故未涉及安全性方面的考虑呵! 本实验服务器为rhel-5-server-i386,客户端为windows xp.本实验所用软件包均在rhe ...

  5. linux网络服务之dns

    dns:即domain name system,用于实现从域名到IP的转换,在DNS系统出现之前,windows系统通过主机文件(c:\windwos\system32\drivers\etc\hos ...

  6. Linux网络服务之DNS(2)

    Linux网络服务之DNS(2) 实验要求: 1.搭建父DNS(zhy.com)服务器,www.zhy.com  -->   192.168.1.253 2.搭建子DNS(bj.zhy.com) ...

  7. linux dns服务无效,Linux下搭建DNS服务器及踩坑

    DNS服务 域名系统(DNS)是建立在分布式数据库上的分层命名系统.该系统将域名转换为IP地址,并可以将域名分配给Internet组资源和用户,无论实体的物理位置如何. 说白了就是:域名与IP之间的相 ...

  8. Linux下配置DNS服务

    一.DNS服务简介 DNS服务器,也称为域名解析服务器,是用来将互联网上的域名解析为IP地址的一类服务器,在世界上有成百上千台DNS服务器.对于有些公司来说,对于同一个域名可能有多个DNS服务器,这样 ...

  9. 了解域名、域名系统及域名的解析过程以及Linux操作系统下DNS域名解析服务的搭建过程

    1.什么是域名?什么是域名系统? **域名系统DNS(Domain Name System)**是因特网使用的命名系统,互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更 ...

最新文章

  1. 智能连接:5G、AI和IoT的组合如何改变美洲
  2. 在windows下安装concurrentlua
  3. 高小明的云平台搭建系列之一——物理机装 ESXi 5.0
  4. ajax传值controller怎么写,ajax如何传递参数给controller
  5. 云服务器 管理控制台_关于小白如何初步管理自己的云服务器
  6. 4款bt search
  7. Ubuntu16.04下禁用scp、sftp和winscp
  8. System Center Configuration Manager 2016 域准备篇(Part2)
  9. 经典实用数据库新书推荐-关于mysql和oracle【转孟光】
  10. 16Aspx.com源码2014年7月详细
  11. Ubuntu 14.04 LTS 搜狗拼音输入法不能使用的情况
  12. 《被讨厌的勇气》书摘心得之一切烦恼都来自人际关系(2)
  13. NXP i.MX 8处理器再扩军!全新i.MX 8X处理器剑指工业与汽车应用
  14. UnicodeEncodeError: 'gbk' codec can't encode character '\xa9' in position 314810: illegal multibyte
  15. 欧美相关出口企业要注意了!
  16. 10004---简析TCP的三次握手与四次分手
  17. python猜数字小游戏制作
  18. js刻度尺插件_js滑块刻度尺插件
  19. Cron Expressions——Cron 表达式
  20. 在 Metaverse 中拥抱零售业的未来:你需要知道的一切

热门文章

  1. 为什么说IPFS分布式存储有望实现人类数据永存?
  2. Drools规则引擎demo
  3. 【《易经》64个智慧】
  4. 生信分析-利用TBtools提取序列
  5. 计算机网络的体系结构--学习计算机网络的重中之重
  6. 长电科技预计2021年净利润至少为28亿元;同方股份公告2021年业绩预告 | 全球TMT...
  7. 你全会算我输,让人直呼卧槽的Python代码!
  8. 一篇男人必看的天书雄文
  9. 新鲜出炉,2020年程序员们的高考试卷来了!
  10. python-读取指定文件夹下邮件的正文(html格式)