当前位置: 首页 > news >正文

DNS服务搭建

  • 了解什么是DNS

  • DNS运行原理

  • 如何安装,配置DNS

DNS域名管理系统

公司内网中需要通过域名访问到开发的web应用,获得更好的访问体验。因此需要在内网中搭建DNS服务器解析域名,让开发、测试、运维人员可以通过内网DNS服务访问到公司内部应用。

任务背景

解析内网域名,能够访问内网web应用。把www.it.cluster解析到内网服务器IP

/etc/sysconfig/network-scripts/ifcfg-ens33

DNS1=8.8.8.8
DNS2=114.114.114.114

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记录)

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域名商

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服务器的搭建

DNS服务器端软件

DNS的域名解析都是udp/53

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

DNS服务器端软件:

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

DNS服务器搭建步骤

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

更改主机名称与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位,必须是唯一的

使用MX进行连接

关闭防火墙与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

安装完毕后,可以使用rpm -q查询是否安装成功:

# rpm -q bind
​
# rpm -ql bind
​
# 日志轮转文件
/etc/logrotate.d/named
​
# 配置文件目录
/etc/named
​
# 主配置文件
/etc/named.conf
​
# zone文件, 定义域
/etc/named.rfc1912.zones
​
# 服务管理脚本
/usr/lib/systemd/system/named.service
​
# 二进制程序文件
/usr/sbin/named
​
# 检测配置文件
/usr/sbin/named-checkconf
​
# 检测域文件
/usr/sbin/named-checkzone
​
# 根域服务器
/var/named/named.ca
# 正向解析区域文件模板
/var/named/named.localhost
# 反向解析区域文件模板
/var/named/named.loopback
# dns服务器下载文件的默认路径
/var/named/slaves
# 进程pid
/var/run/named
DNS正向解析配置(域名=>IP)

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

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

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

cp /etc/named.conf /etc/named.conf.bak
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak

named.conf主配置文件详解(访问权限控制)

vim /etc/named.conf

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

listen-on port 53 { 127.0.0.1; any; };
listen-on-v6 port 53 { ::1; };
directory       "/var/named";
dump-file       "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file  "/var/named/data/named.recursing";
secroots-file   "/var/named/data/named.secroots";
allow-query     { localhost; any; };

zones子配置文件详解(域名应该指向哪个IP地址)

zone "localhost" IN {type master;file "named.localhost";allow-update { none; };
};
vim /etc/named.rfc1912.zones
​
zone "it.cluster" IN {type master;file "it.cluster.zone";allow-update { none; };
};

在/var/named目录创建it.cluster.zone文件定义正向解析

cd /var/named
cp -p /var/named/named.localhost /var/named/it.cluster.zone
​
# 扩展:-p 代表复制文件时保留文件的原有属性

编辑it.cluster.zone文件,定义域名的指向

vim /var/named/it.cluster.zone
$TTL 1D
@       IN SOA  @ rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      @A       127.0.0.1AAAA    ::1
​
www     A       192.168.66.143

在这个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地址上的网站服务器。

zone文件详解

# $TTL  缓存的生存周期
# @ = zonename = it.cluster  当前域名
# IN  互联网
# SOA 开始授权
​
# 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-checkconf
​
# 检查 it.cluster.zone 文件
cd /var/named
named-checkzone it.cluster it.cluster.zone
启动DNS服务(named)
systemctl restart named
systemctl enable named
netstat -tunlp | grep named

Web服务搭建

yum install httpd -y
systemctl start httpd
systemctl enable httpd
​
echo 'DNS Test ...' > /var/www/html/index.html

测试DNS服务器的正向解析

Client:客户端服务器操作

添加DNS服务器
# 临时
# echo 'nameserver 192.168.66.138' > /etc/resolv.conf
# 注:电脑重启,网络刷新restart network,VMware挂起,临时DNS都会失效
# 如果本机ip不行换成固定ip127.0.0.1的形式
​
# 永久添加
# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.66.138
​
systemctl restart network

客户端默认会使用 /etc/resolv.conf 文件中配置的 DNS 服务器进行解析。

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.66.2
nameserver 192.168.66.138

配置中的 search localdomain 可能导致客户端将 www.it.cluster 解析为 www.it.cluster.localdomain,从而查询失败。

使用nslookup检测正向解析是否生效
nslookup www.it.cluster
使用elinks命令行浏览器或curl来实现访问
# yum install elinks -y
# elinks http://www.it.cluster
​
# curl http://www.it.cluster

相关文章:

  • 基于vue框架的东莞市二手相机交易管理系统5yz0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 家庭数字生态构建实战:基于飞牛fnOS的智能家居数据中台搭建全流程解析
  • 云原生环境下的事件驱动架构:理念、优势与落地实践
  • 架构演变 -单体到云原生
  • RK3568解码1080P视频时遇到系统崩溃内核挂掉的解决方案
  • 云原生攻防1(基础介绍)
  • 【Linux网络】传输层协议UDP
  • TCP和套接字SSL加密连接行为分析
  • 【Hadoop】--HA高可用搭建--3.2.2
  • mcp 学习第二篇
  • HTTPS实验室——TLS/TLCP一站式解决方案
  • 深入理解 Hadoop 核心组件 Yarn:架构、配置与实战
  • 上路兵线的理解-鳄鱼篇
  • vue3:十三、分类管理-表格--编辑、新增、详情、刷新
  • Android framework 问题记录
  • 整合安全能力:观测云进一步强化数据价值
  • 【内测征集】LarkVR 播控系统上新:VR 应用一站式专业播控与管理工具
  • 避开封禁陷阱:动态IP在爬虫、跨境电商中的落地实践
  • 电脑A和电脑B都无法ping通电脑C网络,电脑C可以ping通电脑A和B,使用新系统测试正常,排除硬件问题。
  • PLC双人舞:profinet转ethernet ip网关奏响施耐德与AB的协奏曲
  • 《让世界爱中国》新书发布,探讨大变局下对外讲好中国故事
  • 陈龙带你观察上海生物多样性,纪录片《我的城市邻居》明播出
  • 上海肺科医院院长陈昶:临床中的痛点,正是新技术诞生的起点
  • 水果预包装带来的环境成本谁来分担?
  • 第十届青春文学奖揭晓,梁晓声获特别奖
  • 解放日报:“感觉全世界人都在上海买买买”