Thứ ba, 01/07/2014 | 00:00 GMT+7

cách cấu hình bind làm server DNS chỉ ủy quyền trên Ubuntu 14.04

DNS, hay Hệ thống domain , thường là một thành phần khó thực hiện khi học cách cấu hình trang web và server . Mặc dù hầu hết mọi người có thể sẽ chọn sử dụng server DNS được cung cấp bởi công ty lưu trữ hoặc công ty đăng ký domain của họ, nhưng có một số lợi thế khi tạo server DNS của bạn .


Trong hướng dẫn này, ta sẽ thảo luận về cách cài đặt và cấu hình server DNS Bind9 làm server DNS chỉ có thẩm quyền trên máy Ubuntu 14.04. Ta sẽ cài đặt hai server Bind này cho domain của ta ở cấu hình chính-phụ.

Yêu cầu và Mục tiêu

Để hoàn thành hướng dẫn này, trước tiên bạn cần phải làm quen với một số thuật ngữ DNS phổ biến. Hãy xem hướng dẫn này để tìm hiểu về các khái niệm mà ta sẽ triển khai trong hướng dẫn này.

Bạn cũng cần ít nhất hai server . Một sẽ dành cho server DNS “chính” nơi các file vùng cho domain của ta sẽ bắt nguồn và một sẽ là server “phụ” sẽ nhận dữ liệu vùng thông qua các lần truyền và khả dụng trong trường hợp server khác gặp sự cố. Điều này tránh nguy cơ gặp lỗi duy nhất cho các server DNS của bạn.

Không giống như bộ nhớ đệm hoặc server DNS chuyển tiếp hoặc server DNS đa mục đích, server chỉ có thẩm quyền chỉ phản hồi các truy vấn lặp lại cho các vùng mà chúng có thẩm quyền. Điều này nghĩa là nếu server không biết câu trả lời, nó sẽ chỉ cho client (thường là một số loại server DNS phân giải) rằng nó không biết câu trả lời và đưa ra tham chiếu đến một server có thể biết nhiều hơn.

Server DNS chỉ ủy quyền thường là một cấu hình tốt để có hiệu suất cao vì chúng không có chi phí giải quyết các truy vấn đệ quy từ client . Họ chỉ quan tâm đến các khu vực mà họ được thiết kế để phục vụ.

Đối với mục đích của hướng dẫn này, ta thực sự sẽ tham khảo ba server . Hai server định danh được đề cập ở trên, cùng với một web server mà ta muốn cấu hình làm server lưu trữ trong khu vực của ta .

Ta sẽ sử dụng domain giả example.com cho hướng dẫn này. Bạn nên thay thế nó bằng domain mà bạn đang cấu hình . Đây là các chi tiết của máy mà ta sẽ cấu hình:

Mục đích DNS FQDN Địa chỉ IP
Server định danh chính ns1.example.com. 192.0.2.1
Server định danh phụ ns2.example.com. 192.0.2.2
Web server www.example.com . 192.0.2.3

Sau khi hoàn thành hướng dẫn này, bạn nên có hai server định danh chỉ có thẩm quyền được cấu hình cho các vùng domain của bạn. Các tên trong cột trung tâm trong bảng trên sẽ được dùng để tiếp cận các server khác nhau của bạn. Sử dụng cấu hình này, server DNS đệ quy sẽ có thể trả lại dữ liệu về domain cho client .

Đặt tên server trên server định danh

Trước khi tìm hiểu cấu hình server định danh của bạn , ta phải đảm bảo tên server của ta được cấu hình đúng cách trên cả server DNS chính và phụ của ta .

Bắt đầu bằng cách điều tra file /etc/hosts . Mở file với quyền sudo trong editor của bạn:

sudo nano /etc/hosts 

Ta cần cấu hình điều này để nó xác định chính xác tên server và FQDN của mỗi server . Đối với server định danh chính, ban đầu file sẽ trông giống như sau:

127.0.0.1       localhost 127.0.1.1       ns1 ns1 . . . 

Ta nên sửa đổi dòng thứ hai để tham chiếu tổ hợp server và domain cụ thể của ta và trỏ nó đến địa chỉ IP tĩnh, công khai của ta . Sau đó, ta có thể thêm tên không đủ tiêu chuẩn làm alias vào cuối. Đối với server chính trong ví dụ này, bạn sẽ thay đổi dòng thứ hai thành:

127.0.0.1       localhost 192.0.2.1       ns1.example.com ns1 . . . 

Lưu file khi bạn hoàn tất.

