文章目录
一、概念
domain name server 域名服务
域名:
常见域名:www.baidu.com
完整域名:www.baidu.com.
完整域名后会有一个点
解析方式
- 正向解析:域名-----IP
- 反向解析:IP------域名
工作方式
- 递归:本地DNS服务器无法解析时,替客户端向根服务器发起访问
- 迭代:本地DNS服务器无法解析时,由客户端向其他DNS服务器发起访问
DNS类型
- 主域名服务器
- 从域名服务器
- 缓存域名服务器
二、详解
软件名:bind
服务名:named
端口
- UDP/53 数据通信(域名解析)
- TCP/53 数据同步(主从同步)
DNS解析命令:nslookup
语法:nslookup + 域名/IP
配置文件
- 主配置文件:
/etc/named.conf
- 区域配置文件:
/etc/named.rfc1912.zones
数据配置文件:/var/named/
drwxrwx---. 2 named named 23 12月 26 11:25 data
drwxrwx---. 2 named named 60 12 月 26 13:49 dynamic
-rw-r-----. 1 root named 2112 8月 28 04:14 named.ca
-rw-r-----. 1 root named 152 8月 28 04:14 named.empty #反向代理文件
-rw-r-----. 1 root named 152 8月 28 04:14 named.localhost #正向代理文件
-rw-r-----. 1 root named 168 8月 28 04:14 named.loopback
drwxrwx---. 2 named named 6 8月 28 04:14 slaves
三、DNS服务搭建
配置DNS地址:/etc/resolv.conf
检查语法错误:named-checkconf -z /etc/named.conf
1)基本服务搭建
一、DNS服务端配置
(1)安装bind
yum -y install bind
(2)配置文件
1、配置主文件 vim /etc/named.conf
options {
listen-on port 53 { any; }; #本机IP地址 / any
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; }; #
2、配置区域文件 vim /etc/named.rfc1912.zones
zone "aaa.com" IN { #要解析的域名
type master;
file "aaa.localhost"; #指向正向解析的文件(默认在/var/named)
allow-update { none; };
};
zone "100.168.192.in-addr.arpa" IN { #反向解析的IP地址 IP地址要反写
type master;
file "aaa.empty"; #指向反向解析的文件
allow-update { none; };
};
3、配置正向解析文件 cp -p /var/named/named.localhost /var/named/aaa.localhost
[!WARNING]
注意文件属主和属组
-rw-r-----. 1 root named 191 12月 26 13:39 aaa.localhost -rw-r-----. 1 root named 191 12月 26 13:39 aaa.empty
$TTL 1D
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.com.
dns A 192.168.100.100
www A 192.168.100.101
4、配置反向解析文件 cp -p /var/named/named.empty /var/named/aaa.empty
$TTL 3H
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.com.
100 PTR dns.aaa.com.
101 PTR www.aaa.com.
二、客户端配置
(1)安装工具包
yum -y install bind-utils
(2)给网卡添加DNS
DNS1=192.168.100.100 #DNS服务器IP地址
(3)重启网络
三、测试 nslookup
-
正向解析测试
[root@localhost ~]# nslookup www.aaa.com Server: 192.168.100.100 Address: 192.168.100.100#53 Name: www.aaa.com Address: 192.168.100.101
-
反向解析测试
[root@localhost ~]# nslookup 192.168.100.101 101.100.168.192.in-addr.arpa name = www.aaa.com.
2)主从DNS服务器搭建
减轻主服务器的压力,数据从主服务器上复制到从服务器上
一、主服务器的配置
1、配置主文件 vim/etc/named.conf
options {
listen-on port 53 { 192.168.100.100; };
allow-query { any; };
2、配置区域文件 vim/etc/named.rfc1912.zones
zone "aaa.com" IN {
type master;
file "aaa.localhost";
allow-transfer { 192.168.100.106; }; #声明允许同步数据的主机
also-notify { 192.168.100.106; };
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "aaa.empty";
allow-transfer { 192.168.100.106; }; #声明允许同步数据的主机
};
3、配置正向解析文件(/var/named)
$TTL 1D
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.com.
dns A 192.168.100.100
www A 192.168.100.101
4、配置反向解析文件
$TTL 3H
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.com.
100 PTR dns.aaa.com.
101 PTR www.aaa.com.
5、检查并开启服务
named-checkconf -z /etc/named.conf && systemctl start named
二、从服务器的配置
1、安装bind
2、修改主配置文件 vim /etc/named.conf
options {
listen-on port 53 { 192.168.100.106; }; #本机IP地址(从服务器)
allow-query { any; };
3、修改区域配置文件
zone "aaa.com" IN {
type slave; #类型为:slave 从服务器
masters { 192.168.100.100; }; #主服务器的IP
allow-notify { 192.168.100.100; };
file "slaves/aaa.com.localhost"; #在/var/named/slaves/
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.100.100; };
allow-notify { 192.168.100.100; };
file "slaves/aaa.com.empty";
};
4、启动服务 systemctl start named
开启后,在slaves目录下生成两个文件
[root@localhost slaves]# ll
总用量 8
-rw-r--r--. 1 named named 307 12月 26 15:47 aaa.com.empty
-rw-r--r--. 1 named named 221 12月 26 15:38 aaa.com.localhost
三、客户端
DNS指向从DNS服务IP
访问测试(关闭主DNS服务,依旧可以解析)
-
正向解析测试
[root@localhost ~]# nslookup www.aaa.com Server: 192.168.100.100 Address: 192.168.100.100#53 Name: www.aaa.com Address: 192.168.100.101
-
反向解析测试
[root@localhost ~]# nslookup 192.168.100.101 101.100.168.192.in-addr.arpa name = www.aaa.com.
3)主从服务器DNS实现跨网段解析
一、服务器规划
服务器 | IP地址 | 网关 |
---|---|---|
DNS-Master | 192.168.100.100 | 192.168.100.254 |
DNS-Slave | 192.168.200.200 | 192.168.200.254 |
路由器 | 192.168.100.254 192.168.200.254 | |
客户端 | 192.168.200.210 | 192.168.200.254 |
二、主服务器配置
1、安装bind
yum -y install bind
2、修改主配置文件
options {
listen-on port 53 { 192.168.100.100; };
allow-query { any; };
3、配置区域配置文件
zone "aaa.com" IN {
type master;
file "aaa.localhost";
allow-transfer { 192.168.200.200; }; #声明允许同步数据的主机
also-notify { 192.168.200.200; };
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "aaa.empty"; #不能写到一个配置文件里
allow-transfer { 192.168.200.200; }; #声明允许同步数据的主机
};
zone "200.168.192.in-addr.arpa" IN {
type master;
file "aaa-1.empty";
allow-transfer { 192.168.200.200; }; #声明允许同步数据的主机
};
4、配置正向解析文件
路径:/var/named
cp -p named.localhost aaa.lcoalhost
vim aaa.localhost
$TTL 1D
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.com.
dns A 192.168.100.100
www A 192.168.200.200 ##将www.aaa.com解析为192.168.200.200
5、配置反向解析文件
/var/named/aaa.empty
$TTL 3H
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.com.
100 PTR dns.aaa.com.
/var/named/aaa-1.empty
$TTL 3H
@ IN SOA aaa.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.aaa.com.
200 PTR www.aaa.com.
6、检查并启动服务
named-checkconf -z && systemctl start named
三、从服务器配置
1、安装bind
yum -y install bind
2、配置主配置文件
options {
listen-on port 53 { 192.168.200.200; }; ##从服务器的IP地址
allow-query { any; };
3、修改区域配置文件
zone "aaa.com" IN {
type slave; #类型为:slave 从服务器
masters { 192.168.100.100; }; #主服务器的IP
allow-notify { 192.168.100.100; };
file "slaves/aaa.com.localhost"; #在/var/named/slaves/
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.100.100; };
allow-notify { 192.168.100.100; };
file "slaves/aaa.com.empty";
};
zone "200.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.100.100; };
allow-notify { 192.168.100.100; };
file "slaves/aaa-1.com.empty";
};
4、检查并启动服务
named-checkconf -z && systemctl start named ##成功后在/var/named下出现文件
四、路由器配置
配置双网卡
100网段vm7 200网段vm9
开启路由转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
五、客户端验证
1、配置dns为主服务器和从服务器的IP
vim /etc/resolv.conf
nameserver 192.168.100.100
nameserver 192.168.200.200
2、使用nslookup命令解析www.aaa.com