Linux中的DNS服务搭建

一、DNS域名管理系统

1.1 DNS概述

DNS(Domain Name System)域名管理系统

域名:由特定的格式组成,用来表示互联网中某一台计算机或者计算机组的名称,能够使人更方便地访问互联网,而不用记住能够被机器直接读取的IP地址。

域名就是ip的别名,ip不好记忆

域名与ip的关系是否是一对一? 不是的,服务器可能都具备负载均衡的策略

www.baidu.com 
www.google.com

ping www.baidu.com -> 183.2.172.17

计算机通过IP地址进行互相访问。由于IP地址过于复杂,域名可以代替IP实现计算机的访问(高级/上层应用,底层还是IP地址)。

每个域名都会通过DNS服务器解析为对应的IP地址。

DNS的正向解析

将主机域名转换为对应的IP地址,以便网络程序能够通过主机域名访问到对应的服务器主机。

域名 --> IP(A记录)

DNS的反向解析

将主机的IP地址转换为对应的域名,以便网络(服务)程序能够通过IP地址查询到主机的域名。

IP --> 域名(PTR记录)

1.2 DNS的结构

域名:www.it.com
DNS结构:www.it.com. -> 从右向左解析

www - 这是主机名或特定的服务标识符。在这个例子中,“www”通常指代的是提供网站服务的主机。

不过,这可以是任何东西,比如“mail”,“ftp”,或其他你想要命名的主机或服务。

it - 这是二级域名(Second-Level Domain, SLD)。在许多情况下,这是用户自定义的部分,用来标识具体的组织、品牌或项目。

com - 这是最顶级域名(Top-Level Domain, TLD)。

它代表了域名的最高层级分类,常见的有.com(商业实体),.org(非营利组织),.net(网络服务提供商)。

以及国家代码顶级域名如.cn(中国),.uk(英国)等。

根域(.)

在整个DNS系统的最上方一定是:(小数点)这个DNS服务器(称为root),也叫"根域"。

根域全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个(位于英国和瑞典),亚洲1个(位于日本)。

一级域名(顶级域|国家域)

com、net、edu、gov、org、cc、iol、cn、uk、us、ru、ja、ko

  • .com:商业公司

  • .net:互联网公司

  • .edu:教育(中小学、高中、大学...)

  • .gov:政府

  • .io:存储设备,redis

  • .cn:中国域名(国家域)

二级域名(自己购买管理)

qq.com、baidu.com、google.com

域名机构

收费(新网|万网)

老牌免费域名:TK顶级域名、TK域名DNS、TK域名商

1.3 DNS工作原理

递归查询(Recursive Query)

查询过程:在递归查询中,客户端(如用户的计算机)向本地DNS服务器发送域名解析请求。

如果本地DNS服务器没有所需的DNS记录,它将代表客户端进行进一步的查询,直到找到目标记录或确定无法找到为止。

之后,它会将结果返回给客户端。

特点

  • 客户端只需要发起一次请求,并等待最终的结果。

  • 本地DNS服务器承担了更多的工作,因为它需要追踪整个查询过程。

  • 更适合于普通用户,因为用户不需要关心复杂的查询流程。

适用场景:通常用于客户端与DNS服务器之间的交互。

迭代查询(Iterative Query)

查询过程:在迭代查询中,当客户端(通常是另一个DNS服务器)向另一台DNS服务器发出查询请求时,若该DNS服务器没有直接的答案,则不会为客户端继续查询其他DNS服务器。

相反,它会返回一个指向下一个应该被查询的DNS服务器的地址。

客户端随后需要自行向这个新的DNS服务器发起查询,这个过程可能会重复多次,直到获得最终的IP地址或确定找不到为止。

特点

  • 客户端需要自己完成多次查询请求,直到得到最终答案。

  • 每个DNS服务器只负责提供已知信息或指引到更合适的DNS服务器,负担较小。

  • 更适合于DNS服务器之间的查询。

适用场景:通常用于DNS服务器间的通信,特别是根DNS服务器和顶级域(TLD)服务器之间的查询。

