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新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我一 ...
随机推荐
- iOS学习——图片压缩到指定大小以内
一.图片压缩简述 在我们开发过程中,有可能会遇到拍照.或者从相册中选择图片,要么单选或者多选,然后上传图片到服务器,一般情况下一张图片可能3-4M,如果类似微信朋友圈上传9张图片大约是 35M左右,如 ...
- webpack的基本配置项
const path = require("path"); const HtmlWebpackPlugin = require("html-webpack-plugin& ...
- JSON 序列化的时候忽略无效的属性值
例如我拥有以下代码. public class NewObject { public int? TestValue { get; set; } public int? Age { get; set; ...
- Python内置函数(64)——tuple
英文文档: The constructor builds a tuple whose items are the same and in the same order as iterable‘s it ...
- 编译安装mysql5.7.24踩的坑
1.报错如下:CMake Error at cmake/boost.cmake:76 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 - ...
- lambda表达式中的排序问题
新月新气象,10月第一篇,这也是我工作的第一天,这一篇文章我们要讲到lambda的排序问题 我是这样排序的 var list = DB.company.OrderBy(x=>x.isfreeze ...
- asp.net core 系列 6 MVC框架路由(下)
一.URL 生成 接着上篇讲MVC的路由,MVC 应用程序可以使用路由的 URL 生成功能,生成指向操作的 URL 链接. 生成 URL 可消除硬编码 URL,使代码更稳定.更易维护. 此部分重点介绍 ...
- Linux 文件权限于目录配置
用户与用户组 我們以王三毛為例,王三毛這個『檔案』的擁有者為王三毛,他屬於王大毛這個群組, 而張小豬相對於王三毛,則只是一個『其他人(others)』而已. 不過,這裡有個特殊的人物要來介紹的,那就是 ...
- JDBC与ORM发展与联系 JDBC简介(九)
概念回顾 回顾下JDBC的概念: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它 ...
- xamarin.forms之使用CarouselView插件模仿网易新闻导航
在APP中基本都能见到类似网易.今日头条等上边横向导航条,下边是左右滑动的页面,之前做iOS的时候模仿实现过,https://github.com/ywcui/ViewPagerndicator,在做 ...