Ta cũng nên sửa đổi file /etc/hostname để chứa tên server không đủ tiêu chuẩn của ta :

sudo nano /etc/hostname 
ns1 

Sau đó, ta có thể đọc giá trị này vào hệ thống đang chạy bằng lệnh :

sudo hostname -F /etc/hostname 

Ta muốn hoàn thành quy trình tương tự trên server phụ của ta .

Bắt đầu với file /etc/hosts :

sudo nano /etc/hosts 
127.0.0.1       localhost 192.0.2.2       ns2.example.com ns2 

Lưu file khi bạn hoàn tất.

Sau đó, sửa đổi file /etc/hostname . Hãy nhớ chỉ sử dụng server thực tế (chỉ ns2 trong ví dụ của ta ) cho file này:

sudo nano /etc/hostname 
ns2 

, hãy đọc file để sửa đổi hệ thống hiện tại:

sudo hostname -F /etc/hostname 

Server của bạn bây giờ phải được đặt chính xác định nghĩa server .

Cài đặt Bind trên cả hai server định danh

Trên mỗi server định danh của bạn, bây giờ bạn có thể cài đặt Bind, server DNS mà ta sẽ sử dụng.

Phần mềm Bind có sẵn trong repository lưu trữ mặc định của Ubuntu, vì vậy ta chỉ cần cập nhật index gói local của bạn và cài đặt phần mềm bằng apt . Ta cũng sẽ bao gồm tài liệu và một số tiện ích phổ biến:

sudo apt-get update sudo apt-get install bind9 bind9utils bind9-doc 

Chạy lệnh cài đặt này trên server DNS chính và phụ của bạn để lấy các file thích hợp.

Cấu hình server liên kết chính

Bây giờ ta đã cài đặt phần mềm, ta có thể bắt đầu bằng cách cấu hình server DNS của bạn trên server chính.

Cấu hình Tệp Tùy chọn

Điều đầu tiên mà ta sẽ cấu hình để bắt đầu là file named.conf.options .

Server Bind DNS còn gọi là đã named . Tệp cấu hình chính được đặt tại /etc/bind/named.conf . Tệp này gọi các file khác mà ta sẽ thực sự cấu hình .

Mở file tùy chọn với các quyền sudo trong editor :

sudo nano /etc/bind/named.conf.options 

Dưới đây, hầu hết các dòng comment đã được lược bỏ cho ngắn gọn, nhưng nhìn chung file sẽ trông như thế này sau khi cài đặt:

