[Question] Cấu hình BIND |
19/12/2007 16:37:39 (+0700) | #1 | 104747 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
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. |
|
Let's build on a great foundation! |
|
|
|
[Question] Re: Cấu hình các zone files trong BIND |
19/12/2007 17:16:13 (+0700) | #2 | 104749 |
|
azteam
Member
|
0 |
|
|
Joined: 17/03/2007 21:12:46
Messages: 177
Location: /dev/null
Offline
|
|
Bác nói thêm về Zone: 1.168.192.IN-ADDR.ARPA . Nó có gì đặc biệt?.
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.
file named.conf và 1.168.192.IN-ADDR.ARPA có mối quan hệ gì không? |
|
|
|
|
[Question] Re: Cấu hình các zone files trong BIND |
19/12/2007 17:59:05 (+0700) | #3 | 104750 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
Đọ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:
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
|
|
Let's build on a great foundation! |
|
|
|
[Question] Re: Cấu hình các zone files trong BIND |
19/12/2007 23:51:11 (+0700) | #4 | 104763 |
|
azteam
Member
|
0 |
|
|
Joined: 17/03/2007 21:12:46
Messages: 177
Location: /dev/null
Offline
|
|
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ỏ. |
|
|
|
|
[Question] Re: Cấu hình các zone files trong BIND |
20/12/2007 03:39:26 (+0700) | #5 | 104804 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
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.
|
|
Let's build on a great foundation! |
|
|
|
[Question] Re: Cấu hình BIND |
26/12/2007 13:53:17 (+0700) | #6 | 106118 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
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 và .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 và /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
|
|
Let's build on a great foundation! |
|
|
|
|