DNS

DNS

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分 布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数 串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。 DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明, RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

DNS域名

  • 根域
  1. 一级域名:Top Level Domain: tld,com, edu, mil, gov, net, org, int,arpa 三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
  2. 二级域名
  3. 三级域名
  4. 最多127级域名
  • ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理
  • 域名结构如下图:


    DNS_第1张图片
    DNS1.png

cat /var/named/named.ca
查看DNS 13个根(需要先安装bind)

DNS解析

  • 一次完整的查询请求经过的流程:
    Client -->hosts文件-->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…
  1. 解析答案:
  2. 肯定答案:
  3. 否定答案:请求的条目不存在等原因导致无法返回结果
  4. 权威答案:
  5. 非权威答案:

相关配置文件

  • 名字解析,仅本地有效
    vi /etc/hosts

  • ISP的DNS服务器IP记录处。
    vi /etc/resolv.conf

  • 设置优先选择使用hosts还是resolv.conf的配置
    vi /etc/nsswitch.conf

  • 一般来说,Linux的默认主机名和ip的对应解析都是以hosts文件为优先,因为在nsswitch.conf里已经配置好了。当然你可以选择更改,查看nsswitch.conf文件,找到hosts选项:


    DNS2.png

上面files就是使用hosts,DNS则是使用resolv.conf,你调换一下,就可以更改优先顺序。

搭建DNS

首先搭建DNS之前需要安装DNS所需要的软件,这里我们使用“BIND”的这个软件,他是有伯克莱大学发展出来的,全名为“Berkeley Internet Name Domain”,首先查询是否安装bind包。

  • BIND的安装配置
    dns服务程序包:bind
    程序名:named
    程序包:yum list all bind*
    1. bind:服务器
    2. bind-libs:相关库
    3. bind-utils:客户端
    4. bind-chroot:/var/named/chroot/ 默认将根锁在/var/named/chroot目录中

安装bind

  1. 查询是否安装bind包
    rpm -qa | grep '^bind'

  2. 查看安装包信息
    yum info bind

  3. 安装bind包
    yum install bind

  4. 查看当前文件包的文件列表(配置文件,数据库,日志,服务器软件,等...)
    rpm -ql bind

  5. 测试环境下,如果服务过多,容易出错,可以选择禁止一些服务,关闭防火墙
    (1)getenforce
    显示Enforcing

(2)vim /etc/selinux/config
修改禁用服务:
SELINUX=permissive
SELINUXTYPE=targeted

DNS_第2张图片
DNS3.png

(3)setenforce 0
重启生效

(4)iptables -vnL
查看防火墙

(5)systemctl disable firewalld
(6)systemctl stop firewlld
关闭防火墙,清空

  1. 设置开机启动
    systemctl start named

  2. 启动服务
    systemctl enable name

  3. 查看端口号是否开启(53端口号)
    ss -nutl

  4. 查看ip是否正常,如果不正常手动修改文本ip(正常忽略)
    cdnet | vim ifcfg-eth1

(1)测试拼包,检查能否访问网络
ping www.baidu.com

(2)备份配置文件
cp -p /etc/named.conf{,.bak}

(3)修改配置文件
vi /etc/named.conf

DNS_第3张图片
DNS4.png

  • 将127.0.0.1;后面加上自己的Ip地址,或则嫌麻烦直接改成localhost;就可以了,localhost是机器里的关键字,代表机器所有ip。

  • 将allow-query这一项括号里改为{ localhost(这是允许本机连接);加上你要连接的机器的ip,比如172.16.XX.XXX(这样你的机器就可以访问了);如果你是公司访问,就将公司的ip地址段加进去;如果你想所有人访问就加上any;或者直接注释掉,在开头加上#}

(2)然后重新加载配置文件,
systemctl reload named

上述步骤做完之后,本机器就已经是一个DNS服务器了,然后可以将DNS指向自己,就是刚刚修改配置文件里,添加DNS1=127.0.0.1指向自己。(127.0.0.1是本机的意思,如果是另一台服务器,就直接指向DNS服务器就可以了)

当然现在DNS做完了,很简单,但是这里是什么都没有的...后面还要做主从服务器,子域,view,当然还要自己编译安装一个DNS,那么下次在写...bye!

你可能感兴趣的:(DNS)