options {         directory "/var/cache/bind";          dnssec-validation auto;          auth-nxdomain no;    # conform to RFC1035         listen-on-v6 { any; }; }; 

Điều chính mà ta cần cấu hình trong file này là đệ quy. Vì ta đang cố gắng cài đặt một server chỉ có thẩm quyền, ta không muốn bật đệ quy trên server này. Ta có thể tắt tính năng này trong khối options .

Ta cũng sẽ mặc định không cho phép chuyển tiền. Ta sẽ overrides điều này trong thông số kỹ thuật vùng riêng lẻ sau:

options {         directory "/var/cache/bind";         recursion no;         allow-transfer { none; };          dnssec-validation auto;          auth-nxdomain no;    # conform to RFC1035         listen-on-v6 { any; }; }; 

Khi bạn hoàn tất, hãy lưu file .

Cấu hình file local

Bước tiếp theo mà ta cần thực hiện là chỉ định các vùng mà ta muốn kiểm soát server này. Vùng là bất kỳ phần nào của domain được ủy quyền quản lý cho server định danh chưa được ủy quyền phụ cho các server khác.

Ta đang cấu hình domain example.com và ta sẽ không ủy quyền phụ trách nhiệm đối với bất kỳ phần nào của domain cho các server khác. Vì vậy, khu vực sẽ bao gồm toàn bộ domain của ta .

Để cấu hình các vùng của ta , ta cần mở file /etc/bind/named.conf.local với các quyền sudo:

sudo nano /etc/bind/named.conf.local 

File này ban đầu sẽ trống bên cạnh các comment . Có những vùng khác mà server của ta biết để quản lý chung, nhưng những vùng này được chỉ định trong file named.conf.default-zones .

Để bắt đầu, ta cần cấu hình vùng chuyển tiếp cho domain example.com của ta . Vùng chuyển tiếp là độ phân giải tên thành IP thông thường mà hầu hết ta nghĩ đến khi thảo luận về DNS. Ta tạo một đoạn cấu hình xác định vùng domain mà ta muốn cấu hình :

zone "example.com" { }; 

Lưu ý: Nhiều công cụ DNS, file cấu hình và tài liệu của chúng sử dụng các thuật ngữ “chính” và “ slaver ” trong khi DigitalOcean thường thích các bộ mô tả thay thế. Để tránh nhầm lẫn, ta đã chọn sử dụng thuật ngữ “chính” và “phụ” để biểu thị mối quan hệ giữa các server và chỉ sử dụng “chính” hoặc “phụ” khi chỉ thị cấu hình yêu cầu.

Bên trong khối này, ta thêm thông tin quản lý về khu vực này. Ta chỉ định mối quan hệ của server DNS này với vùng. Đây là type master; trong vùng ví dụ tiếp theo vì ta đang cấu hình máy này làm server định danh chính cho tất cả các vùng của ta . Ta cũng trỏ Bind đến file chứa các bản ghi tài nguyên thực tế xác định vùng.

Ta sẽ giữ các file vùng chính của ta trong một folder con được gọi là zones trong folder cấu hình Bind. Ta sẽ gọi file của bạn là db.example.com để mượn quy ước từ các file vùng khác trong folder Bind. Khối của ta sẽ trông như thế này bây giờ:

zone "example.com" {     type master;     file "/etc/bind/zones/db.example.com"; }; 

Ta muốn cho phép vùng này được chuyển sang server phụ của ta , ta cần thêm một dòng như sau:

zone "example.com" {     type master;     file "/etc/bind/zones/db.example.com";     allow-transfer { 192.0.2.2; }; }; 

Tiếp theo, ta sẽ xác định vùng đảo ngược cho domain của ta .

Một chút về vùng đảo ngược

Nếu tổ chức cấp cho bạn địa chỉ IP của bạn không cung cấp cho bạn một dải mạng và ủy quyền trách nhiệm cho dải đó cho bạn, thì file vùng đảo ngược của bạn sẽ không được tham chiếu và sẽ do chính tổ chức đó xử lý.

Với các nhà cung cấp dịch vụ lưu trữ, việc ánh xạ ngược thường do chính công ty đảm nhận. Ví dụ: với DigitalOcean, ánh xạ ngược cho server của bạn sẽ được tạo tự động nếu sử dụng FQDN của máy làm tên server trong console . Ví dụ: các ánh xạ ngược cho hướng dẫn này có thể được tạo bằng cách đặt tên cho các server như sau:

Bản đồ DNS đảo ngược tự động DigitalOcean

Trong những trường hợp như thế này, vì bạn chưa được cấp phát một phần địa chỉ để quản lý, bạn nên sử dụng chiến lược này. Chiến lược nêu dưới đây được đề cập đến tính hoàn chỉnh và để nó có thể áp dụng được nếu bạn đã được ủy quyền kiểm soát đối với các group địa chỉ liền kề lớn hơn.

Vùng đảo ngược được sử dụng để kết nối địa chỉ IP với một domain . Tuy nhiên, hệ thống domain ban đầu được thiết kế cho ánh xạ thuận, vì vậy cần có một số suy nghĩ để điều chỉnh điều này để cho phép ánh xạ ngược.

Các phần thông tin mà bạn cần ghi nhớ để hiểu ánh xạ ngược là:

  • Trong một domain , phần cụ thể nhất của địa chỉ nằm ở bên trái. Đối với địa chỉ IP, phần cụ thể nhất nằm ở bên phải.
  • Phần cụ thể nhất của đặc tả domain là domain phụ hoặc tên server . Điều này được xác định trong file vùng cho domain .
  • Đến lượt mình, mỗi domain phụ có thể xác định nhiều domain phụ hoặc server hơn.

Tất cả các ánh xạ vùng đảo ngược được xác định trong domain đặc biệt in-addr.arpa , được kiểm soát bởi Cơ quan cấp số được ấn định trên Internet (IANA). Trong domain này, tồn tại một cây sử dụng domain phụ để vạch ra từng bộ tám trong một địa chỉ IP. Để đảm bảo tính cụ thể của địa chỉ IP phản ánh tính cụ thể của các domain thông thường, các octet của địa chỉ IP thực sự được đảo ngược.

Vì vậy, server DNS chính của ta , với địa chỉ IP là 192.0.2.1 , sẽ được chuyển thành 1.2.0.192 . Khi ta thêm đặc điểm kỹ thuật server lưu trữ này dưới dạng phân cấp tồn tại trong domain in-addr.arpa , server lưu trữ cụ thể có thể được tham chiếu là 1.2.0.192.in-addr.arpa .

Vì ta xác định các server riêng lẻ (như “1” đứng đầu ở đây) trong chính file vùng khi sử dụng DNS, vùng ta sẽ cấu hình sẽ là 2.0.192.in-addr.arpa . Nếu nhà cung cấp mạng của ta đã cung cấp cho ta khối địa chỉ / 24, chẳng hạn như 192.0.2.0/24 , họ sẽ ủy quyền phần in-addr.arpa này cho ta .

Đến đây bạn đã biết cách chỉ định tên vùng đảo ngược, định nghĩa thực tế hoàn toàn giống với vùng chuyển tiếp. Bên dưới định nghĩa vùng example.com , hãy tạo vùng đảo ngược cho mạng bạn đã được cấp. , điều này có lẽ chỉ cần thiết nếu bạn được ủy quyền kiểm soát một khối địa chỉ:

zone "2.0.192.in-addr.arpa" {     type master;     file "/etc/bind/zones/db.192.0.2"; }; 

Ta đã chọn đặt tên file là db.192.0.2 . Điều này là cụ thể về những gì vùng cấu hình và dễ đọc hơn ký hiệu ngược.

Lưu file khi bạn hoàn tất.

Tạo file vùng chuyển tiếp

Ta đã nói với Bind về các vùng chuyển tiếp và đảo ngược của ta ngay bây giờ, nhưng ta vẫn chưa tạo các file sẽ xác định các vùng này.

Nếu bạn nhớ lại, ta đã chỉ định các vị trí file nằm trong một folder con được gọi là zones . Ta cần tạo folder này:

sudo mkdir /etc/bind/zones 

Bây giờ, ta có thể sử dụng một số file vùng đã có trước trong folder Bind làm mẫu cho các file vùng mà ta muốn tạo. Đối với vùng chuyển tiếp, file db.local sẽ gần với những gì ta cần. Sao chép file đó vào folder con zones với tên được sử dụng trong file named.conf.local .

sudo cp /etc/bind/db.local /etc/bind/zones/db.example.com 

Trong khi ta đang làm điều này, ta cũng có thể sao chép một mẫu cho vùng đảo ngược. Ta sẽ sử dụng file db.127 , vì đó là file phù hợp nhất với những gì ta cần:

sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.0.2 

Bây giờ, hãy mở file vùng chuyển tiếp với các quyền sudo trong editor của bạn:

sudo nano /etc/bind/zones/db.example.com 

Tệp sẽ trông như thế này:

$TTL    604800 @       IN      SOA     localhost. root.localhost. (                               2         ; Serial                          604800         ; Refresh                           86400         ; Retry                         2419200         ; Expire                          604800 )       ; Negative Cache TTL ; @       IN      NS      localhost. @       IN      A       127.0.0.1 @       IN      AAAA    ::1 

Điều đầu tiên ta cần làm là sửa đổi bản ghi SOA (bắt đầu quyền hạn) bắt đầu bằng ký hiệu @ đầu tiên và tiếp tục cho đến khi đóng ngoặc đơn.

Ta cần thay thế localhost. với tên FQDN của máy này. Phần này của bản ghi được sử dụng để xác định bất kỳ server định danh nào sẽ phản hồi có thẩm quyền cho vùng đang được xác định. Đây sẽ là máy ta đang cấu hình bây giờ, ns1.example.com. trong trường hợp của ta (lưu ý dấu chấm ở cuối. Đây là điều quan trọng để mục nhập của ta đăng ký chính xác!).

Ta cũng muốn thay đổi phần tiếp theo, đây thực sự là một địa chỉ email được định dạng đặc biệt với @ thay thế bằng dấu chấm. Ta muốn các email của bạn được chuyển đến một người quản lý domain , vì vậy email truyền thống là admin@ example.com . Ta sẽ dịch điều này để nó trông giống như admin. example.com . :

@       IN      SOA     ns1.example.com. admin.example.com. ( 

Phần tiếp theo ta cần chỉnh sửa là số sê-ri. Giá trị của số sê-ri là cách Bind cho biết liệu nó có cần gửi thông tin cập nhật đến server phụ hay không.

Lưu ý : Không tăng số sê-ri là một trong những lỗi phổ biến nhất dẫn đến các vấn đề với cập nhật vùng. Mỗi lần chỉnh sửa, bạn phải đánh số sê-ri.

Một thực tế phổ biến là sử dụng một quy ước để tăng số lượng. Một cách tiếp cận là sử dụng ngày ở định dạng YYYYMMDD cùng với số sửa đổi cho ngày được thêm vào cuối. Vì vậy, bản sửa đổi đầu tiên được thực hiện vào ngày 05 tháng 6 năm 2014 có thể có số sê-ri là 2014060501 và bản cập nhật được thực hiện sau ngày đó có thể có số sê-ri là 2014060502. Giá trị có thể là một số gồm 10 chữ số.

Điều đáng để thông qua một quy ước để dễ sử dụng, nhưng để giữ mọi thứ đơn giản cho cuộc trình diễn của ta , ta sẽ chỉ đặt của ta thành 5 ngay bây giờ:

@       IN      SOA     ns1.example.com. admin.example.com. (                               5         ; Serial 

Tiếp theo, ta có thể loại bỏ ba dòng cuối cùng trong file (những dòng ở cuối bắt đầu bằng @ ) vì ta sẽ tự tạo.

Điều đầu tiên ta muốn cài đặt sau bản ghi SOA là server định danh cho khu vực của ta . Ta chỉ định domain và sau đó là hai server định danh của ta có thẩm quyền cho khu vực, theo tên. Vì các server định danh này sẽ là server lưu trữ trong chính domain , nên nó sẽ tự tham chiếu một chút.

Đối với hướng dẫn của ta , nó sẽ giống như thế này. , hãy chú ý đến các dấu chấm kết thúc !:

; Name servers example.com.    IN      NS      ns1.example.com. example.com.    IN      NS      ns2.example.com. 

Vì mục đích của file vùng chủ yếu là ánh xạ tên server và dịch vụ đến các địa chỉ cụ thể, ta vẫn chưa hoàn thành. Bất kỳ phần mềm nào đọc file vùng này sẽ muốn biết vị trí của server ns1ns2 để truy cập các vùng có thẩm quyền.

Vì vậy, tiếp theo, ta cần tạo các bản ghi A sẽ liên kết các tên server định danh này với địa chỉ IP thực của server định danh của ta :

; A records for name servers ns1             IN      A       192.0.2.1 ns2             IN      A       192.0.2.2 

Bây giờ ta có các bản ghi A để phân giải thành công server định danh của ta thành địa chỉ IP chính xác của chúng, ta có thể thêm bất kỳ bản ghi bổ sung nào. Lưu ý ta có một web server trên một trong các server của ta mà ta muốn sử dụng để phục vụ trang web của bạn . Ta sẽ trỏ các yêu cầu về domain chung (trong trường hợp của ta là example.com ) tới server này, cũng như các yêu cầu đối với server www . Nó sẽ trông giống thế này:

; Other A records @               IN      A       192.0.2.3 www             IN      A       192.0.2.3 

Bạn có thể thêm bất kỳ server bổ sung nào mà bạn cần xác định bằng cách tạo thêm bản ghi A Tham khảo hướng dẫn cơ bản về DNS của ta để làm quen với một số tùy chọn của bạn với việc tạo thêm bản ghi.

Khi bạn hoàn tất, file của bạn sẽ trông giống như sau:

$TTL    604800 @       IN      SOA     ns1.example.com. admin.example.com. (                               5         ; Serial                          604800         ; Refresh                           86400         ; Retry                         2419200         ; Expire                          604800 )       ; Negative Cache TTL ;  ; Name servers example.com.    IN      NS      ns1.example.com. example.com.    IN      NS      ns2.example.com.  ; A records for name servers ns1             IN      A       192.0.2.1 ns2             IN      A       192.0.2.2  ; Other A records @               IN      A       192.0.2.3 www             IN      A       192.0.2.3 

Lưu file khi bạn hoàn tất.

Tạo file vùng đảo ngược

Bây giờ, ta đã cấu hình vùng chuyển tiếp, nhưng ta cần cài đặt file vùng ngược mà ta đã chỉ định trong file cấu hình của bạn . Ta đã tạo file ở đầu phần cuối cùng.

Mở file trong editor của bạn với các quyền sudo:

sudo nano db.192.0.2 

Tệp sẽ trông như thế này:

$TTL    604800 @       IN      SOA     localhost. root.localhost. (                               1         ; Serial                          604800         ; Refresh                           86400         ; Retry                         2419200         ; Expire                          604800 )       ; Negative Cache TTL ; @       IN      NS      localhost. 1.0.0   IN      PTR     localhost. 

Ta sẽ thực hiện nhiều quy trình tương tự như ta đã làm với khu vực chuyển tiếp. Đầu tiên, hãy điều chỉnh domain , email quản trị và số sê-ri để khớp chính xác với những gì bạn đã có trong file cuối cùng (Số sê-ri có thể khác nhau, nhưng phải tăng dần):

@       IN      SOA     example.com. admin.example.com. (                               5         ; Serial 

, xóa sạch các dòng dưới dấu ngoặc đóng của bản ghi SOA . Ta sẽ lấy octet cuối cùng của mỗi địa chỉ IP trong phạm vi mạng của bạn và ánh xạ nó trở lại FQDN của server đó bằng bản ghi PTR . Mỗi địa chỉ IP chỉ nên có một bản ghi PTR duy nhất để tránh các sự cố trong một số phần mềm, vì vậy bạn phải chọn tên server mà bạn muốn bản đồ hóa ngược lại.

Ví dụ: nếu bạn đã cài đặt server thư, bạn có thể cần cài đặt ánh xạ ngược tới tên thư, vì nhiều hệ thống sử dụng ánh xạ ngược để xác thực địa chỉ.

Đầu tiên, ta cần đặt lại server định danh của bạn :

; Name servers         IN      NS      ns1.example.com.         IN      NS      ns2.example.com. 

Tiếp theo, bạn sẽ sử dụng octet cuối cùng của địa chỉ IP mà bạn đang đề cập đến và trỏ nó trở lại domain đủ điều kiện mà bạn muốn trả về. Đối với ví dụ của ta , ta sẽ sử dụng cái này:

; PTR Records 1       IN      PTR      ns1.example.com. 2       IN      PTR      ns2.example.com. 3       IN      PTR      www.example.com. 

Khi bạn hoàn tất, file sẽ trông giống như sau:

$TTL    604800 @       IN      SOA     example.com. admin.example.com. (                               5         ; Serial                          604800         ; Refresh                           86400         ; Retry                         2419200         ; Expire                          604800 )       ; Negative Cache TTL ;  ; Name servers         IN      NS      ns1.example.com.         IN      NS      ns2.example.com.  ; PTR records 1       IN      PTR      ns1.example.com. 2       IN      PTR      ns2.example.com. 3       IN      PTR      www.example.com. 

Lưu file khi bạn hoàn tất.

Kiểm tra file và khởi động lại dịch vụ

Cấu hình cho server chính hiện đã hoàn tất, nhưng ta vẫn cần áp dụng các thay đổi của bạn .

Trước khi khởi động lại dịch vụ, ta nên kiểm tra tất cả các file cấu hình của bạn đảm bảo rằng chúng được cấu hình chính xác. Ta có một số công cụ có thể kiểm tra cú pháp của từng file của ta .

Thứ nhất, ta có thể kiểm tra named.conf.localnamed.conf.options file bằng cách sử dụng các named-checkconf lệnh. Vì cả hai file này đều là nguồn của file khung xương named.conf , nó sẽ kiểm tra cú pháp của các file mà ta đã sửa đổi.

sudo named-checkconf 

Nếu lợi nhuận này mà không có bất kỳ tin nhắn, nó nghĩa là named.conf.localnamed.conf.options file là cú pháp hợp lệ.

Tiếp theo, bạn có thể kiểm tra các file vùng riêng lẻ của bạn bằng cách chuyển domain mà vùng đó xử lý và vị trí file vùng tới lệnh named-checkzone . Vì vậy, đối với hướng dẫn của ta , bạn có thể kiểm tra file vùng chuyển tiếp bằng lệnh :

sudo named-checkzone example.com /etc/bind/zones/db.example.com 

Nếu file của bạn không có vấn đề gì, file sẽ cho bạn biết rằng file đã tải đúng số sê-ri và đưa ra thông báo “OK”;

zone example.com/IN: loaded serial 5 OK 

Nếu bạn gặp bất kỳ thông báo nào khác, điều đó nghĩa là bạn có vấn đề với file vùng của bạn . Thông thường, thông báo khá mô tả về phần nào không hợp lệ.

Bạn có thể kiểm tra vùng đảo ngược bằng cách chuyển địa chỉ in-addr.arpa và tên file . Đối với cuộc trình diễn của ta , ta sẽ nhập thế này:

sudo named-checkzone 2.0.192.in-addr.arpa /etc/bind/zones/db.192.0.2 

, điều này sẽ cung cấp cho bạn một thông báo tương tự về việc tải đúng số sê-ri:

zone 2.0.192.in-addr.arpa/IN: loaded serial 5 OK 

Nếu tất cả các file của bạn đang được kiểm tra, bạn có thể khởi động lại dịch vụ Bind của bạn :

sudo service bind9 restart 

Bạn nên kiểm tra log bằng lệnh :

sudo tail -f /var/log/syslog 

Theo dõi log này đảm bảo rằng không có sai sót.

Cấu hình server ràng buộc phụ

Bây giờ ta đã cấu hình server chính, ta có thể tiếp tục và cài đặt server phụ. Điều này sẽ dễ dàng hơn đáng kể so với server chính.

Cấu hình Tệp Tùy chọn

, ta sẽ bắt đầu với file named.conf.options . Mở nó với các quyền sudo trong editor của bạn:

sudo nano /etc/bind/named.conf.options 

Ta sẽ thực hiện các sửa đổi chính xác đối với file này mà ta đã thực hiện đối với file của server chính của ta .

options {         directory "/var/cache/bind";         recursion no;         allow-transfer { none; };          dnssec-validation auto;          auth-nxdomain no;    # conform to RFC1035         listen-on-v6 { any; }; }; 

Lưu file khi bạn hoàn tất.

Cấu hình file cấu hình local

Tiếp theo, ta sẽ cấu hình file named.conf.local trên server phụ. Mở nó với các quyền sudo trong editor của bạn:

sudo nano /etc/bind/named.conf.local 

Ở đây, ta sẽ tạo từng thông số kỹ thuật vùng của ta giống như ta đã làm trên server chính của bạn . Tuy nhiên, các giá trị và một số tham số sẽ khác nhau.

Đầu tiên, ta sẽ làm việc về khu vực phía trước. Bắt đầu nó giống như cách bạn đã làm trong file chính:

zone "example.com" { }; 

Lần này, ta sẽ cài đặt các type để slave từ server này là hành động như là một trung cho khu vực này. Điều này đơn giản nghĩa là nó nhận các file vùng của nó thông qua truyền chứ không phải là file trên hệ thống local . Ngoài ra, ta sẽ chỉ định tên file tương đối thay vì đường dẫn tuyệt đối đến file vùng.

Lý do cho điều này là, đối với các vùng phụ, Bind lưu trữ các file /var/cache/bind . Bind đã được cấu hình để tìm trong vị trí folder này, vì vậy ta không cần chỉ định đường dẫn.

Đối với khu vực phía trước của ta , các chi tiết này sẽ giống như sau:

zone "example.com" {     type slave;     file "db.example.com"; }; 

Cuối cùng, thay vì chỉ thị allow-transfer , ta sẽ chỉ định server chính, theo địa chỉ IP, server này sẽ chấp nhận chuyển vùng từ đó. Điều này được thực hiện trong một chỉ thị được gọi là masters :

zone "example.com" {     type slave;     file "db.example.com";     masters { 192.0.2.1; }; }; 

Điều này hoàn thành đặc điểm kỹ thuật vùng phía trước của ta . Ta có thể sử dụng cùng một định dạng chính xác này để xử lý đặc điểm kỹ thuật vùng ngược của ta :

zone "2.0.192.in-addr.arpa" {     type slave;     file "db.192.0.2";     masters { 192.0.2.1; }; }; 

Khi hoàn tất, bạn có thể lưu file .

Kiểm tra file và khởi động lại dịch vụ

Ta thực sự không phải thực hiện bất kỳ quá trình tạo file vùng thực tế nào trên máy thứ cấp bởi vì, giống như ta đã đề cập trước đây, server này sẽ nhận các file vùng từ server chính. Vì vậy, ta đã sẵn sàng để kiểm tra.

, ta nên kiểm tra cú pháp file cấu hình. Vì ta không có các file vùng nào để kiểm tra, ta chỉ cần sử dụng công cụ named-checkconf :

sudo named-checkconf 

Nếu điều này trả về mà không có bất kỳ lỗi nào, điều đó nghĩa là các file bạn đã sửa đổi không có lỗi cú pháp.

Nếu đúng như vậy, bạn có thể khởi động lại dịch vụ Bind của bạn :

sudo service bind9 restart 

Kiểm tra log trên cả server chính và phụ bằng cách sử dụng:

sudo tail -f /var/log/syslog 

Bạn sẽ thấy một số mục nhập cho biết rằng các file vùng đã được chuyển đúng cách.

Ủy quyền cho Server Định danh của bạn

Server định danh chỉ có thẩm quyền của bạn bây giờ sẽ được cấu hình hoàn chỉnh. Tuy nhiên, bạn vẫn cần ủy quyền cho domain của bạn cho các server định danh của bạn.

Để làm điều này, bạn sẽ phải truy cập trang web mà bạn đã mua domain của bạn . Giao diện và có lẽ thuật ngữ sẽ khác nhau tùy thuộc vào công ty đăng ký domain mà bạn đã sử dụng.

Trong cài đặt domain của bạn, hãy tìm một tùy chọn cho phép bạn chỉ định server định danh mà bạn muốn sử dụng. Vì server định danh của ta nằm trong domain của ta , đây là một trường hợp đặc biệt.

Thay vì nhà đăng ký chỉ cần ủy quyền cho khu vực thông qua việc sử dụng các bản ghi NS, nó cần tạo một bản ghi keo . Bản ghi keo là một bản ghi chỉ định địa chỉ IP cho các server định danh sau khi nó chỉ định các server định danh mà nó được ủy quyền.

Thông thường, ủy quyền chỉ liệt kê các server định danh sẽ xử lý quyền hạn của domain , nhưng khi các server định danh nằm trong chính domain , bản ghi A là cần thiết cho các server định danh trong vùng mẹ. Nếu điều này không xảy ra, trình phân giải DNS sẽ bị mắc kẹt trong một vòng lặp vì nó sẽ không bao giờ có thể tìm thấy địa chỉ IP của server định danh của domain để đi theo đường dẫn ủy quyền.

Vì vậy, bạn cần tìm một phần trong console của công ty đăng ký domain cho phép bạn chỉ định server định danh địa chỉ IP của chúng.

Như một minh chứng, Namecheap của nhà đăng ký có hai phần server định danh khác nhau.

Có một phần được gọi là "Đăng ký server định danh" cho phép bạn chỉ định địa chỉ IP cho server định danh trong domain của bạn:

 Server  định danh đăng ký NameCheap

Bên trong, bạn có thể nhập địa chỉ IP của server định danh tồn tại trong domain :

 Server  định danh nội bộ NameCheap

Thao tác này sẽ tạo bản ghi A đóng role là bản ghi keo mà bạn cần trong file vùng mẹ.

Sau khi thực hiện xong việc này, bạn có thể thay đổi server định danh đang hoạt động thành server trong domain của bạn . Trong NameCheap, điều này được thực hiện bằng cách sử dụng tùy chọn menu “ Cài đặt server domain ”:

 Cài đặt  domain  NameCheap

Tại đây, bạn có thể yêu cầu nó sử dụng các server định danh mà bạn đã thêm làm server có thẩm quyền cho trang web :

NameCheap sử dụng  server  định danh

Các thay đổi có thể mất một lúc để có hiệu lực, nhưng bạn sẽ thấy dữ liệu từ server định danh của bạn được sử dụng trong vòng 24-48 giờ tới đối với hầu hết các tổ chức đăng ký domain .

Kết luận

Đến đây bạn sẽ có hai server DNS chỉ có thẩm quyền được cấu hình để phục vụ các domain của bạn. Chúng được dùng để lưu trữ thông tin vùng cho các domain bổ sung khi bạn có thêm.

Việc cấu hình và quản lý server DNS của bạn giúp bạn kiểm soát tốt nhất cách xử lý các bản ghi DNS. Bạn có thể áp dụng các thay đổi và đảm bảo tất cả các phần dữ liệu DNS có liên quan đều được cập nhật tại nguồn. Mặc dù các giải pháp DNS khác có thể giúp quá trình này dễ dàng hơn, nhưng điều quan trọng là bạn phải biết rằng bạn có các tùy chọn và hiểu điều gì đang xảy ra trong các giải pháp đóng gói hơn.


Tags:

Các tin liên quan

Cách cấu hình bind server lưu trữ hoặc chuyển tiếp DNS trên Ubuntu 14.04
2014-07-01
So sánh các loại server DNS: Cách chọn cấu hình DNS phù hợp
2014-07-01
5 Thiết lập server Chung cho Ứng dụng Web của Bạn
2014-05-30
Cách sử dụng npm để quản lý gói Node.js trên server Linux
2014-05-14
Cách sử dụng npm để xây dựng và xuất bản các gói Node.js trên server Linux
2014-05-14
Cách khắc phục sự cố trang web thường gặp trên server Linux
2014-05-09
Cách Fail2Ban hoạt động để bảo vệ các dịch vụ trên server Linux
2014-05-07
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên Ubuntu 14.04
2014-04-25
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 14.04
2014-04-18
Thiết lập server ban đầu với Ubuntu 14.04
2014-04-17