cài đặt, cấu hình dịch vụ mạng DNS trên Linux

Dịch vụ mạng trên linux tiếp theo itviet360 giới thiệu là dịch vụ DNS trên Linux. Giới thiệu sơ qua về lí thuyết. Các bạn có thể tìm trên mạng rất nhiều lý thuyết về DNS.
cai dat cau hinh dich vu dns tren linux
Mô hình sử dụng
  1. Giới thiệu DNS
DNS (Domain Name System): là hệ thống phân giải tên miền.
Mỗi máy tính, thiết bị mạng tham gia vào mạng Internet đều giao tiếp với nhau bằng địa chỉ IP (Internet Protocol) .Để thuận tiện cho việc sử dụng và dễ nhớ ta dùng tên miền (domain name) để xác định thiết bị đó.Hệ thống tên miền (Domain Name System) được sử dụng để ánh xạ tên miền thành địa chỉ IP. Vì vậy, khi muốn liên hệ tới các máy, chúng chỉ cần sử dụng chuỗi ký tự dễ nhớ (domain name) như: www.hcmutrans.edu.vn , www.cn08a.com.., thay vì sử dụng địa chỉ IP là một dãy số dài khó nhớ.
Cấu trúc hệ thống tên miền
Domain root: Nó là đỉnh của nhánh cây của tên miền. Nó có thể biểu diễn đơn giản chỉ là dấu chấm “.”.
Top-level-domain: gồm vài kí tự xác định một nước, khu vưc hoặc tổ chức. Nó đươc thể hiện là “.us” , “.vn” , “.com” , “.edu” ….
Second-level-domain: Nó rất đa dạng rất đa dạng có thể là tên một công ty, một tổ chức hay một cá nhân.
Subdomain: Chia thêm ra của tên miền cấp hai trở xuống thường được sử dụng như chi nhánh, phòng ban của một cơ quan hay chủ đề nào đó.
......................
Phần cơ chế phân giải, phân loại DNS Server ... các bạn tham khảo internet.
2. Cài đặt và cấu hình DNS trên linux
2.1 Cài đặt
  • Các gói cài đặt cần:
- bind-*.rpm
- bind-chroot-*.rpm
- bind-libs-*.rpm
- bind-utils-*.rpm
Gói bind-chroot-*.rpm cung cấp cho người quản trị thư mục làm việc với các tập tin cấu hình DNS an toàn hơn chỉ cho phép các user có quyền root mới được phép truy cập: /var/named/chroot/etc/ và /var/named/chroot/var/named/ thay cho hai thư mục mặc định /etc/ và /var/named/.
Ngoài ra, cần cài đặt thêm gói thư viện caching-nameserver -*.rpm để cung cấp những file cấu hình mẫu phục vụ cho việc cấu hình dịch vụ DNS.
Các file cấu hình cần thiết:
• Tập tin cấu hình chính:
/var/named/chroot/etc/named.conf
• Tập tin phân giải thuận:
/var/named/chroot/var/named/cn08a.zone
/var/named/chroot/var/named/localhost.zone
• Tập tin phân giải nghịch:
/var/named/chroot/var/named/1.16.172.broadcast
/var/named/chroot/var/named/0.0.127.local
2.2 Cấu hình DNS
Đầu tiên ta sẽ định nghĩa Primary zone trong named.conf

