• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >windows > CentOS Bind DNS自动化部署

CentOS Bind DNS自动化部署

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含centos bind部署,centos bind,centos安装bind,centos 7 bind,bind dns等服务器相关知识,网友希望可以进行参考

最近研究DNS主从服务,也是参考了很多文章,这里记录一下,方便大家少走弯路,DNS服务可以算是Linux服务中比较难的一个了,尤其是配置文件书写,少一个字符都有可能造成错误。

那什么是DNS呢?简单的说就是完成域名到IP的解析过程。简洁的域名能让人们更方便记忆,不需要记那么长的IP访问某一个网站。

DNS解析过程到底是怎样的呢?

第一步:客户机访问某个网站,请求域名解析,首先查找本地HOST文件,如果有对应域名、IP记录,直接返回给客户机。如果没有则将该请求发送给本地的域名服务器:

第二步:本地DNS服务器能够解析客户端发来的请求,服务器直接将答案返回给客户机。

第三步:本地DNS服务器不能解析客户端发来的请求,分为两种解析方法

1、采用递归解析:本地DNS服务器向根域名服务器发出请求,根域名服务器对本地域名服务的请求进行解析,得到记录再给本地DNS服务器,本地DNS服务器将记录缓存,并将记录返给客户机。

2、采用迭代解析:本地DNS服务器向根域名服务器发出请求,根域名服务器返回给本地域名服务器一个能够解析请求的根的下一级域名服务器的地址,本地域名服务器在向根返回的IP地址发出请求,最终得到域名解析记录。

如上只是简单介绍了一下DNS相关知识,言归正传,如下通过脚本自动安装并添加域名解析,脚本可以根据自己的需求修改:脚本适用于CentOS x86_64 5.8系列)

#!/bin/sh
#auto install config bind server
#wugk 2013-08-28
#定义变量
BND_ETC=/var/named/chroot/etc
BND_VAR=/var/named/chroot/var/named
BAK_DIR=/data/backup/dns_`date +%Y%m%d-%H%M`
##Backup named server
if
      [ ! -d  $BAK_DIR ];then
      echo "Please waiting  Backup Named Config ............"
      mkdir   -p  $BAK_DIR
      cp -a  /var/named/chroot/{etc,var}   $BAK_DIR
      cp -a  /etc/named.* $BAK_DIR
