从零构建DNS主从服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零构建DNS主从服务器相关的知识,希望对你有一定的参考价值。
从头构建主从dns
我们没有外网ip地址和域名。为了做实验,假设我们有一个网段地址192.168.0.0/24和一个域名:zhuxu.co
准备工作
物理机一台,ip :192.168.0.111/24 gw:192.168.0.1 dns:8.8.8.8
二台虚拟机,系统为redhat7,一台虚拟机(ns1.zhuxu.co)做成主dns服务器。网卡类型为自动桥接. ip:192.168.0.118/24 gw:192.168.0.1
另一台(ns2.zhuxu.co)做成从dns服务器,网络类型为自动桥接。ip:192.168.0.119/24 gw:192.168.0.1
1,配置主机名(把192.168.0.1主机名该成ns1.zhuxu.co)
[[email protected] ~]# hostnamectl set-hostname ns1.zhuxu.co
[[email protected] ~]# hostname ns1.zhuxu.co
2,配置yum源,(我选择挂载光盘的方式)
在touch /etc/yum.repos.d/server.repo 文件。添加一下内容
[base]
name=redhat7.repo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
挂载光盘(请确保光盘镜像是连接状态)
[[email protected] ~]# mount /dev/cdrom /mnt/cdrom
3,安装bind(提供dns服务的软件包名为bind)
[[email protected] ~]# yum install -y bind
bind包安装后生成的文件。我简单的介绍一下(本文用到的文件和命令)
[[email protected] ~]# rpm -ql bind
/etc/named.conf ---named服务主配置文件
/etc/sysconfig/named---named服务脚本配置文件
/usr/lib/systemd/system/named.service ---named服务
/usr/sbin/rndc ---远程域名控制器(命令)
/usr/sbin/named-checkconf ---检查配置文件有没有语法错误的命令
/usr/sbin/named-checkzone ---检查zone文件有没有语法错误的命令
/var/named ---存放zone文件的目录
/var/named/named.ca ---根zone 文件
/var/named/named.localhost ---本机zone 文件
/var/named/named.loopback --本机的反向 zone 文件
/var/named/slaves ---从服务器放区域文件的位置
4,配置dns服务
4.1修改配置文件(系统自带的配置文件,我们不用,完全自己编写)
4.1.1查看配置文件named.conf的属主,属组和权限
[[email protected] etc]# ll named.conf
-rw-r-----. 1 root named 1705 Mar 22 2016 named.conf
4.1.2把named.conf 重命名named.bak
[[email protected] etc]# mv named.conf named.conf.bak ---备份配置文件是一种好习惯(职业病)
4.1.3创建一个named.conf 属主,属组和权限和原来一样的文件
[[email protected] etc]# touch named.conf
[[email protected] etc]# chmod 640 named.conf
[[email protected] etc]# chown root.named named.conf
[[email protected] etc]# ll named.conf
-rw-r-----. 1 root named 0 Jul 31 23:09 named.conf
4.1.4编写配置文件
[[email protected] etc]# vim named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "zhuxu.co" IN {
type master;
file "zhuxu.co.zone";
allow-transfer { 192.168.0.119; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.zone";
allow-transfer { 192.168.0.119; };
};
4.1.5添加两个zone
添加zhuxu.co.zone
vim /var/named/zhuxu.co.zone
~[[email protected] named]# vim zhuxu.co.zone
$TTL 600
@ IN SOA ns1.zhuxu.co mail.zhuxu.co (
20180731
1H
15M
1D
6H )
IN NS ns1
ns1 IN A 192.168.0.118
IN MX 8 mail
mail IN A 192.168.0.114
www IN A 192.168.0.120
~ 添加192.168.0.zone
[[email protected] named]# vim 192.168.0.zone
$TTL 600
@ IN SOA ns1.zhuxu.co. mail.zhuxu.co. (
20180731
1H
15M
1D
12H)
NS ns1.zhuxu.co.
118 PTR ns1.zhuxu.co.
120 PTR www.zhuxu.co.
4.1.6检查配置文件。和zone的语法
检查配置文件语法:[[email protected] named]# named-checkconf
检查zhuxu.co.zone
[[email protected] named]# named-checkzone zhuxu.co.zone /var/named/zhuxu.co.zone
zone zhuxu.co.zone/IN: loaded serial 20180731
OK
检查192.168.0.zone
[[email protected] named]# named-checkzone 192.168.0.zone /var/named/192.168.0.zone
zone 192.168.0.zone/IN: loaded serial 20180731
OK
4.1.7主服务配置完成。开放防火墙。启动named服务.
[[email protected] named]# firewall-cmd --permanent --add-service=dns
success
[[email protected] named]# firewall-cmd --reload
success
[[email protected] named]# systemctl start named
[[email protected] named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-08-01 00:08:50 CST; 28s ago
主DNS服务器,就完全搭建好了。我们把物理主机的dns.换成192.168.0.118,经过检验完全可以上网。
搭建辅助DNS服务器
1,配置主机名(把192.168.0.119这台主机名改为ns1.zhuxu.co)
[[email protected] ~]# hostnamectl set-hostname ns2.zhuxu.co
[[email protected] ~]# hostname ns2.zhuxu.co
2,配置yum源,(我选择挂载光盘的方式)
在touch /etc/yum.repos.d/server.repo 文件。添加一下内容
[base]
name=redhat7.repo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
挂载光盘(请确保光盘镜像是连接状态)[[email protected] ~]# mount /dev/cdrom /mnt/cdrom
3,安装bind(提供dns服务的软件包名为bind)
[[email protected] ~]# yum install -y bind
4,配置dns服务
4.1修改配置文件(系统自带的配置文件,我们不用,完全自己编写)
4.1.1查看配置文件named.conf的属主,属组和权限
[[email protected] etc]# ll named.conf
-rw-r-----. 1 root named 1705 Mar 22 2016 named.conf
4.1.2把named.conf 重命名named.bak
[[email protected] etc]# mv named.conf named.conf.bak
---备份配置文件
4.1.3创建一个named.conf 属主,属组和权限和原来一样的文件
[[email protected] etc]# touch named.conf
[[email protected] etc]# chmod 640 named.conf
[[email protected] etc]# chown root.named named.conf
[[email protected] etc]# ll named.conf
-rw-r-----. 1 root named 0 Jul 31 23:09 named.conf
4.1.4编写配置文件
[[email protected] etc]# vim named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "zhuxu.co" IN {
type slave;
masters { 192.168.0.118; };
file "slaves/zhuxu.co.zone";
allow-transfer { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.0.118; };
file "slaves/192.168.0.zone";
allow-transfer { none; };
};
~
## 5,修改主NDS zone的配置文件
### 5.1修改zhuxu.co zone 文件
[[email protected] named]# vim zhuxu.co.zone
$TTL 600
@ IN SOA ns1.zhuxu.co. mail.zhuxu.co. (
20180731
1H
15M
1D
6H )
IN NS ns1
IN NS ns2 ;新增加的NS 记录
ns1 IN A 192.168.0.118
ns2 IN A 192.168.0.119 ;新增加的A 记录
IN MX 8 mail
mail IN A 192.168.0.114
www IN A 192.168.0.120
5.2 修改 192.168.0 zone 文件
[[email protected] named]# vim 192.168.0.zone
$TTL 600
@ IN SOA ns1.zhuxu.co. mail.zhuxu.co. (
20180731
1H
15M
1D
12H)
IN NS ns1.zhuxu.co.
IN NS ns2.zhuxu.co. ;新增加的NS 记录
118 IN PTR ns1.zhuxu.co.
120 IN PTR www.zhuxu.co.
## 6,辅助DNS服务器配置完成。防火墙放行DNS服务。重启主DNS服务,启动辅助dns服务器。
[[email protected] etc]# firewall-cmd --permanent --add-service=dns
success
[[email protected] etc]# firewall-cmd --reload
success
[[email protected] named]# systemctl restart named
[[email protected] etc]# systemctl start named
## 7,检验辅助DNS是否能工作。
方法很多种,随便介绍两种
### 简单直接修改物理机的dns为192.168.119,看能否正常打开网页
### 用命令验证:
dig -t A www.baidu.com @192.168.0.119
[[email protected] ~]# dig -t A www.baidu.com @192.168.0.119
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> -t A www.baidu.com @192.168.0.119
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41911
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 13, ADDITIONAL: 27
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 1110 IN CNAME www.a.shifen.com.
www.a.shifen.com. 600 IN A 183.232.231.172
www.a.shifen.com. 600 IN A 183.232.231.173
......看到这些内容说明辅助dns服务器工作正常
dig 命令很强大,具体用法请自行查找。
如果我们现在配置一台主机名为www.zhuxu.co 安装httpd服务,可以使用基于主机名的虚拟主机(我会做一件关于httpd的实验)
本文里面配置没有太多注解。请见谅。最近时间太少,等空下来。我会写一个基础篇。
以上是关于从零构建DNS主从服务器的主要内容,如果未能解决你的问题,请参考以下文章