DNS的做用是:linux
DNS是Domain Name System,它可以把形如www.lampmaster.cn本站域名转换为219.136.249.93这样的IP地址;没有DNS,浏览www.lampmaster.cn时,就必须用219.136.249.93这么难记的数字来访问。提供DNS服务的就是DNS服务器。 vim
DNS服务器能够分为三种,高速缓存服务器(Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。 缓存
DNS做用:服务器
正向解析:将域名转换成对应的ip地址网络
反向解析:将ip地址转换成对应的域名负载均衡
实验的目的dom
搭建主从DNS服务器是为了实现负载均衡。就是在一台DNS服务器的时候另外一台能够为客户端提供域名解析功能。ide
首先咱们先准备环境:测试
虚拟机两个
网站
RedHat5.9系统两个操做系统
咱们把他们的网路链接在同一个“VMnet”里
配置IP地址,都配置在一个网段的IP。
主DNS服务器IP地址为:dns1: 192.168.0.1/24
从DNS服务器IP地址为:dns2: 192.168.0.2/24
主要解析记录:
主DNS:dns1.long.com ----> 192.168.0.1
从DNS:dns2.long.com ----> 192.168.0.2
网站 :www.long.com ----> 192.168.0.100
邮件 :mail.long.com ----> 192.168.0.25
注意:首先要关闭防火墙和selinux
[root@localhost ~]# /etc/init.d/iptables stop
[root@localhost ~]# setenforce 0
搭建主DNS服务器
搭建主DNS服务器的基本步骤:
1.安装相关的服务
2.创建主配置文件
3.创建区域数据文件
4.启动named服务
5.测试主DNS的域名解析
6.配置本机IP地址为:192.168.0.1
注释:咱们是在虚拟机里作测试因此要把虚拟机设置到一个网络里:
主DNS服务器配置:
1)安装DNS的相关软件咱们可使使用“YUM”来安装:
bind # BIND服务器软件包
bind-chrooot # 为BIND提供 chroot 机制的软件包
bind-utils # DNS测试程序软件包
caching-nameserver # 这个包是提供模板的,在Linux6.版本系统就没有这个包了。
[root@localhost ~]# yum -y install bind
[root@localhost ~]# yum -y install bind-chroot
[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# yum -y install caching-nameserver
2)咱们使用“rpm -q ”查询一下是否安装上相关的软件:
[root@localhost ~]# rpm -q bind
bind-9.3.6-20.P1.el5_8.5
[root@localhost ~]# rpm -q bind-chroot
bind-chroot-9.3.6-20.P1.el5_8.5
[root@localhost ~]# rpm -q bind-utils
bind-utils-9.3.6-20.P1.el5_8.5
[root@localhost ~]# rpm -q caching-nameserver
caching-nameserver-9.3.6-20.P1.el5_8.5
这样证实咱们所须要的软件已经安装上了。若是没有安装上会提示这样的信息“package asdas is not installed”。
3)如今咱们来配置DNS的的配置文件
注释:咱们使用“cp”命令
-p : 的意思是保持原来的属性
这里要要注意的就是主配置文件的全部者是“root”所属组“named”
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# vim named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { 192.168.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
allow-transfer {192.168.0.2;}; # 这个是指定谁能够下载
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";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
[root@localhost etc]# vim named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
zone "long.com" IN {
type master;
file "long.com.zone";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.arpa";
allow-update { none; };
};
注意:最下面的这10行是从上面复制下来的模板。把复制的模修改一下就能够了。
5)配置完成之后咱们在检测一下配置文件的语法是否正确,若是没有提示任何信息,代表语法正确。
[root@localhost etc]# named-checkconf named.conf
[root@localhost etc]# named-checkconf named.rfc1912.zones
6)接下来配置区域配置文件,咱们切换到区域的路径下:
注释:咱们使用“cp”命令
-p 的意思是保持原来的属性
咱们复制一个正向文件和一个反向解析文件。
这里要要注意的就是主配置文件的全部者是“root”所属组“named”
[root@localhost etc]# cd /var/named/chroot/var/named/
[root@localhost named]# cp -p named.local long.com.zone
[root@localhost named]# cp -p named.local 192.168.0.arpa
这个是正向解析的配置文件:
[root@localhost named]# vim long.com.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS dns1.long.com. # 这个是主DNS
IN NS dns2.long.com. # 这个是从DNS
IN MX 10 mail.long.com. # 这个是邮件
dns1 IN A 192.168.0.1
dns2 IN A 192.168.0.2
www IN A 192.168.0.100
mail IN A 192.168.0.25
这个是反向解析的配置文件:
[root@localhost named]# vim 192.168.0.arpa
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS dns1.long.com.
IN NS dns2.long.com.
1 IN PTR dns1.long.com.
2 IN PTR dns2.long.com.
100 IN PTR www.long.com.
25 IN PTR mail.long.com.
7)如今检测语法看看是否配置正确,“long.com” 是咱们的域名。
[root@localhost named]# named-checkzone long.com long.com.zone
zone long.com/IN: loaded serial 1997022700
OK
[root@localhost named]# named-checkzone long.com 192.168.0.arpa
zone long.com/IN: loaded serial 1997022700
OK
8)如今就能够启动DNS服务了,在加入开机启动项。
[root@localhost named]# service named restart
[root@localhost named]# chkconfig named on
[root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.0.1
search localdomain
(1)本机正向测试方法以下:
[root@localhost ~]# nslookup dns1.long.com
Server: ::1
Address: ::1#53
Name: dns1.long.com
Address: 192.168.0.1
[root@localhost ~]# nslookup dns2.long.com
Server: ::1
Address: ::1#53
Name: dns2.long.com
Address: 192.168.0.2
[root@localhost ~]# nslookup www.long.com
Server: ::1
Address: ::1#53
Name: www.long.com
Address: 192.168.0.100
[root@localhost ~]# nslookup mail.long.com
Server: ::1
Address: ::1#53
Name: mail.long.com
Address: 192.168.0.25
[root@localhost ~]# host dns1.long.com
dns1.long.com has address 192.168.0.1
[root@localhost ~]# host dns2.long.com
dns2.long.com has address 192.168.0.2
[root@localhost ~]# host www.long.com
www.long.com has address 192.168.0.100
[root@localhost ~]# host mail.long.com
mail.long.com has address 192.168.0.25
(1)本机反向测试方法以下:
[root@localhost ~]# nslookup 192.168.0.1
Server: ::1
Address: ::1#53
1.0.168.192.in-addr.arpa name = dns1.long.com.
[root@localhost ~]# nslookup 192.168.0.2
Server: ::1
Address: ::1#53
2.0.168.192.in-addr.arpa name = dns2.long.com.
[root@localhost ~]# nslookup 192.168.0.100
Server: ::1
Address: ::1#53
100.0.168.192.in-addr.arpa name = www.long.com.
[root@localhost ~]# nslookup 192.168.0.25
Server: ::1
Address: ::1#53
25.0.168.192.in-addr.arpa name = mail.long.com.
[root@localhost ~]# host 192.168.0.1
1.0.168.192.in-addr.arpa domain name pointer dns1.long.com.
[root@localhost ~]# host 192.168.0.2
2.0.168.192.in-addr.arpa domain name pointer dns2.long.com.
[root@localhost ~]# host 192.168.0.100
100.0.168.192.in-addr.arpa domain name pointer www.long.com.
[root@localhost ~]# host 192.168.0.25
25.0.168.192.in-addr.arpa domain name pointer mail.long.com.
搭建从DNS服务器
基本配置步骤:
1,安装相关的服务
2,创建主配置文件
3,启动named服务
4,测试从DNS的域名解析
5,配置本机IP地址为:192.168.0.2
注释:咱们是在虚拟机里作测试因此要把虚拟机设置到一个网络里:
1)安装DNS的相关软件咱们可使使用“YUM”来安装:
bind # BIND服务器软件包
bind-chrooot # 为BIND提供 chroot 机制的软件包
bind-utils # DNS测试程序软件包
caching-nameserver # 这个包是提供模板的,在Linux6.版本系统就没有这个包了。
[root@localhost ~]# yum -y install bind
[root@localhost ~]# yum -y install bind-chroot
[root@localhost ~]# yum -y install bind-utils
[root@localhost ~]# yum -y install caching-nameserver
二、修改从DNS的主配置文件
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# cp -p named.caching-nameserver.conf named.conf
[root@localhost etc]# vim named.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { 192.168.0.2; };
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";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
allow-query-cache { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
[root@localhost etc]# vim named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.local";
allow-update { none; };
};
zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
zone "long.com" IN {
type slave;
file "slave/long.com.zone";
masters { 192.168.0.1; };
};
zone "0.168.192.in-addr.arpa" IN {
type slave;
file "slave/192.168.0.arpa";
masters { 192.168.0.1; };
};
注意:最下面的这10行是从上面复制下来的模板。把复制的模修改一下就能够了。
5)配置完成之后咱们在检测一下配置文件的语法是否正确,若是没有提示任何信息,代表语法正确。
[root@localhost etc]# named-checkconf named.conf
[root@localhost etc]# named-checkconf named.rfc1912.zones
如今启动DNS服务:
[root@localhost etc]# /etc/init.d/named restart
[root@localhost etc]# ls -l /var/named/chroot/var/named/slaves/
总计 16
-rw-r--r-- 1 named named 437 07-05 15:49 192.168.0.arpa
-rw-r--r-- 1 named named 426 07-05 15:48 long.com.zone