<![CDATA[Latest posts for the topic "Cấu hình BIND"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Cấu hình BIND Phần I: Các zone files Nguồn: http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch18_:_Configuring_DNS Bắt đầu: Ghi nhớ những điểm sau trước khi cấu hình: + Trong tất cả các zone files bạn có thể chú thích ở cuối dòng bằng cách chèn vào 1 dấu ";" sau đó là đoạn text bạn muốn comment + Theo mặc định thì các zone files sẽ nằm trong /var/named, hoặc /var/named/chroot/var/named + Mỗi zone file sẽ chứa đựng nhiều loại bản ghi khác nhau: SOA, NS, MX, A, CNAME, chúng quản lý những vùng khác nhau của BIND Time to live Entry đầu tiên trong zone file luôn luôn là: thời gian sống của zone (TTL). Mục đích của TTL là làm giảm số lượng các DNS queries mà DNS server phải trả lời. Nếu bạn set TTL là 3 ngày, thì caching servers sẽ sử dụng những response gốc được lưu trước đó 3 ngày, trước khi tạo query mới. Các hậu tố bạn có thể dùng ở đây là: D (ngày), W (tuần), H (giờ). Các bản ghi DNS Các bản ghi BIND định nghĩa thuộc tính của DNS trong các zone files của bạn, chúng được hiện diện để query DNS clients. Định dạng của chúng như sau:
Name Class Type Date 
Có những loại bản ghi khác nhau như: mail (MX), forward lookups(A), reverse loopups (PTR), aliases (CNAME), và các định nghĩa zone toàn thể, Start Of Authority (SOA). Phần dữ liệu được định dạng theo sau mỗi loại bản ghi có thể bao gồm 1 vài giá trị cách nhau bởi khoảng trắng. Bản ghi SOA: chứa đựng thông tin quản trị chung và những kiểm soát về domain. Bản ghi này có định dạng:
Name Class Type Name-Server Email-Address Serial-No Refresh Retry Expiry Minimum-TTL 
Để cho dễ nhìn bạn có thể xuống dòng, hoặc chèn vào 2 dấu ngoặc đơn ( ) ở đầu và cuối của đoạn thông tin bắt đầu xuống dòng. Bạn cũng có thể chèn chú thích sau dấu dấu ; Định dạng bản ghi SOA Name: tên gốc của zone. Ký tự @ tham chiếu đến zone gốc hiện tại trong /etc/named.conf Class: IN hoặc Internet - định nghĩa địa chỉ IP khi map thông tin trong BIND. Các classes khác dành cho các giao thức non-internel và hiếm khi được sử dụng Type: loại bản ghi DNS Name-server: tên đầy đủ của name server chính của bạn. Email-address: Địa chỉ email của người quản trị name server. Serial-no: một số serial cho cấu hình hiện tại. bạn có thể dùng định dạng ngày tháng YYYYMMDD, theo sau là 1 chữ số. Refresh: Khoảng thời gian mà slave DNS server sẽ check master DNS Server. Retry: Khoảng thời gian Slave sẽ thử kết nối lại đến master sau khi bị lỗi Expiry: Tổng khoảng thời gian slave nên thử lại để contact đến master trước khi data bị expired. Minimum-TTL: Khi client tạo một query khôgn tồn tại trong sub domain, DNS server của bạn sẽ response là NXDOMAIN. Giá trị này định nghĩa thời lượng caching DNS của bạn bao gồm reponse đó. Bản ghi NS, MX, A, và CNAME Các bản ghi này có định dạng tương tự như SOA NS: địa chỉ IP hoặc CNAME của name server MX: tên mail server DNS A: IP address của server CNAME: tên bí danh của server PTR: tên server đầy đủ khi phân giải ngược từ 1 địa chỉ IP + Nếu một key là trống, nó sẽ dùng lại key của bản ghi liền trước + Với phần lớn home / SOHO (Small Office / Home Office), class luôn luôn là IN hoặc Internet TXT Record (ít dùng): được sử dụng để cấu hình các thông tin chung. Phần dữ liệu của bản ghi này thông thường có định dạng: "name-value", với name là tên loại dữ liệu, value là giá trị được gán cho tên:
my-web-site.org. TXT "v=spf1 -all" 
Ví dụ Sau khi đã đọc, hiểu rõ về ý nghĩa của từng tham số, cũng như chức năng của các bản ghi trong 1 zone file của BIND, việc cấu hình lúc này chắc hẳn sẽ dễ dàng hơn. Lấy ví dụ với một cấu hình DNS cho domain quanta-site.com, có thể query từ bất kỳ máy nào trong LAN: + Trong /etc/named.conf, bạn chỉ cần thêm vào 2 zones: Code:
zone "1.168.192.IN-ADDR.ARPA" IN {
	type master;
	file "1.168.192.db";
};

zone "quanta-site.com" IN {
	type master;
	file "quanta-site.com.db";
};
+ Zone file 1.168.192.db nằm trong /var/named Code:
$TTL 86400
@       IN      SOA     quanta-site.com. root.quanta-site.com. (
                        2007121801 ; serial
                        4H 		  ; refresh
                        1H 		  ; retry
                        1W 		 ; expire
                        1D 		  ; minimum
                        )


@       IN      NS      quanta-site.com.

1       IN      PTR     one.quanta-site.com.
2       IN      PTR     two.quanta-site.com.
+ Zone file quanta-site.com.db nằm trong /var/named Code:
$TTL 86400
@       IN      SOA     quanta-site.com.  root.quanta-site.com. (
                        2007121802  ; serial
                        8H                 ; refresh, seconds
                        2H                 ; retry, seconds
                        4W                ; expire, seconds
                        1D                ; minimum, seconds
                        )
@       IN     NS      quanta-site.com.

	 IN	A 	   192.168.1.1
ftp     IN	A	   192.168.1.3
+ Khởi động lại BIND named daemon: Code:
# /etc/init.d/named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
+ Chỉ định DNS server trong file /etc/resolv.conf:
nameserver 192.168.1.3 nameserver 127.0.0.1  
+ Thử một vài queries xem sao:
# ping -c 3 quanta-site.com PING quanta-site.com (192.168.1.1) 56(84) bytes of data. 64 bytes from one.quanta-site.com (192.168.1.1): icmp_seq=1 ttl=64 time=0.876 ms 64 bytes from one.quanta-site.com (192.168.1.1): icmp_seq=2 ttl=64 time=0.880 ms 64 bytes from one.quanta-site.com (192.168.1.1): icmp_seq=3 ttl=64 time=0.871 ms --- quanta-site.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2000ms rtt min/avg/max/mdev = 0.871/0.875/0.880/0.034 ms  
# host quanta-site.com quanta-site.com has address 192.168.1.1  
# host 192.168.1.1 1.1.168.192.in-addr.arpa domain name pointer one.quanta-site.com.  
Code:
# nslookup quanta-site.com
Server:         192.168.1.3
Address:        192.168.1.3#53

Name:   quanta-site.com
Address: 192.168.1.1
Code:
# nslookup 192.168.1.1
Server:         192.168.1.3
Address:        192.168.1.3#53

1.1.168.192.in-addr.arpa        name = one.quanta-site.com.
Trên đây chỉ là ví dụ cho một cấu hình đơn giản. CHÚC CÁC BẠN THÀNH CÔNG.]]>
/hvaonline/posts/list/17448.html#104747 /hvaonline/posts/list/17448.html#104747 GMT
Re: Cấu hình các zone files trong BIND $TTL 86400 @ IN SOA ns1.mysite.com. hostmaster.mysite.com. ( 2007121601 ; serial, todays date + todays serial # 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS ns1.mysite.com. NS ns2.mysite.com. 123 PTR test123.com. 123 PTR www.test123.com.   file named.conf và 1.168.192.IN-ADDR.ARPA có mối quan hệ gì không?]]> /hvaonline/posts/list/17448.html#104749 /hvaonline/posts/list/17448.html#104749 GMT Re: Cấu hình các zone files trong BIND Đọc kỹ đường link trong bài viết trên của tớ đi. Trang đó có nói khá đầy đủ.

azteam wrote:
Bác nói thêm về Zone: 1.168.192.IN-ADDR.ARPA . Nó có gì đặc biệt?.  
1.168.192.IN-ADDR.ARPA là một Reverse Zone (phân biệt với forward zone), nó có chức năng phân giải ngược từ địa chỉ IP ra domain. Reverse zone này sử dụng một reverse zone file có tên là 1.168.192.db nằm trong /var/named. Với ví dụ trên của tớ, nếu bạn chạy Code:
host 192.168.1.2
sẽ nhận được kết quả sau:
$ host 192.168.1.2 2.1.168.192.in-addr.arpa domain name pointer two.quanta-site.com.  
Một điều lưu ý là: Trong reverse zone chỉ tồn tại 2 loại bản ghi: PTR và NS và bản ghi PTR cũng không thể có một bí danh CNAME.

azteam wrote:
Em thường thấy sau khi add site vào thì trong zone 1.168.192.IN-ADDR.ARPA nó thường có dạng:
$TTL 86400 @ IN SOA ns1.mysite.com. hostmaster.mysite.com. ( 2007121601 ; serial, todays date + todays serial # 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS ns1.mysite.com. NS ns2.mysite.com. 123 PTR test123.com. 123 PTR www.test123.com.  
 
Không riêng gì 1.168.192.db, tất cả mọi zone files đều có định dạng tương tự như thế.

azteam wrote:
file named.conf và 1.168.192.IN-ADDR.ARPA có mối quan hệ gì không? 
named.conf là file cấu hình chính của BIND, nó chứa các options, các Access Control List, các internal view, external view, các zones ... 1.168.192.IN-ADDR.ARPA là một reverse zone nằm trong file cấu hình đó, hiển nhiên là chúng có mối quan hệ với nhau rồi. Để hiểu rõ hơn bạn thử bỏ zone đó trong /etc/named.conf đi xem sao. Sau đó restart named: Code:
# /etc/init.d/named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
Thử thực hiện forward lookup: Code:
# host quanta-site.com
quanta-site.com has address 192.168.1.1
Bây giờ thử reverse lookup:
# host 192.168.1.1 Host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)  
hoặc:
# nslookup 192.168.1.1 Server: 192.168.1.3 Address: 192.168.1.3#53 ** server can't find 1.1.168.192.in-addr.arpa.: NXDOMAIN  
]]>
/hvaonline/posts/list/17448.html#104750 /hvaonline/posts/list/17448.html#104750 GMT
Re: Cấu hình các zone files trong BIND PTR: tên đầy đủ của server   Nói chính xác thì PTR (Point Record ) là một loại bản ghi (Record). Một bản ghi PTR thực hiện việc ánh xạ một địa chỉ IP đến một tên miền. Ex: 1.168.192.in-addr. arpa IN PTR mail.quanta-site.com in-addr. arpa và . arpa là các mức cao nhất trong không gian tên và miền ngược. Vì thế mọi tên miền ngược đều có đuôi là .in-addr.arpa. PTR có thể nói khá quan trọng đặc biệt trong việc sử dụng email, rất nhiều trường hợp không gửi được email cho các email đuôi @fpt, @viettel, @vnn ... là do server của các hosting provider chưa được add PTR. Một vài ý kiến nhỏ.]]> /hvaonline/posts/list/17448.html#104763 /hvaonline/posts/list/17448.html#104763 GMT Re: Cấu hình các zone files trong BIND

