目录
简介
DNS
DNS(Domain Name System)时互联网上的一项服务,作为将域名和IP地址互相映射的一个分布式数据库,能更方便人们访问互联网;DNS服务的监听端口是UDP协议的53端口。
域名
因特网采用层次树状结构的命名方法,任何连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(Domain Name)。
域名只是逻辑概念,并不代表计算机所在的物理地点。
域名结构
域名可分为三大类:国家顶级域名、通用顶级域名、基础结构域名
国家顶级域名:采用ISO3166标准;cn为中国、us为美国、uk为英国等。
通用顶级域名:com代表企业公司、net代表网络服务机构、org代表非盈利组织、int代表国际组织、gov代表政府部门等。
基础结构域名:该顶级域名只有一个---arpa,用于域名转换为IP地址,因此成为反向域名。
域名服务器类型
根域名服务器:顶层的域名服务器,知道所有顶级域名服务器的域名和IP地址
顶级域名服务器:负责管理在该顶级域名注册的二级域名
权限域名服务器: 负责一个区域的域名
本地域名服务器:不属于域名服务器的层次结构,但对域名系统非常重要;当主机发出DNS请求时,查询请求就发送给本地域名服务器
缓存DNS服务器:不负责解析域,只缓存域名解析的结果
相关指令
nslookup
用于查询DNS记录,查看域名解析是否正常,在网络故障时可以用来诊断网络问题;Liunx和Windows都可以使用该命令
非交互模式:nslookup + 需要解析的域名或IP地址
交互模式: 使用nslookup命令进入交互模式(ctrl + Z退出交互模式)
dig
是一个域名查询工具;可以从DNS服务器查询主机地址信息,获取到详细的域名信息
安装
Debian(Ubuntu、kali...)系列:
apt-get install dnsutils
RedHat(RedHat、Centos、Fedora...)系列:
yum install bind-utils
使用
dig + 需要解析的域名或IP地址
其中status的值为状态指示
NOERROR:查询成功
SERVFAIL:DNS服务器执行查询时遇到错误,无法完成请求
NXDOMAIN:查询的域名不存在记录
使用 dig -x + 需要查询的域名或IP地址
注意:dig会从域名的官方服务器上获取到精确的结果;nslookup只会获得DNS服务器保存在cache中非权威的解答
实验内容
软件
bind是提供DNS服务的软件,它的守护进程名是named
安装
yum install bind
检查安装情况
rpm -qc bind
实验准备
实验设备
两个操作系统,一个作为客户端,一个作为服务器
服务器
客户端
修改服务器named配置
cp /etc/named.conf /etc/named.conf_bak #备份配置文件
vim /etc/named.conf
将127.0.0.1和localhost修改为any #允许所有人访问本机DNS
关闭SELiunx
setenforce 0
关闭防火墙
systemctl stop firewalld.service
正向解析实验
实验将域名解析为IP地址
服务端操作
编辑区域配置文件
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones_bak #备份配置文件
vim /etc/named.rfc1912.zones
在配置文件末尾添加
zone "hello.com" IN {
type master;
file "hello.com.zone";
allow-update { none; };
}; #hello.com为域名,可自定义
编辑正向解析文件
复制正向解析模板
cd /var/named/ #进入文件位置
cp -a named.localhost hello.com.zone #拷贝并重命名;hello.com要与上面域名一致
vim hello.com.zone #进入文件编辑
修改前
修改后 (保存退出)
hello.com. #自定义域名
192.168.73.130 #域名对应的IP地址(为了简化实验将其设置为服务器IP地址)
www. ftp. www1. #匹配域名的前缀
重启服务
systemctl restart named
客户端操作
修改网络适配器文件
客户端网络适配器为ens160
进入网络适配器配置文件
vim /etc/NetworkManager/system-connections/ens160.nmconnection
添加DNS服务器地址
dns=192.168.73.130 #dnsIP地址为服务器IP地址
重启网络适配器
nmcli connection reload #重启服务
nmcli connection up ens160 #重启网络适配器
测试正向解析
逆向解析实验
服务端操作
主要配置文件与正向解析相同,区域配置文件中添加逆向解析配置
vim /etc/named.rfc1912.zones
添加以下配置
73.168.192为服务器端IP地址的网络位
注意:IP地址需要反向书写
zone "73.168.192.in-addr.arpa" IN {
type master;
file "192.168.73.arpa";
allow-update { none; };
};
编辑反向解析文件
复制反向解析模板
cd /var/named/ #进入配置位置
cp -a named.loopback 192.168.73.arpa #拷贝并重命名文件为反向解析的IP地址
vim 192.168.73.arpa #编辑配置文件
修改后
域名结尾必须加点(.);130为服务器的主机位
重启服务
systemctl restart named
客户端操作
配置与正向解析操作一致
测试