fi
##Define Shell Install Function
Install ()
{
  if
     [ ! -e /etc/init.d/named ];then
     rpm -e --nodeps bind-utils
     rpm -e --nodeps bind-libs
     rpm -e --nodeps bind
     rpm -e bind-chroot
     rpm -e caching-nameserver
     rpm -ivh --nodeps  bind-9.3.6-20.P1.el5_8.6.x86_64.rpm  bind-chroot-9.3.6-20.P1.el5_8.6.x86_64.rpm    bind-libs-9.3.6-20.P1.el5_8.6.x86_64.rpm  bind-utils-9.3.6-20.P1.el5_8.6.x86_64.rpm   caching-nameserver-9.3.6-20.P1.el5_8.6.x86_64.rpm
                                                    
else
     echo -------------------------------------------------
     echo "The Named Server is exists ,Please exit ........."
     sleep 1
 fi
}
##Define Shell Init Function
Init_Config ()
{
       cd $BND_ETC ;ls ./*
       cp   -p  named.caching-nameserver.conf named.conf
       sed  -i -e 's/localhost;/any;/g' -e '/port/s/127.0.0.1/any/g' named.conf
       echo -------------------------------------------------
       sleep 2
       echo "The named.conf config Init success !"
}
##Define Shell Add Name Function
Add_named ()
{
##DNS name
       read -p  "Please  Insert Into Your Add Name ,Example 51cto.com :" NAME
       echo $NAME |grep -E "com|cn|net|org"
                                                         
       while
        [ "$?" -ne 0 ]
                                                           
         do
        read -p  "Please  reInsert Into Your Add Name ,Example 51cto.com :" NAME
        echo $NAME |grep -E "com|cn|net|org"
                                                          
     done
## IP address
       read -p  "Please  Insert Into Your Name Server IP ADDress:" IP
       echo $IP |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
       while
       [ "$?" -ne "0" ]
                                                         
        do
        read -p  "Please  reInsert Into Your Name Server IP ADDress:" IP
       echo $IP |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
      done
       ARPA_IP=`echo $IP|awk -F. '{print $3"."$2"."$1}'`
       ARPA_IP1=`echo $IP|awk -F. '{print $4}'`
       cd  $BND_ETC
       grep  "$NAME" named.rfc1912.zones
                                                        
if
         [ $? -eq 0 ];then
         echo "The $NAME IS exist named.rfc1912.zones conf ,please exit ..."
         exit
else
        read -p  "Please  Insert Into SLAVE Name Server IP ADDress:" SLAVE
                                                        
        echo $SLAVE |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
        while
                                                   
        [ "$?" -ne "0" ]
        do
        read -p  "Please  Insert Into SLAVE Name Server IP ADDress:" SLAVE
        echo $SLAVE |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
        done
        grep  "rev" named.rfc1912.zones
                                                   
       if
         [ $? -ne 0 ];then
       cat >>named.rfc1912.zones <<EOF
#`date +%Y-%m-%d` Add $NAME CONFIG
zone "$NAME" IN {
        type master;
        file "$NAME.zone";
        allow-transfer { $SLAVE; };
        also-notify { $SLAVE; };
        allow-update { none; };
};
zone "$ARPA_IP.in-addr.arpa" IN {
        type master;
        file "$ARPA_IP.rev";
        allow-transfer { $SLAVE; };
        also-notify { $SLAVE; };
        allow-update { none; };
};
EOF
      else
       cat >>named.rfc1912.zones <<EOF
#`date +%Y-%m-%d` Add $NAME CONFIG
zone "$NAME" IN {
        type master;
        file "$NAME.zone";
        allow-transfer { $SLAVE; };
        also-notify { $SLAVE; };
        allow-update { none; };
};
EOF
    fi
fi
       [ $? -eq 0 ]&& echo "The $NAME config name.rfc1912.zones success !"
       sleep 3 ;echo "Please waiting config $NAME zone File ............."
       cd  $BND_VAR
                                                         
       read -p "Please insert Name DNS A HOST ,EXample  www or mail :" HOST
       read -p "Please insert Name DNS A NS IP ADDR ,EXample 192.168.111.130 :" IP_HOST
       echo $IP_HOST |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
       ARPA_IP2=`echo $IP_HOST|awk -F. '{print $3"."$2"."$1}'`
       ARPA_IP3=`echo $IP_HOST|awk -F. '{print $4}'`
       while
       [ "$?" -ne "0" ]
do
                                                         
       read -p "Please Reinsert Name DNS A IPADDRESS ,EXample 192.168.111.130 :" IP_HOST
       echo $IP_HOST |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}"
done
       cat >$NAME.zone <<EOF
\$TTL    86400
@               IN SOA  localhost.      root.localhost. (
                                        43              ; serial (d. adams)
                                        1H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN  NS          $NAME.
EOF
                                                        
       REV=`ls  *.rev`
       ls  *.rev >>/dev/null
                                                     
if
       [ $? -ne 0 ];then
       cat >>$ARPA_IP.rev <<EOF
\$TTL    86400
@       IN      SOA     localhost.    root.localhost.  (
                                      1997022703 ; Ser
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • CentOS Bind DNS自动化部署

相关文章

  • Windows下的Memcache安装与测试教程
  • 搭建基于Corosync+DRBD的高可用MySQL集群
  • 一个合格的DBA必须会的技术,不得不看!
  • liunx基本命令(进程的学习)
  • xampp修改mysql默认密码详解
  • Windows 2003网络负载均衡的实现
  • 怎么修改windows2003服务器密码
  • Windows 2003中IIS不支持FLV视频文件
  • 【有奖征文】让运维更有“韵味”
  • Mysql 分区技术

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • 如何更改SQL Server 2008 R2的排序规则!
    • 华为云计算:只做基础架构云
    • 即时通讯开发平台AnyChat 的性能优势
    • vps配置Apache rewirte伪静态(支持.htaccess)
    • 教你小技巧让你玩转你的Windows Update功能
    • Hyper-V 虚拟网络技术之二
    • 企业shell脚本分析及切割apache日志实战
    • liunx中(mysql数据库的使用)
    • 不需手动锁表同步mysql数据库
    • nginx的实践总结一

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有