azteam wrote:
Thanks bác. Bài viết của bác khá đầy đủ. Tuy nhiên có chỗ chưa thật chính xác:
PTR: tên đầy đủ của server  
Nói chính xác thì PTR (Point Record ) là một loại bản ghi (Record). Một bản ghi PTR thực hiện việc ánh xạ một địa chỉ IP đến một tên miền. Ex: 1.168.192.in-addr. arpa IN PTR mail.quanta-site.com in-addr. arpa và . arpa là các mức cao nhất trong không gian tên và miền ngược. Vì thế mọi tên miền ngược đều có đuôi là .in-addr.arpa. PTR có thể nói khá quan trọng đặc biệt trong việc sử dụng email, rất nhiều trường hợp không gửi được email cho các email đuôi @fpt, @viettel, @vnn ... là do server của các hosting provider chưa được add PTR. Một vài ý kiến nhỏ. 
Cảm ơn azteam Thật ra thì chỗ đó tớ muốn nói đến: "mình sẽ điền cái gì cho PTR trong 1 zone file" chứ không nhằm "giải thích ý nghĩa, chức năng của bản ghi PTR". Tớ đã chỉnh lại cho đúng hơn. ]]>
/hvaonline/posts/list/17448.html#104804 /hvaonline/posts/list/17448.html#104804 GMT
Re: Cấu hình BIND Phần II: Sử dụng rndc Tham khảo từ: http://www.redhat.com/docs/manuals/linux/RHL-7.2-Manual/ref-guide/s1-bind-rndc.html BIND có một tiện ích gọi là rndc, nó cho phép bạn quản lý named daemon, locally hay remotely bằng các dòng, khối lệnh. rndc sử dụng file /etc/rndc.conf cho các tuỳ chọn cấu hình. Đầu tiên bạn tạo một key bằng lệnh dnssec-keygen: Code:
$ dnssec-keygen -a hmac-md5 -b 256 -n HOST rndckey
Krndckey.+157+17600
Lệnh này tạo ra 2 file .key.private Code:
$ ls | grep Krndckey.+157+17600.
Krndckey.+157+17600.key
Krndckey.+157+17600.private
Bạn tạo một file /etc/rndc.key như sau: Code:
key "rndckey" {
	algorithm hmac-md5;
	secret "ImNbiXwheU5S2/m2ZvmYbKC4iJTfPDwxoTr6GE+0UAs=";
};
Phần dữ liệu cho secret bạn copy từ 1 trong 2 file keys vừa tạo ra
$ cat Krndckey.+157+17600.private Private-key-format: v1.2 Algorithm: 157 (HMAC_MD5) Key: ImNbiXwheU5S2/m2ZvmYbKC4iJTfPDwxoTr6GE+0UAs= Bits: AAA=  
/etc/named.conf Để rndc có thể kết nối đến named service, trong /etc/named.conf, bạn cần đặt một khối lệnh controls trước khi named khởi động, ví dụ: Code:
controls {
	inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
Khối lệnh này sẽ báo cho named biết để lắng nghe trên cổng TCP mặc định là 953 của địa chỉ loopback và cho phép rndc chạy trên localhost, nếu một key chính xác được gửi. Khối lệnh key trong /etc/named.conf (có thể copy từ /etc/rndc.key) Code:
key "rndckey" {
	algorithm hmac-md5;
	secret "ImNbiXwheU5S2/m2ZvmYbKC4iJTfPDwxoTr6GE+0UAs=";
};
Hoặc đơn giản hơn, bạn dùng lệnh:
include "/etc/rndc.key"; 
Ở đây, thuật toán mã hoá là HMAC-MD5 rndc.conf Để cấu hình rndc tự động sử dụng key được xác định trong /etc/named.conf cho localhost, bạn cần 3 khối lệnh trong /etc/rndc.conf options cho phép bạn gán server mặc định, và key cho rndc sử dụng: Code:
options {
        default-key "rndckey";
        default-server 127.0.0.1;
        default-port 953;
};
servers: liệt kê các name server: Code:
server localhost {
        key "rndckey";
};
key là khối lệnh quan trọng nhất trong /etc/rndc.conf
include "/etc/rndc.key"; 
Để test tất cả các phần cấu hình vừa rồi bạn có thể chạy rndc reload, nếu thành công, bạn sẽ nhìn thấy thông báo sau:
server reload successful 
Nếu không hãy xem lại /etc/named.conf/etc/rndc.conf Các tùy chọn có thể dùng với rndc halt: dừng dịch vụ named ngay lập tức querylog: bật logging cho tất cả các queries từ clients đến nameserver refresh: refresh lại database của nameserver reload: load lại các zone files nhưng giữ nguyên các cached reponses. stats: dumps named hiện tại vào file /var/named/named.stats stop: dừng server, save lại trước khi thoát Chạy rndc với các cấu hình không phải là mặc định -c: sử dụng file cấu hình khác, không phải là /etc/rndc.conf -p: thay đổi cổng mặc định (953) -s: cho rndc biết để gửi lệnh đến 1 server khác, không phải là server mặc định trong /etc/rndc.conf. Theo đó, bạn phải cấu hình named service khác để chấp nhận những lệnh từ host của bạn và có key cho nameservice -y: cho phép dùng key khác, không phải là key mặc định trong /etc/rndc.conf ]]>
/hvaonline/posts/list/17448.html#106118 /hvaonline/posts/list/17448.html#106118 GMT
Re: Cấu hình BIND

