DNS:域名系统(Domain Name System)
DNS协议是用来将域名转换为IP地址或将IP地址转换为相应的域名
DNS使用TCP和UDP端口53,给用户提供解析时一般使用UDP53
对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS采用分布式数据库结构提供服务:
顶级域名:.com .net .org .edu 以及国家或地区域名
高一级的服务器会存放下一级服务器的位置信息
域名从右向左可以体现层级结构,如下图所示:
DNS服务类型
主要服务器:
本地创建数据文件,又称权威服务器
辅助服务器:
本地有数据文件,从主服务器更新而来
缓存服务器:
本地无数据文件,利用缓存给客户提供服务,提高重复查询的效率
对客户端来讲,各服务器作用相同,都是进行域名解析、
域名访问web服务,实验内容图示:
配置web服务:
首先卸载httpd,避免造成干扰
可以先卸载rpm包的httpd,避免给初学者造成干扰
rpm -q httpd
rpm -e httpd --nodeps
下载httpd
wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.bz2
无法验证 dlcdn.apache.org 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书
在后面添加:--no-check-certificate
tar解包,进入解包后的目录
tar xf httpd-2.4.58.tar.bz2
cd httpd-2.4.58
配置(检测软硬件环境,定制安装参数)
yum -y install gcc apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre
./configure --prefix=/usr/local/httpd
编译,安装
make && make install
echo $?
ls /usr/local/httpd
启动软件,测试
/usr/local/httpd/bin/apachectl start
netstat -lntp | grep httpd
关闭防火墙
systemctl stop firewalld
setenforce 0
- 配置dns服务
- 安装:
yum -y install bind bind-chroot
vim /etc/named.conf
options {
listen-on port 53 { any; }; #设置为在53端口监听。any;
表示允许任何IP地址的主机连接到服务器
listen-on-v6 port 53 { ::1; }; #::1;
表示只允许本地IPv6地址(即localhost)连接到服务器
directory "/var/named"; #指定了BIND服务器存储数据文件的目录。在这里,数据文件存储在/var/named
目录下
dump-file "/var/named/data/cache_dump.db"; #指定了缓存数据库的dump文件的路径,用于记录缓存中的数据
statistics-file "/var/named/data/named_stats.txt"; #指定了用于记录BIND服务器运行统计信息的文件路径
memstatistics-file "/var/named/data/named_mem_stats.txt"; #指定了用于记录BIND服务器内存使用统计信息的文件路径
recursing-file "/var/named/data/named.recursing"; #指定了用于记录递归查询的文件路径
secroots-file "/var/named/data/named.secroots"; #指定了用于记录DNSSEC根密钥的文件路径
allow-query { any; }; #指定了允许查询的主机。any;
表示允许任何主机查询服务器
vim /etc/named.rfc1912.zones
添加:
zone "zhanshen.com" IN {
type master;
file "test.com";
allow-update {none;};
};
cd /var/named
cp -a named.localhost test.com
vim test.com
添加:
$TTL 1D
@ IN SOA zhanshen.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns
dns A 192.168.10.4
www A 192.168.10.3
让我们逐行解释:
$TTL 1D
: 这是指定默认生存时间(Time-To-Live)为1天,即资源记录在DNS缓存中的存活时间为1天
@ IN SOA www.zhanshen.com. rname.invalid. (
: 这是SOA(Start of Authority)记录,指定了该区域的起始授权信息。具体解释如下:
-
@
: 表示当前域名(www.zhanshen.com)。IN
: 表示Internet类别。SOA
: 表示Start of Authority。www.zhanshen.com.
: 域名的主要名称服务器。rname.invalid.
: 负责管理该域名的邮箱地址。这里的rname.invalid.
仅用作示例,并不是真实的邮箱地址。0
: 序列号,用于标识DNS区域文件的版本号。1D
: 刷新时间,表示多久后从主服务器重新获取数据(1天)。1H
: 重试时间,表示如果无法从主服务器获取数据,多久后再次尝试(1小时)。1W
: 过期时间,表示多久后数据被认为无效(1周)。3H
: 最小时间,表示对资源记录的缓存过期时间(3小时)。
NS www.zhanshen.com.
: 指定了一个名称服务器(Name Server),即www.zhanshen.com是该域名的主要名称服务器。
www A 192.168.10.3
: 指定了一个A记录,将www.zhanshen.com解析为IPv4地址192.168.10.3。
naws AAAA ::1
: 指定了一个AAAA记录,将naws.zhanshen.com解析为IPv6地址::1。
这段文本定义了一个简单的DNS区域文件,指定了域名www.zhanshen.com的基本DNS资源记录
DNS中可注册的记录类型
A 主机记录,正向查询记录
PTR 指针记录,反向查询记录
SOA 权威机构,主从复制时,从服务器的认证服务
NS 名称服务,指定服务器名
MX 邮件交换器
CNAME 别名记录,用于发布,隐藏真实服务器名
启动
systemctl start named-chroot
netstat -lnutp | grep named
测试
nslookup www.test.com 127.0.0.1
关闭防火墙
systemctl stop firewalld
setenforce 0
注意:别忘了在网卡设置里删除指定的dns
客户端访问web服务
编辑网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.111.131
NETMASK=255.255.255.0
GATEWAY=192.168.111.2 #同网段通信,网关可不配置
DNS1=192.168.111.130 #实际dns服务器ip
- 通过域名访问网站测试:
curl www.test.com
提醒:测试时关闭web服务器、dns服务器的防火墙