总结
  • 客户端负担:递归查询中小,因为只需发起一次请求;迭代查询中较大,因为可能需要发起多个请求。

  • 服务器负担:递归查询中较大,因为服务器要负责完整的查询过程;迭代查询中小,因为只需返回最佳查询点或主机地址。

  • 实际应用:两者常常结合使用,在实际的DNS解析过程中,客户端通常首先发起递归查询给本地DNS服务器,而本地DNS服务器则通过一系列的迭代查询来完成解析过程。

二、DNS服务器的搭建(重要)

2.1 DNS服务器端软件

DNS的域名解析都是udp/53

主从之间的数据传输默认使用tcp/53

DNS服务器端软件:

Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley(伯克利)分校开发和维护,全名为Berkeley Internet Name Domain。它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。

2.2 DNS服务器搭建步骤

第一步:环境准备
IPhostnametype
192.168.66.138dns-serverDNS服务 域名解析使用
192.168.66.143web-serverweb服务 提供web业务访问
192.168.66.144client测试访问web服务

更改主机名称与IP地址(可以不改这个ip)

# hostnamectl set-hostname client.it.cn
# hostnamectl set-hostname dns.it.cn
# hostnamectl set-hostname web.it.cn

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=10.1.1.11
NETMASK=255.255.255.0
GATEWAY=10.1.1.2

# 更改UUID编号的后3位,必须是唯一的

关闭防火墙与SELinux

# systemctl stop firewalld
# systemctl disable firewalld

# setenforce 0

-- 这个可以不搞
# vim /etc/selinux/config
SELINUX=disabled

 配置YUM源(有网配置公网YUM源、无网就配置光盘或自建YUM源)

yum clean all 
yum makecache

第二步:安装DNS软件

DNS服务器:

# yum install bind -y

第三步:DNS正向解析配置(域名=>IP)

对named.conf以及named.rfc1912.zones进行备份

cp /etc/named.conf /etc/named.conf.bak
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
  • /etc/named.conf主要配置访问权限控制(哪些IP或哪些主机可以访问DNS服务器)

  • /etc/named.rfc1912.zones主要定义域名如何解析(正向解析),解析到具体哪个IP地址

第四步:named.conf主配置文件详解(访问权限控制)
vim /etc/named.conf

添加任何主机都可以访问的权限:

第五步:zones子配置文件详解(域名应该指向哪个IP地址)
vim /etc/named.rfc1912.zones

补充:allow-update(是否允许更新)

第六步:设置域名配置文件
cd /var/named
cp -p /var/named/named.localhost /var/named/lsh.conf

# 扩展:-p 代表复制文件时保留文件的原有属性

第七步:编辑lsh.conf文件,定义域名的指向
vim /var/named/lsh.conf

在这个DNS区域文件配置中,www 是一个域名的标识符,通常用来指代网站的主机名。具体来说:

  • www 这一行表示一个A记录(Address Record),它将域名映射到一个IPv4地址。www.it.cluster.(完整形式)指向了IP地址192.168.66.143

  • 当用户在浏览器中输入www.it.cluster时,DNS系统会解析这个名称,并返回对应的IP地址192.168.66.143,从而使用户的浏览器能够找到并连接到托管在该IP地址上的网站服务器。

文件详解

# $TTL  缓存的生存周期
# @ = zonename = it.cluster  当前域名
# IN  互联网
# SOA 开始授权

# rname.invalid. 管理员的邮箱
# NS  dns服务端  nameserver
# A   ipv4
# AAAA IPV6
# CNAME 别名
# MX  邮件交互记录  5 数字代表优先级  数字越小优先级越高

# 0 ; serial    更新序列号
# 1D ; refresh  更新间隔(从服务器下载数据)
# 1H ; retry    失败重试
# 1W ; expire   区域文件的过期时间
# 3H ) ; minimum 缓存的最小生存周期

# D Day、H Hour、W week

设置:

第八步:检查named.conf与zones文件

-- 检查主配置文件
named-checkconf /etc/named.conf

# 检查域名配置文件
named-checkzone lsh.com lsh.conf

第九步:启动DNS服务(named)
-- 这里我们安装的服务名字叫 - bind
就如mysql 它的服务名叫mysqld

systemctl restart named
systemctl enable named
netstat -tunlp | grep named

第十步:添加DNS服务器
vim /etc/resolv.conf

改成这样:

如果本机ip不行换成固定ip127.0.0.1的形式

# 永久添加
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.66.138

最后测试:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值