Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104574584
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-02 23:17:08

  出处:Unix爱好者家园unix-cd.com   
TITLE: BIND 
LFS VERSION: 3.0-pre4 
AUTHOR: Michenaud Laurent  

SYNOPSIS: 
How to set up a simple dns server with bind 

HINT: 
version 1.0beta1 
This hint explains how to set up bind on your lfs. 
I am not a bind specialist, what is written is what i 
have understood. Don\'t hesitate to correct it if you 
see mistakes or have optimizations. 


------------------------------------------------ 
1) Installation of bind 

tar zxvf bind-9.1.3.tar.gz 
cd bind-9.1.3 
./configure 
make 
make install 

cp doc/man/bin/*.1 /usr/man/man1 
cp doc/man/bin/*.5 /usr/man/man5 
cp doc/man/bin/*.8 /usr/man/man8 


The following configuration files are very simple. It allows you to have 
a dns server for your local network and allows you to use the dns 
server of your FAI when you\'re connected to internet. 

On this example, 
network address : 192.168.0.0 
domain name : zerezo.org 
machine host name : zarba 
machine ip : 192.168.0.51 

--------------------------------------------------- 
2) The main configuration file : /etc/named.conf 

;; Begin of file 

; General options 
options { 
auth-nxdomain yes; 
directory \"/var/named\"
forward first; 
forwarders { 
212.47.227.206; DNS of your FAI here 
212.47.227.207; 
}; 
}; 

; How to log 
logging { 
channel warning 

file \"/var/log/dns_warnings\" versions 3 size 100k; 
severity warning; 
print-category yes; 
print-severity yes; 
print-time yes; 
}; 
channel general_dns 

file \"/var/log/dns_logs\" versions 3 size 100k; 
severity info; 
print-category yes; 
print-severity yes; 
print-time yes; 
}; 
category default { warning; }  
category queries { general_dns; }  
}; 

; zone for access to Internet 
zone \".\" { 
type hint; 
file \"named.ca\"
}; 

; zone for access to localhost 
zone \"0.0.127.in-addr.arpa\" { 
type master; 
file \"named.local\"
}; 

; zone for access to your domain 
zone \"zerezo.org\" in { 
type master; 
notify no; 
file \"zerezo.org\"
}; 

; zone for access to your domain using ip 
zone \"0.168.192.in-addr.arpa\" in { 
type master; 
notify no; 
file \"db.192.168.0\"
}; 

;; End of file 


------------------------------------ 
3) Configuration files for each zone 

There is a configuration file of each zone defined in named.conf. 
These files are in /var/named . You have to create this directory. 

a) /var/named/named.ca 

This file is used when you are connected to internet. 
I got this file on internet. It seems rather old, maybe you 
can have a more recent one. 

; Begin of file 
; This file holds the information on root name servers needed to 
; initialize cache of Internet domain name servers 
; (e.g. reference this file in the \"cache . \" 
; configuration file of BIND domain name servers). 

; This file is made available by InterNIC registration services 
; under anonymous FTP as 
; file /domain/named.root 
; on server FTP.RS.INTERNIC.NET 
; -OR- under Gopher at RS.INTERNIC.NET 
; under menu InterNIC Registration Services (NSI) 
; submenu InterNIC Registration Archives 
; file named.root 

; last update: Aug 22, 1997 
; related version of root zone: 1997082200 


; formerly NS.INTERNIC.NET 

. 3600000 IN NS A.ROOT-SERVERS.NET. 
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 

; formerly NS1.ISI.EDU 

. 3600000 NS B.ROOT-SERVERS.NET. 
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 

; formerly C.PSI.NET 

. 3600000 NS C.ROOT-SERVERS.NET. 
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 

; formerly TERP.UMD.EDU 

. 3600000 NS D.ROOT-SERVERS.NET. 
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 

; formerly NS.NASA.GOV 

. 3600000 NS E.ROOT-SERVERS.NET. 
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 

; formerly NS.ISC.ORG 

. 3600000 NS F.ROOT-SERVERS.NET. 
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 

; formerly NS.NIC.DDN.MIL 

. 3600000 NS G.ROOT-SERVERS.NET. 
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 

; formerly AOS.ARL.ARMY.MIL 

. 3600000 NS H.ROOT-SERVERS.NET. 
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 

; formerly NIC.NORDU.NET 

. 3600000 NS I.ROOT-SERVERS.NET. 
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 

; temporarily housed at NSI (InterNIC) 

. 3600000 NS J.ROOT-SERVERS.NET. 
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 

; housed in LINX, operated by RIPE NCC 

. 3600000 NS K.ROOT-SERVERS.NET. 
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 

; temporarily housed at ISI (IANA) 

. 3600000 NS L.ROOT-SERVERS.NET. 
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 

; housed in Japan, operated by WIDE 

. 3600000 NS M.ROOT-SERVERS.NET. 
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 

; End of File 


b) /var/named/named.local 

You must have an alias postmaster that points to the user root 
or another one. 

; Begin of file 
$TTL 3D 
@ IN SOA zarba.zerezo.org. postmaster.zarba.zerezo.org. ( 
1999112002  
28800  
14400  
604800  
86400 ); 
NS zarba.zerezo.org. 
1 PTR localhost.  Adresse IP reverse 
; End of file 


c) /var/named/zerezo.org 

; Begin of file 
$TTL 3D 
@ IN SOA zarba.zerezo.org. postmaster.zarba.zerezo.org. ( 
1999112002  numero de serie 
28800  rafraichissement 
14400  nouvel essais 
604800  expiration 
86400 ); temps de vie minimum 

; NS = server de nom de domaine 
@ IN NS zarba 
@ IN NS zarba.zerezo.org. 

; MX = server de mail, numero = priorite 
@ IN MX 10 zarba 
@ IN MX 20 zarba.zerezo.org. 

; localt dns server 
@ IN A 127.0.0.1 
@ IN A 192.168.0.51 

; server IP 
localhost IN A 127.0.0.1 
zarba IN A 192.168.0.51 

; IP of others machines of the network 
karine IN A 192.168.0.52 
yaf IN A 192.168.0.7 

; aliases 
www IN CNAME zarba 
ftp IN CNAME zarba 
mail IN CNAME zarba 
; End of file 


d) /var/named/db.192.168.0 

; Begin of file 
$TTL 3D 
@ IN SOA zarba.zerezo.org. postmaster.zarba.zerezo.org. ( 
1999112002  numero de serie 
28800  rafraichissement 
14400  nouvel essais 
604800  expiration 
86400 ); temps de vie 

; nameserver 
IN NS zarba.zerezo.org. 

; IP Reverses adresses 
1 IN PTR zarba.zerezo.org. 
2 IN PTR karine.zerezo.org. 
3 IN PTR yaf.zerezo.org. 

; End of file 


------------------------ 
4) Configuration of rndc 

rndc is used to administrate bind. His developpment is not 
fisnished but i prefer to put it in this hint rather than 
the obsolete nslookup utility. 

a) Creation of a key 

You have to get a key so rndc can communicate with bind : 
dnssec-keygen -a hmac-md5 -b 128 -n user rndc 

It will create you two files. Get the values of the key in the .key one. 


b) /etc/rdnc.conf 

Create the file and edit the key please. 

; Begin of file 
options { 
default-server localhost; 
default-key rndc_key; 
}; 

server localhost { 
key rndc_key; 
}; 

key rndc_key { 
algorithm hmac-md5; 
secret \"Xd3zz2FgxvkML4V/BlVG8Q==\"
}; 
; End of file 


c) Edit again /etc/named.conf and add the following lines : 

key rndc_key { 
algorithm hmac-md5; 
secret 
\"Xd3zz2FgxvkML4V/BlVG8Q==\"
}; 

controls { 
inet 127.0.0.1 allow { localhost; } keys { rndc_key; }; 
}; 


--------------- 
5) /etc/init.d/named 

a) Here is the boot script

#!/bin/sh 
# Begin /etc/init.d/ 

# Include the functions declared in the /etc/init.d/functions file 


source /etc/init.d/functions 

case \"$1\" in 
start) 
echo -n \"Starting dns server...\" 
loadproc /usr/sbin/named 
;; 

stop) 
echo -n \"Stopping dns server...\" 
/usr/sbin/rndc stop 
evaluate_retval 
;; 

reload) 
echo -n \"Reloading dns server...\" 
/usr/sbin/rndc reload 
evaluate_retval 
;; 

restart) 
$0 stop 
/usr/sbin/sleep 1 
$0 start 
;; 

status) 
/usr/sbin/rndc status 
evalute_retval 
;; 

*) 
echo \"Usage: $0 {start|stop|reload|restart|status}\" 
exit 1 
;; 

esac 

# End /etc/init.d/ 


b) Create the links 

cd /etc/rc0.d 
ln -s ../init.d/named K600named 
cd /etc/rc1.d 
ln -s ../init.d/named K600named 
cd /etc/rc6.d 
ln -s ../init.d/named K600named 
cd /etc/rc3.d 
ln -s ../init.d/named S300named 
cd /etc/rc5.d 
ln -s ../init.d/named S300named 


-------------------------- 
6) Edit /etc/resolv.conf so it use your dns server 

search zerezo.org 
nameserver 192.168.0.51 


-------------------------- 
6) Test your configuration 

Some tests : 
dig -x 127.0.0.1 

if you have a ftp server : 
ftp ftp.zerezo.org 
ftp zarba.zerezo.org 

if you have apache, launch your browser and use as url : 



If problems, look at the logs /var/log/dns* and /var/log/sys.log 
阅读(721) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~