Linux 自动化部署DNS服务器
Linux 自动化部署DNS服务器
1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加记录。 
2.配置从dns的IP地址

3. 运行脚本,选择1,部署主DNS服务器
4.运行完脚本之后,主DNS就部署完成了,查看配置文件 /etc/named.conf 
5. 查看区域文件 区域文件在 /var/named/ 

6.本地测试主DNS服务器是否部署成功

7. 在从DNS服务器上运行脚本,选择2,部署从DNS服务
8.查看 
9.查看 /var/named/slaves/目录下,可以看到生成两个文件,说明从dns配置成功,从主dns获得区域文件
10.在另一个客户端测试,在/etc/resolv.conf添加如下两条记录

11. 测试,下图可以看到主、从DNS都正常 
源码如下:
#!/bin/bash
#该脚本用于自动化部署主DNS服务器与从DNS服务器
#作者:雨中落叶
#博客:https://www.cnblogs.com/yuzly/
echo "****************************
.部署主dns服务器
.部署从dns服务器
****************************"
read -p "请输入部署选项:" Num
case $Num in
)
#关闭防火墙,避免影响实验
service iptables stop &>/dev/null
setenforce &>/dev/null
named="/etc/named.conf"
#定义函数
alterDNS(){
#配置主文件
rm -fr $named
touch $named
#获得本机IP
ETH=$(ifconfig |grep "^eth" |awk '{print $1}')
lIP=$(ifconfig $ETH |grep "inet addr"|awk '{print $2}'|awk -F: '{print $2}')
read -p "请输入你要创建的正向区域名:" AreaName
read -p "请输入从DNS服务器的IP地址:" slaveIP
fan=$(echo $lIP |awk -F. '{print $3"."$2"."$1}')
cat >>$named<<OK
options {
listen-on port { $lIP; };
listen-on-v6 port { ::; };
directory "/var/named";
allow-query { any; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "$AreaName" IN {
type master;
file "$AreaName.zone";
allow-transfer { $slaveIP; };
};
zone "$fan.in-addr.arpa" IN {
type master;
file "$fan.in-addr.arpa.zone";
allow-transfer { $slaveIP; };
};
OK
#配置正向解析文件
touch /var/named/$AreaName.zone
cat >>/var/named/$AreaName.zone<<OK
\$TTL
@ IN SOA $AreaName. admin.$AreaName. (
; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.$AreaName.
IN NS ns2.$AreaName.
IN MX mail.$AreaName.
ns1 IN A $lIP
ns2 IN A $slaveIP
www IN A $lIP
mail IN A $lIP
news IN CNAME www.$AreaName.
OK
#配置反向解析文件
touch /var/named/$fan.in-addr.arpa.zone
fourthlIP=$(echo $lIP |awk -F. '{print $4}')
fourthslaveIP=$(echo $slaveIP |awk -F. '{print $4}')
cat >>/var/named/$fan.in-addr.arpa.zone<<OK
\$TTL
@ IN SOA $AreaName. admin.$AreaName. (
; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.$AreaName.
IN NS ns2.$AreaName.
$fourthlIP IN PTR ns1.$AreaName.
$fourthslaveIP IN PTR ns2.$AreaName.
$fourthlIP IN PTR www.$AreaName.
$fourthlIP IN PTR mail.$AreaName.
$fourthlIP IN PTR news.$AreaName.
OK
}
if [ ! -f $named ]
then
echo "当前电脑没有安装DNS服务,正在安装,请稍等....."
mount /dev/sr0 /mnt &>/dev/null
#搭建本地yum仓库
cd /etc/yum.repos.d
cat >>yuzly.repo<<OK
[yuzly]
name=yuzly
baseurl=file:///mnt
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
OK
yum install bind -y &>/dev/null
#调用函数
alterDNS
service named start &>/dev/null
else
alterDNS
service named start &>/dev/null
fi
;;
)
#关闭防火墙
service iptables stop &>/dev/null
setenforce &>/dev/null
#修改配置文件
#获得本机IP
ETH=$(ifconfig |grep "^eth" |awk '{print $1}')
lIP=$(ifconfig $ETH |grep "inet addr"|awk '{print $2}'|awk -F: '{print $2}') named="/etc/named.conf"
read -p "请输入主服务器创建的正向区域名:" AreaName
read -p "请输入主DNS服务器的IP地址:" IP
fan=$(echo $IP |awk -F. '{print $3"."$2"."$1}')
setArea(){
cat >>$named<<OK
options {
listen-on port { $lIP; };
directory "/var/named";
allow-query { any; };
};
zone "$AreaName" IN {
type slave;
masters { $IP; };
file "slaves/$AreaName.zone";
};
zone "$fan.in-addr.arpa" IN {
type slave;
masters { $IP; };
file "slaves/$fan.in-addr.arpa.zone";
};
OK
service named start &>/dev/null
}
if [ ! -f $named ]
then
echo "当前电脑没有安装DNS服务,正在安装,请稍等....."
mount /dev/sr0 /mnt &>/dev/null
#搭建本地yum仓库
cd /etc/yum.repos.d
cat >>yuzly.repo<<OK
[yuzly]
name=yuzly
baseurl=file:///mnt
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
OK
yum install bind -y &>/dev/null
rm -fr $named
touch $named
#调用函数
setArea
else
rm -fr $named
touch $named
setArea
fi
;;
*)
echo "请输入正确的数字!"
;;
esac
-------------------------------------------------------------------------------------------------------
Linux DNS服务配置:https://www.cnblogs.com/yuzly/p/10581688.html
Linux 自动化部署DNS服务器的更多相关文章
- Linux 自动化部署Rsyslog服务
Linux 自动化部署Rsyslog服务 源码如下: #/bin/bash #该脚本用于自动化部署Ryslog服务配置 #作者:雨中落叶 #博客:https://www.cnblogs.com/yuz ...
- Linux自动化部署尝试
Linux自动化部署尝试 最近做一个项目临近测试,购买的是阿里云的服务器,每次部署都是手动打包war,然后上传到服务器,然后修改配置文件,不仅繁琐,而且费时,就思索着找一个一键式的部署方式,今天终 ...
- Linux下部署FTP服务器
Linux下部署FTP服务器 下载安装包 在这里介绍的是离线部署FTP,首先下载对应的rpm包,下载链接为: 下载vsftpd服务 下载FTP客户端 安装ftp服务器 关闭防火墙 service ip ...
- Linux安装部署FTP服务器
Linux安装部署FTP服务器 本文章会将安装FTP服务器的步骤以及一些遇到的问题来记录下 因为项目中要与第三方对接数据,需要用到FTP服务器以提供他们每天上传数据,因为之前在本地的VMware虚 ...
- Linux上部署web服务器并发布web项目-转
Linux上部署web服务器并发布web项目 近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...
- centos7 部署dns服务器
=============================================== 2017/12/6_第2次修改 ccb_warlock 20 ...
- Linux 学习之DNS服务器
概念: DNS:Domain Name System 域名系统 FQDN:Fully Qualified Domain Name 完整主机名 正向解析:由主机名查IP地址 SOA:开始验证(Start ...
- Linux 自动化部署
1.pexpect Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Py ...
- Linux上部署web服务器并发布web项目
近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...
随机推荐
- 【spring】静态资源的访问受限解决方法
前言 我们知道在整合spring mvc框架的时候需要在web.xml中配置一个servlet 代码如下 <!--spring mvc 的DispatcherServlet--> < ...
- Hive篇--搭建Hive集群
一.前述 Hive中搭建分为三中方式 a)内嵌Derby方式 b)Local方式 c)Remote方式 三种方式归根到底就是元数据的存储位置不一样. 二.具体实现 a)内嵌Derby方式 使用derb ...
- CentOS 7 安装 Jenkins
准备工作 首选需要安装JAVA环境 https://www.cnblogs.com/stulzq/p/9286878.html 如果你的系统没有自带git,那么也需要安装一个 yum install ...
- DDD实战进阶第一波(十五):开发一般业务的大健康行业直销系统(总结篇)
前面我们花了14篇的文章来给大家介绍经典DDD的概念.架构和实践.这篇文章我们来做一个完整的总结,另外生成一个Api接口文档. 一.DDD解决传统的开发的几大问题: 没有描述需求的设计模型:而是直接通 ...
- yum仓库的创建
这篇博客是yum仓库的配置过程,如果是yum客户端配置请参考 http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_002.html 1 环境介 ...
- [Vue] vue跳转外部链接
问题 vue 跳转外部链接问题,当跳转的时候会添加在当前地址后面 var url = 'www.baidu.com' //跳转1 window.localtion.href = url //跳转2 w ...
- Qt实现半透明遮罩效果
本文索引: 需求 原理 实现遮罩控件 遮罩的使用 需求 我们在显示一些模态对话框的时候,往往需要将对话框的背景颜色调暗以达到突出当前对话框的效果,例如: 对话框的父窗口除了标题栏以外的部分都变暗了,在 ...
- 第61章 IdentityServer Options - Identity Server 4 中文文档(v1.0.0)
IssuerUri 设置将在发现文档和已颁发的JWT令牌中显示的颁发者名称.建议不要设置此属性,该属性从客户端使用的主机名中推断颁发者名称. PublicOrigin 此服务器实例的来源,例如http ...
- .Net Core 实践 - 使用log4net记录日志(1)
demo地址:https://github.com/PuzzledAlien/log4net_demo 准备 log4net 最新版本是2.0.8 VS2017 .Net Core 2.2 测试电脑配 ...
- Java Calendar类的使用总结
在实际项目当中,我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年....某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题 ...