一、DNS介绍
DNS(Domain Name System,域名系统)是互联网的一项核心服务。
它的主要作用是将人们易于记忆的域名(例如 www.baidu.com )转换为对应的 IP 地址(例如 180.101.49.12)。因为计算机在网络中实际是通过 IP 地址来识别和通信的,但 IP 地址难以记忆,而域名则更直观和容易理解。
DNS 就像是一个巨大的电话簿,当用户在浏览器中输入域名时,DNS 服务器会查找并返回对应的 IP 地址,使得浏览器能够连接到正确的服务器获取所需的网页或服务。
DNS 系统采用了分布式的架构,由多个 DNS 服务器协同工作,以提高系统的可靠性和性能。此外,DNS 还提供了一些其他的功能,如域名的授权管理、负载均衡等。
二、任务背景及要求
三、搭建的具体过程
1.创建环境
准备三台机器,具体配置如下表:
编号 | hostname | ip | 作用 |
1 | web | 192.168.1.20 | 发布并管理web服务 |
2 | dns | 192.168.1.21 | 提供dns域名解析服务 |
3 | client | 192.168.1.19 | 客户端访问 |
2.web服务器配置
1.修改hostname
[root@localhost ~]# hostnamectl set-hostname web
2.关闭selinux和防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
SELINUX=permissive
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
3.设置静态IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
BOOTPROTO="none"
IPADDR=192.168.1.20
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=8.8.8.8
DNS2=114.114.114.114
...
4.重启主机访问外网
[root@localhost ~]# reboot
[root@web ~]# ping www.baidu.com
以上四个步骤三台机器都需要做。
5.安装nginx
[root@web ~]# yum -y install nginx
原因:Nginx位于第三方的yum源里面,而不在CentOs官方yum源里面。
解决:yum源安装epel
yum -y install epel-release
重新安装nginx即可。
6.修改html文件,启动服务
[root@web ~]# echo "i an web server majjor is static file manager" > /usr/share/nginx/html/index.html
[root@web ~]# nginx
80端口被占用,使用fuser -k 80/tcp关闭端口,重新启动(fuser使用yum install -y psmisc安装)
7.测试
在真机浏览器输入web服务器的地址测试
2.client客户端配置
1.修改主机名称
[root@localhost ~]# hostnamectl set-hostname client
2.关闭防火墙和selinux
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
3.修改静态地址并重启机器
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@localhost ~]# reboot
4.测试web服务:
扩展:elinks浏览器模拟器,用于测试dns服务
[root@client ~]# yum -y install elinks
5.添加新的DNS服务器
[root@client ~]# echo "nameserver 192.168.1.21" > /etc/resolv.conf
[root@client ~]# cat /etc/resolv.conf
nameserver 192.168.1.21
[root@client ~]# ping www.baidu.com #不可以访问外网
ping: www.baidu.com: 未知的名称或服务
[root@client ~]# systemctl restart network #重启网卡
[root@client ~]# ping www.baidu.com #又可以访问外网
[root@client ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
3.dns服务器配置
1.修改主机名称
[root@localhost ~]# hostnamectl set-hostname dns
2.关闭防火墙和selinux
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/selinux/config
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
3.修改静态IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...
BOOTPROTO="none"
IPADDR=192.168.1.21
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=8.8.8.8
DNS2=114.114.114.114
...
[root@localhost ~]# systemctl restart network #重启网卡
4.重启并ping外网
[root@localhost ~]# reboot
[root@dns ~]# ping www.baidu.com
5.安装bind
[root@dns ~]# yum -y install bind
[root@dns ~]# rpm -ql bind #查看重要配置文件
[root@dns ~]# systemctl start named #重启服务
6.备份重要配置文件
[root@dns ~]# cp /etc/named.conf /etc/named.conf.bak
[root@dns ~]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
[root@dns ~]# ls -l /etc/named*
7.修改配置文件
[root@dns ~]# vim /etc/named.conf #配置访问权限只需要要添加any;即可,其他不作修改
[root@dns ~]# systemctl restart named #重启服务
客户端测试:
[root@dns ~]# vim /etc/named.rfc1912.zones #配置域名解析文件
显示行号
:set number
复制12-18行到42行后面
:12,18 copy 42
8.复制一个文件进行修改
[root@dns ~]# ls /var/named/
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@dns ~]# cd /var/named/
[root@dns named]# cp -p named.localhost qingtang.zone
[root@dns named]# ls -l /var/named
[root@dns named]# vim qingtang.zone #添加web主机的IP地址
配置文件解释:
# 缓存周期 一天$TTL 1D# @ 当前域 IN 互联网 SOA 开始授权 @ 当前域 rname.invalid 邮箱@ IN SOA @ rname . invalid . (#更新序列号0 ; serial#跟新间隔1D ; refresh# 失败重试1H ; retry# 区域文件的过期时间1W ; expire#缓存的最小生存周期3H ) ; minimumNS @A 127.0.0.1AAAA ::1
9.检查配置文件(是否有语法错误)
[root@dns named]# named-checkconf /etc/named.conf
[root@dns named]# named-checkconf /etc/named.rfc1912.zones
[root@dns named]# named-checkzone qingtang.zone qingtang.zone
zone qingtang.zone/IN: loaded serial 0
OK
10.重启dns
[root@dns named]# systemctl restart named
[root@dns named]# netstat -lnptu | grep named
11.客户端测试
使用ping命令测试:
使用elinks测试可以出现我们在web服务器上编写的index.html文件的内容。