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)系统的管理、以及根服务器系统的管理
  • 域名结构如下图:


    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

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

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!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 3,052评论 0 7
  • DNS简介DNS解析关键概念BIND 一、DNS简介: (一)DNS服务 DNS:Domain Name Serv...
    哈喽别样阅读 1,836评论 0 2
  • 一、实现从根,com,rj.com 模拟互联网的DNS架构 DNS(Domain Name System,域名系统...
    ssjinyao阅读 1,556评论 0 7
  • 什么是DNS及功能: DNS(Domain name server),是将IP地址转换为域名地址。当在互联网访问外...
    魏镇坪阅读 7,748评论 0 8
  • DNS工作原理 DNS 查询的过程 DNS( Domain Name System)是“域名系统”的英文缩写,是一...
    ghbsunny阅读 9,046评论 0 0