// named.conf for Red Hat caching-nameserver
options {
listen-on port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
// query-source address * port 53;
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "cn08a.info" IN {
type master;
file "cn08a.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 "0.0.127.local";
allow-update { none; };
};
zone "1.16.172.in-addr.arpa" IN {
type master;
file "1.16.172.broadcast";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
include "/etc/rndc.key";

Name Server demo trong bài này sử dụng domain “cn08a.info”, các tập tin cơ sở dữ liệu named.ca, cn08a.zone, localhost.zone, 1.16.172.broadcast, 0.0.127.local được lưu trữ trong thư mục /var/named/chroot/var/named/
Các options trên cùng cho phép máy chủ chấp nhận mọi request từ client gửi đến port 53
• Zone “.” Khi cần sẽ truy vấn đến tập tin named.ca – đây là tập tin chứa các root server chịu trách nhiệm quản lý toàn bộ request trên toàn thế giới.
• Zone “cn08a.info”: đây là domain chính mà DNS server của chúng ta sẽ quản lý. Khi cần nó sẽ truy vấn đến tập tin cn08a.zone – chứa các tên phân giải thuận cho domaincn08a.info.
• Zone “localhost” : Khai báo việc phân giải thuận cho localhost.
• Zone “1.16.172.in-addr.arpa” : truy vấn đến tập tin 1.16.172.broadcast – chứa tên phân giải nghịch của domain cn08a.info .
• Zone “0.0.127.in-addr.arpa” : Khai báo việc phân giải nghịch cho localhost
Type của các zone trong trường hợp này là master vì đây là master server, trên secondary server thì type sẽ là slave.
Cấu hình tập tin phân giải thuận “cn08a.zone”:

$TTL 86400
@ IN SOA dnsserver.cn08a.info. root (
2012030701 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dnsserver.cn08a.info.
IN MX 1 mail.cn08a.info.
IN A 172.16.1.1
dnsserver IN A 172.16.1.1
www IN A 172.16.1.2
mail IN CNAME www.cn08a.info.
ftp IN CNAME dnsserver.cn08a.info.

forum IN A 172.16.1.1
IN MX 1 mail.forum.cn08a.info.
mail.forum IN A 172.16.1.2
www.forum IN CNAME mail.forum.cn08a.info.
ftp.forum IN CNAME forum.cn08a.info.

Cấu hình tập tin phân giải thuận “1.16.172.broadcast”:

$TTL 86400
@ IN SOA dnsserver.cn08a.info. root (
2012250201 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS dnsserver.cn08a.info.
1 IN PTR cn08a.info.
IN PTR dnsserver.cn08a.info.
2 IN PTR www.cn08a.info.

1 IN PTR forum.cn08a.info.
2 IN PTR mail.forum.cn08a.info.

...............
Ý nghĩa của các Resource Record DNS 
Time-to-live number: thời gian dữ liệu được lưu trên Caching Server - giá trị này được dùng cho tất cả các Resource Record trong cơ sở dữ liệu. Giá trị này cho những server khác Cache lại dữ liệu trong 1 khoảng thời gian nhất định TTL.
Ví dụ: 86400; TTL là 1 ngày
@: chính là domain được khai báo trong named.conf. Như thông tin cấu hình ở trên, domain là cn08a.info, do vậy mọi hostname được khai báo sau này không cần ghi đầy đủ tên theo dạng FQDN.
IN: cho name server biết đây chính là record Internet.
SOA (Start Of Authority): Trong mỗi zone chỉ có duy nhất một record SOA. SOA chỉ ra rằng máy chủ Name Server là nơi cung cấp thông tin tin cậy từ dữ liệu có trong Zone.
Dnsserver.cn08a.info. là FQDN của name server cho domain.
Root.cn08a.info.: địa chỉ e-mail cho người quản trị domain, địa chỉ e-mail như vậy thiếu dấu @, nhưng thực ra nó được thay bởi dấu chấm. Và địa chỉ thật sự là root@cn08a.info.
• Các thông số được khai báo sau chỉ có tác dụng khi trong domain có secondary server:
Serial number: Khi một Slave Nameserver kết nối với Master Server để lấy dữ liệu, trước tiên nó sẽ kiểm tra số Serial, nếu số Serial của master lớn hơn tức là dữ liệu đã hết hạn sử dụng và nó sẽ load lại dữ liệu mới. Vì vậy khi ta cập nhật dữ liệu trên name server ta tăng số serial. Thông thường định dạng theo thời gian YYYYMMDDNN
Ví dụ: 2012080701
Refresh number: khoảng thời gian mà Slave biết phải kiểm tra lại dữ liệu có còn sử dụng được không.
Ví dụ: 3H; Refresh sau 3 giờ
Retry number: Nếu Slave không thể kết nối với Master Nameserver sau một khoảng thời gian Refresh thì nó sẽ cố gắng kết nối lại sau khoảng thời gian retry. Giá trị này nhỏ hơn giá trị Refresh.
Ví dụ: 15M; Retry sau 15 phút
Expiry number: nếu Slave không thể kết nối với Master server sau khoảng thời gian Expiry này, thì slave sẽ không trả lời cho vùng dữ liệu đó khi được truy vấn, vì nó cho rằng dữ liệu này đã quá cũ. Giá trị này phải lớn hơn giá trị Refresh và Retry.
Ví dụ: 1W; Expiry sau 1 tuần
NS (Name Server): Mỗi Name Server cho zone sẽ có 1 NS record. Record này xác định tên các server chịu trách nhiệm quản lý các record trong domain.
A: Ánh xạ tên sang địa chỉ IPv4.
CNAME (Canonical Name): Record này tạo tên Alias trỏ vào một tên Canonical. Tên Canonical là tên host trong Record A hoặc lại trỏ vào 1 tên Canonical khác.
MX (Mail Exchanger): DNS dùng record MX để thông báo cho các site khác mail server của mình.
PTR (Pointer): dùng để ánh xạ địa chỉ sang tên.
..................

Đến đây, việc cấu hình hoàn tất, chúng ta cần tiến hành khởi tạo lại dịch vụ named:

[root@centos_server ~]# service named restart
Stopping named: [ OK ]
Starting named: [ OK ]
[root@centos_server ~]# chkconfig named on

Kiểm tra phân giải tên miền:
Đầu tiên, cần cấu hình Prefer DNS của server thông qua file /etc/resolv.conf:

Nameserver 127.0.0.1
Domain cn08a.info

Kiểm tra xem dịch vụ named đã hoạt động hay chưa:

[root@centos_server ~]# pgrep named
8758 =========== Dịch vụ hoạt động tốt


Truy vấn tên miền và địa chỉ IP thông qua lệnh host:

[root@centos_server ~]# host -t a www.cn08a.info
[root@centos_server ~]# host -t mx mail.cn08a.info

Truy vấn tên miền và địa chỉ IP thông qua lệnh nslookup trên nhiều nền hệ điều hành:

[root@centos_server ~]# nslookup

hu thập các thông tin về DNS server trong domain thông qua lệnh dig:

[root@centos_server ~]# dig @dnsserver cn08a.info A

Kiểm tra phân giải trên Client:
Để có thể tiến hành phân giải tên miền trên Client, chúng ta cần phải đảm bảo các yếu tố sau:
• Port 53 trên Server đã được mở
Để mở port 53, chúng ta cấu hình trong file /etc/sysconfig/iptables:
||
• Prefer DNS trên máy Client được trỏ về máy Server DNS.
- Đối với máy linux:
Cấu hình DNS trên file /etc/resolv.conf

search cn08a.info
nameserver 172.16.1.1

Kiểm tra phân giải bằng lệnh nslookup:

[root@www ~]# nslookup

- Đối với máy Windows:
Trỏ Prefer DNS về máy Server 172.16.1.1
Trỏ DNS
 Sau đó ta kiểm tra = lệnh ping:
---------------------------------------------
Mình gửi Video Demo chi tiết cho các bạn comment yêu cầu !
---------------------------------------------
PS: Video demo dịch vụ DNS Linux mình nén lại thấy dung lượng nhỏ nên Upload nên MF rồi. Các bạn cần thì Download tại http://www.mediafire.com/?117zkz9dcs6ebf7
Chúc các bạn thành công !
Chuyên mục: ,

4 comments:

  1. Cam on ve bai biet cua ban,ban gui video demo dich vu DNS cho minh voi,dang can de lam de tai,cam on ban nhieu nha

    ReplyDelete
    Replies
    1. Mình cập nhật bài viết rồi. bạn lấy video trên link MD đó nhé ! Video Full cấu hình, nếu link error thì báo lại mình nhé.

      Delete
  2. MD Error rùi....
    Gửi qua mail mình tham khảo với. Ngồi lay hoay cả ngày mà chưa ra......
    trantranngoctoan@gmail.com

    thankkkkkk

    ReplyDelete
  3. anh cho em xin cái video demo dịch vụ DNS với nha, cái link anh cho nó bị die rồi thank anh.
    mail: itachi2891@gmail.com

    ReplyDelete