DNS(domain name system ) 域名管理系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用记住能够被机器直接读取的IP地址。
在整个 DNS 系统的最上方一定是 . 这个 DNS 服务器 ,也叫”根域“。
根域 (13台 全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。
.com : 商业公司
.net :互联网公司
.edu :教育
.gov :政府
.io :存储设备,redis
.cn :中国域名(国家域)
qq.com.
baidu.com.
google.com.
域名的正向解析
将主机域名转换为对应的IP 地址,以便网络程序能够通过主机域名访问到对应的服务器主机。
A记录 :域名——>IP
域名的反向解析
将主机的IP地址转换为对应的域名,以便网络(服务)程序能够通过IP地址查询到主机的域名。
PTR记录 :IP——>域名
dig命令 是常用的域名查询工具,可以用来测试域名系统工作是否正常。
dig +trace www.baidu.com #追踪DNS的解析过程
dig www.baidu.com #正向解析
dig -x IP地址 #反向解析
host命令 是常用的分析域名查询工具,可以用来测试域名系统工作是否正常
host www.baidu.com
client:192.168.1.8
#在client端修改dns指向文件
vim /etc/resolv.conf
nameserver 192.168.1.9
#当做地址解析动作时,系统会访问dns指向文件中的ip完成地址解析这个工作。
#dns指向文件中的ip就为此主机的dns服务器。
server:192.168.1.9
DNS 的域名解析都是 udp/53 . 主从之间的数据传输默认使用 tcp/53
Bind是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley(伯克利)分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
#在server端:
yum install bind.x86_64 -y
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
netstat -antlupe|grep named #现在没有53端口信息
vim /etc/named.conf
options {
#修改53端口
11 listen-on port 53 { any; };
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 secroots-file "/var/named/data/named.secroots";
18 recursing-file "/var/named/data/named.recursing";
#修改允许查询A记录的客户端列表为所有人any
19 allow-query { any; };
#添加这一行是本机不知道解析时,去找114.114.114.114
forwarders { 114.114.114.114; };
#禁用dns检测 使dns能够缓存外部信息到本机
34 dnssec-validation no;
systemctl restart named
目标:把www.laowang.com域名通过DNS服务器指向192.168.1.100这个IP地址。
/etc/named.conf主要配置访问权限控制和根域的控制(哪些IP或哪些主机可以访问DNS服务器)
/etc/named.rfc1912.zones主要定义域名如何解析(正向解析),解析到具体哪个IP地址
################################## 第一步 ########################
vim /etc/named.rfc1912.zones
# 依照文件内部的模板编写
zone "laowang.com" IN { # 维护的域名为laowang.com
type master;
file "laowang.com.zone"; # 指定域数据配置文件
allow-update { none; };
};
################################# 第二步 ########################
cd /var/named
cp -p named.localhost laowang.com.zone
vim laowang.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
#增加一条正向解析,表示www.laowang.com解析为192.168.1.100
WWW A 192.168.1.100
#可以在192.168.1.100这台机器上安装web服务编写一个测试文件
~
################################ 第三步 ########################
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
# 检查laowang.com.zone文件
cd /var/named
named-checkzone laowang.com.zone laowang.com.zone
################################ 第四步 ########################
systemctl restart named
netstat -tnlp |grep named
测试:
在client客户机中修改DNS指向文件,指向到我们的server端(192.168.1.9),然后我们在访问www.laowang.com这个域名时就访问到了192.168.1.100上的测试页面。
可以使用dig,host,curl命令查看域名解析的过程。
# $TTL 缓存的生存周期
# @ = zonename = laowang.com 当前域
# 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
目标:把192.168.1.100这个IP地址通过DNS服务器指向www.laowang.com域名
################################## 第一步 ########################
vim /etc/named.rfc1912.zones
# 依照文件内部的模板编写
zone "1.168.192.in-addr.arpa" IN { #注意要反着写
type master;
file "192.168.1.ptr"; #指定域数据配置文件
allow-update { none; };
};
################################# 第二步 ########################
cd /var/named
cp -p named.loopback 192.168.1.ptr
vim 192.168.1.ptr
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
#增加一条反向解析,把192.168.1.100 => PTR => www.laowang.com
100 PTR www.laowang.com
~
################################ 第三步 ########################
named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
# 检查192.168.1.ptr文件
cd /var/named
named-checkzone 192.168.1.ptr 192.168.1.ptr
################################ 第四步 ########################
systemctl restart named
netstat -tnlp |grep named
测试:
在client主机进行dig 测试:dig -x 192.168.1.100。
主机名称 | IP地址 | 备注信息 |
---|---|---|
master.dns.cn | 192.168.1.9 | dns master主服务器 |
slave.dns.cn | 192.168.1.10 | dns slave从服务器 |
MASTER主服务器配置:
vim /etc/named.conf
12 options {
13 listen-on port 53 { 127.0.0.1;any; };
14 listen-on-v6 port 53 { ::1; };
15 allow-transfer {192.168.1.10; };#允许从服务器的IP地址过来同步资源
16 directory "/var/named";
17 dump-file "/var/named/data/cache_dump.db";
18 statistics-file "/var/named/data/named_stats.txt";
19 memstatistics-file "/var/named/data/named_mem_stats.txt";
20 recursing-file "/var/named/data/named.recursing";
21 secroots-file "/var/named/data/named.secroots";
22 allow-query { localhost;any;};
systemctl restart named
SLAVE从服务器配置:
vim /etc/named.conf
12 options {
13 listen-on port 53 { 127.0.0.1;any; };
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 recursing-file "/var/named/data/named.recursing";
20 secroots-file "/var/named/data/named.secroots";
21 allow-query { localhost;any; };
vim /etc/named.rfc1912.zones
zone "laowang.com" IN {
type slave;
file "slaves/laowang.com.zone";
masters { 192.168.1.9; };
};
systemctl restart named
测试:
在Client端,把Slave从服务器的IP设置为DNS,然后
nslookup www.laowang.com
DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。