一、什么是dns
dns (domain name system) 是域名服务 ,它是由解析器和域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应ip地址,并具有将域名转换为ip地址功能的服务器。(将网址解析成ip,或者将ip解析成网址)
将域名映射为ip地址的过程就称为"域名解析"。
在internet上域名与ip地址之间是一对一(或者多对一)的,也可采用dns轮循实现一对多,域名虽然便于人们记忆,
但机器之间只认ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,dns就是进行域名解析的服务器。
网址有一个专有名词:完全合格域名
完全合格域名 = 主机名称 + 域名(根域 + 顶级域 + 二级域)
根域:.
顶级域:分为组织域和国家或地区域。
- 组织域采用3个字符代号,如.com .edu .gov
- 国家或地区域,采用两个字符代号,如.cn .jp
二级域:二级域注册到个人、组织或者公司名称,如baidu、taobao等
主机名称:主机名称处于域名空间的最底层,主机名与上述各级域名结合构成fqnd(完全合格域名)
每个域用一个点号“.”分开
以www.baidu.com为例:
- www:主机名称
- baidu.com:域名
- 根域:日常生活中一般省略(www.baidu.com.)最后的.表示根域,配置dns时需要带上
- 顶级域:.com
- 二级域:baidu
一个完全合格域名只能对应一个ip,一个ip可以对应多个完全合格域名。
二、dns查询方式(两种)
- 递归查询:dns客户端与dns服务器之间
- 迭代查询:dns服务器与dns服务器之间
- 访问一个网站是既有递归又有迭代
三、dns解析方式
- 正向解析:fqdn(完全合格域名)----------> ip
- 反向解析:ip -----------> fqdn(完全合格域名)
四、dns服务搭建
搭建dns服务有两种方式:
- 1.bind
- 2.unbound
dns服务器类型:
- 主dns服务器(条目或者称为映射信息是手写进主dns当中)
- 辅助dns服务器(用来做备份)
- unbound 不能提供辅助dns服务器
- 所以一般用bind进行部署
1、在没有dns之前,怎样解决
/etc/hosts 本地解析配置文件
- 主机1:192.168.100.10
- 主机2:192.168.100.20
正常情况下:两台主机相互ping ip地址是可以ping通的,但是ping不通主机名
主机1:
[root@stw ~]# ping 192.168.100.20 ping 192.168.100.20 (192.168.100.20) 56(84) bytes of data. 64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.801 ms 64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=1.06 ms ^c --- 192.168.100.20 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.801/0.933/1.065/0.132 ms [root@stw ~]# ping stw2.example.com ping: stw2.example.com: name or service not known
在本地解析文件中加上对方的ip地址以及对应映射的主机名
[root@stw ~]# vim /etc/hosts [root@stw ~]# ping stw2.example.com ping stw2.example.com (192.168.100.20) 56(84) bytes of data. 64 bytes from stw2.example.com (192.168.100.20): icmp_seq=1 ttl=64 time=0.561 ms 64 bytes from stw2.example.com (192.168.100.20): icmp_seq=2 ttl=64 time=8.10 ms ^c --- stw2.example.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.561/4.332/8.103/3.771 ms

注意:只在主机1中添加,则只有主机1能ping通主机2,主机2仍然ping不通主机1,想要主机2也ping通主机1,需要在主机2的配置文件中中也写入主机1的ip地址与主机名的映射关系。
2、配置主dns
(1)配置yum仓库,安装软件包
[root@stw ~]# cd /etc/yum.repos.d/ [root@stw yum.repos.d]# ls centos-base.repo centos-debuginfo.repo centos-media.repo centos-vault.repo centos-cr.repo centos-fasttrack.repo centos-sources.repo [root@stw yum.repos.d]# rm -rf * [root@stw yum.repos.d]# ls [root@stw yum.repos.d]# vim server.repo [root@stw yum.repos.d]# cat server.repo [aa] name=aa1 baseurl=file:///mnt enabled=1 gpgcheck=0 [root@stw yum.repos.d]# mount /dev/cdrom /mnt mount: /dev/sr0 is write-protected, mounting read-only [root@stw yum.repos.d]# yum -y install bind bind-chroot
- /etc/named.conf 映射的dns主配置文件
- /var/named 解析文件的目录
- dns默认侦听端口:53(指自己的地址,一般作为dns服务器的话:any)
- /var/named/chroot/etc/named.rfc1912.zones 记录dns正向和反向的全局解析配置文件
作用:
- 1、确定dns类型 :主dns(master) 辅助dns(slave)
- 2、定义 域与网段的映射关系
- 3、告知具体的解析条目的文件名在哪里:正向解析数据库 反向解析数据库
(2)编辑主配置文件/etc/named.conf
[root@stw ~]# vim /etc/named.conf