xevathethao wrote:
to Quanta

quanta wrote:
Một điều lưu ý là: Trong reverse zone chỉ tồn tại 2 loại bản ghi: PTR và NS và bản ghi PTR cũng không thể có một bí danh CNAME.  
Mới đọc lướt qua bài này nhưng đã thấy một số sai lầm cơ bản.. cần phải sửa chữa tránh cho các bạn đọc hiểu sai căn bản. Thứ nhất: Trong Reverse Zone vẫn tồn tại dạng bạn ghi CNAME, ở bài này bạn mới viết một phần nhỏ đơn giản của Reverse đó là thực hiện cho ClassFull [ Class C 256 adds ] .. Khi thực hiện Subnet [delegate classless ] thì Reverse Zone phải thực hiện ALIAS [ CNAME ] cho các subnet con. Ví dụ Máy chủ A lưu trữ Reverse của CLass C 0/24 , bây giờ máy chủ A se chuyển giao 1 subnet 0/26 trong Class 0/24 cho máy chủ B khai báo khi đó se phải sử dụng kiểu CNAME để chuyển giao: Minh họa: Giả sử có Class C : 203.162.1.0/24 Trong File Zone se có thêm khai báo của subnet như sau
$ORIGIN . $TTL 86400 ; 1 day 1.162.203.in-addr.arpa IN SOA ..... ( 2008121124 ; serial 10800 ; refresh (3 hours) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) )  
// Phần subnet
$ORIGIN 1.162.203.in-addr.arpa. ; Chuyển giao zone 0-26 cho máy chủ B 0-26 NS Tên máy chủ DNS B 1 CNAME 1.0-26 2 CNAME 2.0-26 . . 64 CNAME 64.0-26  
 
