点关注不迷路
目录
DNS服务
一、DNS介绍
- DNS 应用层协议
- Domain Name System 域名系统
- 作用
- 正向解析:根据主机名查询对应的IP
- 反向解析:根据对应的主机名
1、区域 zone
- 正向区域
- 一般就是二级域名
- jd.com
- 一般就是二级域名
- 反向区域
- x.x.x.in-addr.arpa
- 1.168.192.in-addr.arpa
- 1.1.10.in-addr.arpa
- x.x.x.in-addr.arpa
2、记录 Record
- A记录
- 记录主机名与IP地址的对应关系
- www.baidu.com A 3.3.3.3
- PTR记录
- 反向指针记录
- 记录IP地址、主机名的对应关系
- CNAME记录
- 别名记录
- www.baidu.com CNAME www.a.shifen.com
- MX记录
- 标识邮件服务器
- 必须配合A记录同时使用
-
MX 5 mail01.linux.com.
mail01.linux.com A 5.5.5.5
MX 10 mail02.linux.com
mail02.linux.com A 7.7.7.7
数字5: 邮件服务器的优先级,数字越小,优先级越高
-
-
NS记录
-
标识DNS服务器
-
必须配合A记录同时使用
-
3、DNS服务端
- 软件
- bind
- bind-chroot
- 增强DNS服务安全性
- 配置文件
- 主配置文件:/var/named/chroot/etc/named.conf
- 数据文件/记录文件:/var/named/chroot/var/named/*
二、配置DNS实现正向解析
二级域名:linux.com
DNS服务器 ns01.linux.com 192.168.59.11
FTP服务器 10.1.1.1 ftpserver.linux.com
WEB服务器 10.1.1.2 web.linux.com
MAIL服务器 10.1.1.3 mail01.linux.com
1、关闭防火墙、SElinux、时间同步
2、安装DNS相关软件
[root@dns_server ~]# yum install bind bind-chroot
3、在主配置文件中创建区域
[root@dns_server ~]# cat /var/named/chroot/etc/named.conf
options {
directory "/var/named"; //指定记录文件的存放位置
};
zone "linux.com" { // 指定区域名
type master; // 指定区域类型为主区域
file "linux.com.zone"; // 指定linux.com区域对应的记录文件名称
};
4、创建记录文件,添加记录
[root@dns_server ~]# cp /usr/share/doc/bind-9.11.4/sample/var/named/named.localhost /var/named/chroot/var/named/linux.com.zone
[root@dns_server ~]# cat /var/named/chroot/var/named/linux.com.zone
$TTL 1D
@ IN SOA linux.com. 454452000.qq.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns01.linux.com.
ns01 A 192.168.140.10
ftpserver A 10.1.1.1
web A 10.1.1.2
MX 5 mail01.linux.com.
mail01 A 10.1.1.3
5、启动dns服务
[root@dns_server ~]# systemctl start named named-chroot
[root@dns_server ~]# systemctl enable named named-chroot
[root@dns_server ~]# ps -elf | grep name
5 S named 7290 1 0 80 0 - 97735 sigsus 11:05 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf
5 S named 7329 1 0 80 0 - 63898 sigsus 11:05 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot
0 S root 7356 6942 0 80 0 - 28177 pipe_w 11:06 pts/0 00:00:00 grep --color=auto name
[root@dns_server ~]# netstat -tunlp | grep name
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.140.10:53 0.0.0.0:* LISTEN 7329/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 7290/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 7290/named
tcp6 0 0 ::1:53 :::* LISTEN 7290/named
tcp6 0 0 ::1:953 :::* LISTEN 7290/named
udp 0 0 192.168.140.10:53 0.0.0.0:* 7329/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 7329/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 7290/named
udp6 0 0 ::1:53 :::* 7290/named
6、验证DNS---nslookup工具
C:\>nslookup
默认服务器: gjjline.bta.net.cn
Address: 202.106.0.20
> server 192.168.140.10
默认服务器: [192.168.140.10]
Address: 192.168.140.10
> ftpserver.linux.com
服务器: [192.168.140.10]
Address: 192.168.140.10
名称: ftpserver.linux.com
Address: 10.1.1.1
> web.linux.com
服务器: [192.168.140.10]
Address: 192.168.140.10
名称: web.linux.com
Address: 10.1.1.2
> mail01.linux.com
服务器: [192.168.140.10]
Address: 192.168.140.10
名称: mail01.linux.com
Address: 10.1.1.3
三、配置DNS实现反向解析
1、添加反向区域
[root@dns_server named]# cat /var/named/chroot/etc/named.conf
zone "1.1.10.in-addr.arpa" {
type master;
file "10.1.1.zone";
};
2、添加记录文件
[root@dns_server named]# cp linux.com.zone 10.1.1.zone
[root@dns_server named]# cat 10.1.1.zone
$TTL 1D
@ IN SOA linux.com. 454452000.qq.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns01.linux.com.
ns01 A 192.168.140.10
1 PTR ftpserver.linux.com.
2 PTR web.linux.com.
3 PTR mail01.linux.com.
[root@dns_server named]# systemctl restart named named-chroot
3、验证反向解析
C:\Users\admin>nslookup
默认服务器: gjjline.bta.net.cn
Address: 202.106.0.20
> server 192.168.140.10
默认服务器: [192.168.140.10]
Address: 192.168.140.10
>
> 10.1.1.1
服务器: [192.168.140.10]
Address: 192.168.140.10
名称: ftpserver.linux.com
Address: 10.1.1.1
> 10.1.1.2
服务器: [192.168.140.10]
Address: 192.168.140.10
名称: web.linux.com
Address: 10.1.1.2
> 10.1.1.3
服务器: [192.168.140.10]
Address: 192.168.140.10
名称: mail01.linux.com
Address: 10.1.1.3
> exit
四、测试DNS的常用工具
- nslookup
- dig
- 事先在网卡指定DNS服务器地址
[root@localhost ~]# dig -t A mail01.linux.com
五、配置DNS主从
1、环境描述
- 192.168.140.10 主DNS
- 192.168.140.11 备DNS
2、两台服务器关闭防火墙、SELinux、时间同步
3、修改主DNS配置文件,添加从服务器地址
[root@dns_server ~]# vim /var/named/chroot/etc/named.conf
zone "linux.com" {
type master;
file "linux.com.zone";
allow-transfer { 192.168.140.11; }; //指定从服务器地址
};
4、修改主DNS配置文件,添加主、从两台服务器NS记录
[root@dns_server ~]# vim /var/named/chroot/var/named/linux.com.zone
NS ns01.linux.com.
NS ns02.linux.com.
ns01 A 192.168.140.10
ns02 A 192.168.140.11
[root@dns_server ~]# systemctl restart named named-chroot
5、在从服务器安装DNS软件
[root@localhost ~]# yum install bind bind-chroot
6、在从服务器上创建相同的区域
[root@localhost ~]# cat /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
zone "linux.com" {
type slave; //指定区域类型为从,代表要从主服务器上复制记录文件
file "slaves/linux.com.zone"; //记录文件的存放位置
masters { 192.168.140.10; }; // 指定主服务器地址
};
[root@localhost ~]# systemctl start named named-chroot
[root@localhost ~]# systemctl enable named named-chroot
7、验证主从同步成功
[root@localhost ~]# ls /var/named/chroot/var/named/slaves/
linux.com.zone
测试使用从服务器解析:
C:\Users\admin>nslookup
默认服务器: gjjline.bta.net.cn
Address: 202.106.0.20
>
> server 192.168.140.11
默认服务器: [192.168.140.11]
Address: 192.168.140.11
>
> ftpserver.linux.com
服务器: [192.168.140.11]
Address: 192.168.140.11
名称: ftpserver.linux.com
Address: 10.1.1.1
> web.linux.com
服务器: [192.168.140.11]
Address: 192.168.140.11
名称: web.linux.com
Addresses: 10.1.1.2
10.1.1.10
> mail01.linux.com
服务器: [192.168.140.11]
Address: 192.168.140.11
名称: mail01.linux.com
Address: 10.1.1.3
8、测试同步变化的记录信息
[root@dns_server ~]# cat /var/named/chroot/var/named/linux.com.zone
$TTL 1D
@ IN SOA linux.com. 454452000.qq.com. (
37 ; serial
// 序列号,让从服务器识别记录变化
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns01.linux.com.
NS ns02.linux.com.
ns01 A 192.168.140.10
ns02 A 192.168.140.11
AA A 10.1.1.100
BB A 10.1.1.200
六、DNS查询类型
1、递归查询
- 只发送一次DNS查询请求
- 客户端和DNS服务器间
2、迭代查询
- 发送多次DNS请求
- 多个不同DNS服务器间发送请求
七、本地hosts文件
- 记录主机名、IP地址的对应关系
- 格式
- IP地址 主机名
Linux:
- /etc/hosts
Windows:
- C:\Windows\System32\drivers\etc