(3)编辑全局配置文件(三个地方需要更改)
更改对应的域名和映射的网段,服务类型:master(主dns),正向解析与反向解析的文件名
[root@stw ~]# vim /etc/named.rfc1912.zones


把文件复制到对应目录下
[root@stw ~]# cd /var/named/ [root@stw named]# cp -p named.localhost stw.com [root@stw named]# cp -p named.empty com.stw [root@stw named]# ls chroot com.stw data dynamic named.ca named.empty named.localhost named.loopback slaves stw.com
ttl 1d 缓存周期
soa起始授权机构(后面的@改成服务器的主机名)
- ns:后面接dns的服务器
- 主机记录:a
(4)编辑正向解析文件
[root@stw ~]# cd /var/named [root@stw named]# ls chroot com.stw data dynamic named.ca named.empty named.localhost named.loopback slaves stw.com [root@stw named]# vim stw.com

(5)编辑反向解析的文件
[root@stw named]# vim com.stw

(6)重启服务,关掉防火墙,更改selinux
[root@stw named]# systemctl restart named [root@stw named]# systemctl enable named created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service. [root@stw named]# systemctl stop firewalld.service [root@stw named]# systemctl disable firewalld.service removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. removed symlink /etc/systemd/system/dbus-org.fedoraproject.firewalld1.service. [root@stw named]# getenforce enforcing [root@stw named]# setenforce 0 [root@stw named]# getenforce permissive
(7)客户端更改网卡的dns(指向服务器端),重启服务,查看是否解析
[root@stw2 ~]# cd /etc/sysconfig/network-scripts/ [root@stw2 network-scripts]# vim ifcfg-ens33 [root@stw2 network-scripts]# systemctl restart network [root@stw2 network-scripts]# nslookup > stw.example.com //正向解析 server: 192.168.100.10 address: 192.168.100.10#53 name: stw.example.com address: 192.168.100.10 > 192.168.100.10 //反向解析 server: 192.168.100.10 address: 192.168.100.10#53 10.100.168.192.in-addr.arpa name = stw.example.com. >

3、配置辅助dns
(1)配置yum仓库,安装软件包(略)
(2)编辑主配置文件/etc/named.conf
[root@stw2 ~]# vim /etc/named.conf

(3)编辑全局配置文件(四个地方需要更改)
更改对应的域名和映射的网段,服务类型:slave(辅助dns),正向解析与反向解析的文件名,定义主dns地址(告诉辅助dns主dns的地址)
[root@stw2 ~]# vim /etc/named.rfc1912.zones

辅助dns中,正向解析文件和反向解析文件不需要编辑
(4)重启服务,关掉防火墙,更改selinux
[root@stw2 ~]# systemctl stop firewalld.service [root@stw2 ~]# systemctl disable firewalld.service removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. removed symlink /etc/systemd/system/dbus-org.fedoraproject.firewalld1.service. [root@stw2 ~]# setenforce 0 [root@stw2 ~]# getenforce permissive [root@stw2 ~]# vim /etc/selinux/config [root@stw2 ~]# systemctl restart named [root@stw2 ~]# systemctl enable named created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service. [root@stw2 ~]# cd /var/named/ [root@stw2 named]# ls data dynamic named.ca named.empty named.localhost named.loopback slaves [root@stw2 named]# cd slaves [root@stw2 slaves]# ls com.stw stw.com

(5)更改网卡配置文件
[root@stw2 ~]# cd /etc/sysconfig/network-scripts/ [root@stw2 network-scripts]# vim ifcfg-ens33 [root@stw2 network-scripts]# cd [root@stw2 ~]# systemctl restart network

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论