Chào xevathethao Trước hết cho tớ giải thích một chút (sợ mọi người hiểu nhầm): Bài dịch này được tranvanminh dời vào box "Các bài viết giá trị về hệ điều hành...". Tớ xin được dời lại nó vào box *nix để mọi người có thể thảo luận thêm. Quay trở lại phần góp ý của bạn, xin bạn lưu ý cho đoạn tớ viết:

quanta wrote:
Một điều lưu ý là: Trong reverse zone chỉ tồn tại 2 loại bản ghi: PTR và NS và bản ghi PTR cũng không thể có một bí danh CNAME.  
tức là trong bản ghi PTR không thể dùng bí danh (CNAME). ]]>
/hvaonline/posts/list/17448.html#108391 /hvaonline/posts/list/17448.html#108391 GMT
Cấu hình BIND /hvaonline/posts/list/17448.html#261170 /hvaonline/posts/list/17448.html#261170 GMT Cấu hình BIND Code:
options {
	listen-on port 53 { 127.0.0.1; };
	listen-on-v6 port 53 { ::1; };
	directory 	"/var/named";
	dump-file 	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";

	// Those options should be used carefully because they disable port
	// randomization
	// query-source    port 53;	
	// query-source-v6 port 53;

	allow-query     { any; };
	allow-query-cache { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
	match-clients 	   { localhost; };
	match-destinations { localhost; };
	recursion yes;
	include "/etc/named.rfc1912.zones";
};
Code:
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package 
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "." IN {
	type hint;
	file "named.ca";
};

zone "localdomain" IN {
	type master;
	file "localdomain.zone";
	allow-update { none; };
};

zone "localhost" IN {
	type master;
	file "localhost.zone";
	allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
	type master;
	file "named.local";
	allow-update { none; };
};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
	file "named.ip6.local";
	allow-update { none; };
};

