امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
ایجاد zone فایل برای bind
نویسنده پیام
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #1
ایجاد zone فایل برای bind
سلام
همونطور که میدونید BIND مشهور ترین سرویس DNS تحت لینوکس هست!
توس این برنامه میتونید یک zone برای سایتتون بسازید و از کلی زحمت راحت بشن:

کد: (نام فایل mkzone.sh)

کد php:
#!/bin/bash
# A Bash shell script to create BIND ZONE FILE.
# Tested under BIND 8.x / 9.x, RHEL, DEBIAN, Fedora Linux.
# -------------------------------------------------------------------------
# Copyright (c) 2002,2009 Vivek Gite <vivek@nixcraft.com>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
# Examples:
# ./mkzone.sh example.com default-www-IP-address
# ./mkzone.sh cyberciti.biz 74.12.5.1
# -------------------------------------------------------------------------
# Last updated on: Mar/24/2007 - Fixed a few bugs.
# -------------------------------------------------------------------------
DOMAIN="$1"
WWWIP="$2"
 
if [ $# -le 1 ]
then
echo "Syntax: $(basename $0) domainname www.domain.ip.address [profile]"
echo "$(basename $0) example.com 1.2.3.4"
exit 1
fi
 
# get profile
PROFILE="ns.profile.nixcraft.net"
"$3" != "" ] && PROFILE="$3"
 
SERIAL=$(date +"%Y%m%d")01 # Serial yyyymmddnn
 
# load profile
source "$PROFILE"
 
# set default ns1
NS1=${NAMESERVERS[0]}
 
###### start SOA ######
echo "\$ORIGIN ${DOMAIN}."
echo "\$TTL ${TTL}"
echo "@ IN SOA ${NS1} ${EMAILID}("
echo ${SERIAL} ; Serial yyyymmddnn"
echo ${REFRESH} ; Refresh After 3 hours"
echo ${RETRY} ; Retry Retry after 1 hour"
echo ${EXPIER} ; Expire after 1 week"
echo ${MAXNEGTIVE}) ; Minimum negative caching of 1 hour"
echo ""
 
###### start Name servers #######
# Get length of an array
tLen=${#NAMESERVERS[@]}
 
# use for loop read all nameservers
echo "; Name servers for $DOMAIN"
for (( i=0i<${tLen}; i++ ));
do
echo 
"@ ${ATTL} IN NS ${NAMESERVERS[$i]}"
done
 
###### start MX section #######
# get length of an array
tmLen=${#MAILSERVERS[@]}
 
# use for loop read all mailservers
echo "; MX Records"
for (( i=0i<${tmLen}; i++ ));
do
echo 
"@ ${ATTL} IN MX $(( 10*${i} + 10 )) ${MAILSERVERS[$i]}"
done
 
 
###### start A pointers #######
# A Records - Default IP for domain
echo '; A Records'
echo "@ ${ATTL} IN A ${WWWIP}"
 
# Default Nameserver IPs
# get length of an array
ttLen=${#NAMESERVERSIP[@]}
 
# make sure both nameserver and their IP match
if [ $tLen -eq $ttLen ]
then
# use for loop read all nameservers IPs
for (( i=0i<${ttLen}; i++ ));
do
thisNs="$(echo ${NAMESERVERS[$i]} | cut -d'.' -f1)"
 
echo "${thisNs} ${ATTL} IN A ${NAMESERVERSIP[$i]}"
done
else
# if we are here means, our nameserver IPs are defined else where else... do nothing
:
fi
 
echo "; CNAME Records"
echo "www ${ATTL} IN CNAME @" 


فایل تنظیماتش: (با نام ns.profile.nixcraft.net )

کد php:
# defaults profile for nameserver ns1.nixcraft.net
    #
    
TTL="3h" # Default TTL
    
ATTL="3600"    # Default TTL for each DNS rec
    
EMAILID="vivek.nixcraft.in." # hostmaster email
    
REFRESH="3h" # Refresh After 3 hours
    
RETRY="1h" # Retry Retry after 1 hour
    
EXPIER="1w"    # Expire after 1 week
    
MAXNEGTIVE="1h"    # Minimum negative caching of 1 hour
     
    # name server names FQDN
    
NAMESERVERS=("ns1.nixcraft.net." "ns2.nixcraft.net." "ns3.nixcraft.net.")
     
    
# name server IPs,
    # leave it blank if you don't need them as follows
    
NAMESERVERSIP=()
    
#NAMESERVERSIP=("202.54.1.10" "203.54.1.10" "204.54.1.40")
     
    # mail server names
    # leave it blank if you don't need them
    
MAILSERVERS=("mail.nixcraft.net.")
    
#MAILSERVERS=("smtp1.nixcraft.net." "smtp2.nixcraft.net.")
     
    ################# add your own A recored here ##########################
    # You can add additonal A recs using following function
    
function LoadCutomeARecords(){
    echo >/
dev/null # keep this line
    # Uncomment or add A recoreds as per your requirments
    # echo "ftp $ATTL IN A 202.54.2.2"
    # echo "webmail $ATTL IN A 202.54.2.5"
    # echo "ipv6host $ATTL IN AAAA 2001:470:1f0e:c2::1"
    




مثال:

کد php:
# ./mkzone.sh cyberciti.com 202.54.1.2 ns.profile.nixcraft.net 

خروجی

کد:
$ORIGIN cyberciti.com.
$TTL 3h
@    IN    SOA    ns1.nixcraft.net.    vivek.nixcraft.in.(
            2009032401    ; Serial yyyymmddnn
            3h        ; Refresh After 3 hours
            1h        ; Retry Retry after 1 hour
            1w        ; Expire after 1 week
            1h)        ; Minimum negative caching of 1 hour
; Name servers for cyberciti.com
@            3600    IN    NS    ns1.nixcraft.net.
@            3600    IN    NS    ns2.nixcraft.net.
@            3600    IN    NS    ns3.nixcraft.net.
; MX Records
@            3600    IN     MX    10    mail.nixcraft.net.
; A Records
@             3600    IN     A    202.54.1.2
; CNAME Records
www            3600    IN    CNAME    @

وبعد این فایل رو باید به bind معرفی کنید! همین!!!!!!!
زنده باد لینوکس Heart Biggrin

منبع
(آخرین ویرایش در این ارسال: ۲۵-اردیبهشت-۱۳۹۲, ۲۱:۰۳:۵۱، توسط babyy.)
۲۵-اردیبهشت-۱۳۹۲, ۲۱:۰۳:۲۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, omid_phoenix, lord_viper, Ambassador


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS