从头构建主从 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)
- [root@server ~]# hostnamectl set-hostname ns1.zhuxu.co
- [root@server ~]# 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
挂载光盘(请确保光盘镜像是连接状态)
[root@ns1 ~]# mount /dev/cdrom /mnt/cdrom
3, 安装 bind(提供 dns 服务的软件包名为 bind)
[root@ns1 ~]# yum install -y bind
bind 包安装后生成的文件. 我简单的介绍一下(本文用到的文件和命令)
[root@ns1 ~]# 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 的属主, 属组和权限
- [root@ns1 etc]# ll named.conf
- -rw-r-----. 1 root named 1705 Mar 22 2016 named.conf
4.1.2 把 named.conf 重命名 named.bak
[root@ns1 etc]# mv named.conf named.conf.bak --- 备份配置文件是一种好习惯(职业病)
4.1.3 创建一个 named.conf 属主, 属组和权限和原来一样的文件
- [root@ns1 etc]# touch named.conf
- [root@ns1 etc]# chmod 640 named.conf
- [root@ns1 etc]# chown root.named named.conf
- [root@ns1 etc]# ll named.conf
- -rw-r-----. 1 root named 0 Jul 31 23:09 named.conf
4.1.4 编写配置文件
- [root@ns1 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
- ~[root@ns1 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
- [root@ns1 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 的语法
检查配置文件语法:
[root@ns1 named]# named-checkconf
检查 zhuxu.co.zone
- [root@ns1 named]# named-checkzone zhuxu.co.zone /var/named/zhuxu.co.zone
- zone zhuxu.co.zone/IN: loaded serial 20180731
- OK
检查 192.168.0.zone
- [root@ns1 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 服务.
- [root@ns1 named]# firewall-cmd --permanent --add-service=dns
- success
- [root@ns1 named]# firewall-cmd --reload
- success
- [root@ns1 named]# systemctl start named
- [root@ns1 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)
- [root@client ~]# hostnamectl set-hostname ns2.zhuxu.co
- [root@client ~]# 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
挂载光盘(请确保光盘镜像是连接状态)
[root@ns1 ~]# mount /dev/cdrom /mnt/cdrom
3, 安装 bind(提供 dns 服务的软件包名为 bind)
[root@ns2 ~]# yum install -y bind
4, 配置 dns 服务
4.1 修改配置文件(系统自带的配置文件, 我们不用, 完全自己编写)
4.1.1 查看配置文件 named.conf 的属主, 属组和权限
- [root@ns2 etc]# ll named.conf
- -rw-r-----. 1 root named 1705 Mar 22 2016 named.conf
4.1.2 把 named.conf 重命名 named.bak
[root@ns2 etc]# mv named.conf named.conf.bak
--- 备份配置文件
4.1.3 创建一个 named.conf 属主, 属组和权限和原来一样的文件
- [root@ns2 etc]# touch named.conf
- [root@ns2 etc]# chmod 640 named.conf
- [root@ns2 etc]# chown root.named named.conf
- [root@ns2 etc]# ll named.conf
- -rw-r-----. 1 root named 0 Jul 31 23:09 named.conf
4.1.4 编写配置文件
- [root@ns2 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 文件
- [root@ns1 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 文件
- [root@ns1 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 服务器.
- [root@ns2 etc]# firewall-cmd --permanent --add-service=dns
- success
- [root@ns2 etc]# firewall-cmd --reload
- success
- [root@ns1 named]# systemctl restart named
- [root@ns2 etc]# systemctl start named
- ## 7, 检验辅助 DNS 是否能工作.
方法很多种, 随便介绍两种
- ### 简单直接修改物理机的 dns 为 192.168.119, 看能否正常打开网页
- ### 用命令验证:
dig -t A www.baidu.com @192.168.0.119
- [root@ns1 ~]# 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 的实验)
本文里面配置没有太多注解. 请见谅. 最近时间太少, 等空下来. 我会写一个基础篇.
来源: http://www.bubuko.com/infodetail-2709548.html