zone "255.in-addr.arpa" IN {
	type master;
	file "named.broadcast";
	allow-update { none; };
};

zone "0.in-addr.arpa" IN {
	type master;
	file "named.zero";
	allow-update { none; };
};

zone "my-domain.com" IN {
	type master;
	allow-query { any; };
	file "my-domain.com.db";
};

zone "XXX.YYY.ZZZ.IN-ADDR.ARPA" {
	type master;
	allow-query { any; };
	file "XXX.YYY.ZZZ.db";
};
my-domain.com.db Code:
$TTL 604800
@   IN  SOA my-domain.com. www.my-domain.com. (
      2000072802 ; serial
      28800 ; refresh
      7200 ; retry
      3600000 ; expire
      86400 ; default_ttl
      )
@   IN  NS      ns1.my-domain.com
ns1.my-domain.com. IN A ZZZ.YYY.XXX.188
@   IN  NS    	ns2.my-domain.com
ns2.my-domain.com. IN A ZZZ.YYY.XXX.189
my-domain.com.              IN  A ZZZ.YYY.XXX.188
www.my-domain.com.          IN  A ZZZ.YYY.XXX.188
XXX.YYY.ZZZ.db Code:
$TTL 86400
@       IN      SOA     my-domain.com. www.my-domain.com. (
                        2007121801 ; serial
                        4H 		  ; refresh
                        1H 		  ; retry
                        1W 		 ; expire
                        1D 		  ; minimum
                        )

@       IN      NS      ns1.my-domain.com.
@       IN      NS      ns2.my-domain.com.

188       IN      PTR     my-domain.com.
188       IN      PTR     www.my-domain.com.
188	  IN 	  PTR 	  ns1.my-domain.com.
189	  IN	  PTR 	  ns2.my-domain.com.
Thử nghiệm: Code:
$ host www.my-domain.com.
www.my-domain.com. has address ZZZ.YYY.XXX.188
$ nslookup ZZZ.YYY.XXX.188
Server:		127.0.0.1
Address:	127.0.0.1#53

188.XXX.YYY.ZZZ.in-addr.arpa	name = ns1.my-domain.com.
188.XXX.YYY.ZZZ.in-addr.arpa	name = www.my-domain.com.
188.XXX.YYY.ZZZ.in-addr.arpa	name = my-domain.com.
Mất cả một đêm mà em chẳng làm xong cái này :|. Cái này khó thấm quá.]]>
/hvaonline/posts/list/17448.html#261171 /hvaonline/posts/list/17448.html#261171 GMT
Cấu hình BIND /hvaonline/posts/list/17448.html#264822 /hvaonline/posts/list/17448.html#264822 GMT