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

So sánh các loại server DNS: Cách chọn cấu hình DNS phù hợp

DNS, hay Hệ thống domain , là một phần không thể thiếu trong cách các hệ thống kết nối với nhau để giao tiếp trên internet. Nếu không có DNS, máy tính và những người sử dụng chúng sẽ được yêu cầu kết nối chỉ bằng các địa chỉ số được gọi là địa chỉ IP.

div class = "note">

Bên cạnh vấn đề rõ ràng là phải nhớ một số lượng lớn các số phức cho các việc đơn giản, giao tiếp thông qua địa chỉ IP cũng gây ra một số vấn đề khác. Di chuyển trang web sang một nhà cung cấp dịch vụ lưu trữ khác hoặc di chuyển server của bạn đến các vị trí khác nhau sẽ yêu cầu bạn thông báo cho mọi khách hàng về vị trí mới.

Server DNS, các máy tính cùng nhau tạo thành hệ thống cho phép ta sử dụng tên thay vì địa chỉ, có thể phục vụ nhiều chức năng khác nhau, mỗi chức năng có thể góp phần vào khả năng truy cập server bằng tên của bạn.

Trong hướng dẫn trước, ta đã thảo luận về một số thuật ngữ và khái niệm cơ bản của hệ thống domain . Ta sẽ giả sử một số quen thuộc với các khái niệm được đề cập trong bài viết đó. Trong hướng dẫn này, ta sẽ nói về một số kiểu cài đặt server DNS khác nhau và những ưu điểm, trường hợp sử dụng và thuộc tính của từng loại.

Đường dẫn của truy vấn DNS

Khi một client muốn truy cập vào một server bằng domain của nó, nó phải tìm cách dịch domain thành một địa chỉ định tuyến thực tế mà nó có thể sử dụng để giao tiếp. Nó cần biết thông tin này để lấy hoặc gửi thông tin đến server .

Một số ứng dụng, bao gồm hầu hết các trình duyệt web, duy trì bộ nhớ cache nội bộ của các truy vấn gần đây. Đây là nơi đầu tiên ứng dụng sẽ kiểm tra, nếu nó có khả năng này, để tìm địa chỉ IP của domain được đề cập. Nếu nó không tìm thấy câu trả lời cho câu hỏi của nó ở đây, nó sẽ yêu cầu trình phân giải hệ thống tìm ra địa chỉ của domain là gì.

Nói chung, trình phân giải là bất kỳ thành phần nào hoạt động như một người tham gia phía client trong một truy vấn DNS. Trình phân giải hệ thống là thư viện phân giải mà hệ điều hành của bạn sử dụng để tìm ra câu trả lời cho các truy vấn DNS. Nói chung, các trình giải quyết hệ thống thường là những gì ta coi là trình giải quyết sơ khai vì chúng không có khả năng phức tạp nhiều ngoài việc tìm kiếm một vài file tĩnh trên hệ thống (như file /etc/hosts ) và chuyển tiếp các yêu cầu đến một trình phân giải khác.

Vì vậy, nói chung, một truy vấn đi từ ứng dụng client đến trình phân giải hệ thống, sau đó nó được chuyển tới server DNS mà nó có địa chỉ. Server DNS này được gọi là server DNS đệ quy . Server đệ quy là một server DNS được cấu hình để truy vấn các server DNS khác cho đến khi nó tìm thấy câu trả lời cho câu hỏi. Nó sẽ trả lại câu trả lời hoặc một thông báo lỗi cho client (trong trường hợp này, trình giải quyết hệ thống sẽ chuyển nó cho ứng dụng client ).

Server đệ quy nói chung cũng duy trì một bộ nhớ cache.Nó sẽ kiểm tra bộ nhớ cache này trước để xem nó đã có câu trả lời cho truy vấn chưa. Nếu không, nó sẽ xem nó có địa chỉ đến bất kỳ server nào kiểm soát các thành phần domain cấp trên hay không. Vì vậy, nếu yêu cầu dành cho www.example.com và nó không thể tìm thấy địa chỉ server đó trong bộ nhớ cache của nó, nó sẽ xem liệu nó có địa chỉ của server định danh cho example.com hay không và nếu cần, com . Sau đó, nó sẽ gửi một truy vấn tới server định danh của hầu hết các thành phần domain cụ thể mà nó có thể tìm thấy để truy vấn thêm thông tin.

Nếu nó không tìm thấy địa chỉ của bất kỳ thành phần domain nào trong số này, nó phải bắt đầu từ phần trên cùng của hệ thống phân cấp bằng cách truy vấn server định danh root . Server root biết địa chỉ của tất cả các server định danh TLD (miền cấp cao nhất) kiểm soát các vùng cho .com , .net , .org , v.v. Nó sẽ hỏi server root nếu nó biết địa chỉ của www.example.com . Server root sẽ tham chiếu server đệ quy đến server định danh cho .com TLD.

Sau đó, server đệ quy đi theo dấu vết giới thiệu đến từng server định danh kế tiếp đã được giao trách nhiệm cho các thành phần domain , cho đến khi nó có thể truy cập vào server định danh cụ thể có câu trả lời đầy đủ. Nó đặt câu trả lời này vào bộ nhớ cache của nó cho các truy vấn sau đó và sau đó trả lại cho client .

Như bạn thấy từ ví dụ này, có nhiều loại server khác nhau và chúng đóng một role khác nhau. Hãy xem chi tiết cụ thể của các loại server DNS khác nhau.

Sự khác biệt về chức năng

Một số khác biệt giữa các server DNS hoàn toàn là chức năng. Hầu hết các server liên quan đến việc triển khai DNS là chuyên biệt cho các chức năng nhất định. Loại server DNS bạn chọn phần lớn sẽ phụ thuộc vào nhu cầu của bạn và loại vấn đề bạn đang hy vọng giải quyết.

Server DNS chỉ ủy quyền

Server DNS chỉ có thẩm quyền là server chỉ quan tâm đến việc trả lời các truy vấn cho các vùng mà nó chịu trách nhiệm. Vì nó không giúp giải quyết các truy vấn cho các khu vực bên ngoài, nó thường rất nhanh và có thể xử lý nhiều yêu cầu một cách hiệu quả.

Server chỉ ủy quyền có các thuộc tính sau:

  • Phản hồi rất nhanh các truy vấn cho các khu vực mà nó kiểm soát. Server chỉ có thẩm quyền sẽ có tất cả thông tin về domain mà nó chịu trách nhiệm hoặc thông tin giới thiệu cho các vùng trong domain đã được ủy quyền cho các server định danh khác.
  • Sẽ không trả lời các truy vấn đệ quy. Chính định nghĩa về server chỉ có thẩm quyền là server không xử lý các yêu cầu đệ quy. Điều này làm cho nó chỉ trở thành một server và không bao giờ là một client trong hệ thống DNS. Bất kỳ yêu cầu nào đến server chỉ có thẩm quyền thường sẽ đến từ trình phân giải đã nhận được giới thiệu đến nó, nghĩa là server chỉ có thẩm quyền sẽ có câu trả lời đầy đủ hoặc sẽ có thể chuyển giới thiệu mới đến server định danh mà nó đã giao trách nhiệm.
  • Không lưu kết quả truy vấn vào bộ nhớ cache. Vì một server chỉ có thẩm quyền không bao giờ truy vấn các server khác để biết thông tin để giải quyết một yêu cầu, nó không bao giờ có cơ hội để lưu kết quả vào bộ nhớ cache. Tất cả thông tin nó biết đều đã có trong hệ thống của nó.

Cache DNS Server

Server DNS trong bộ nhớ đệm là một server xử lý các yêu cầu đệ quy từ client . Hầu hết mọi server DNS mà trình phân giải sơ khai của hệ điều hành sẽ liên hệ sẽ là một server DNS bộ nhớ đệm.

Server lưu vào cache có lợi thế là trả lời các yêu cầu đệ quy từ client . Mặc dù các server chỉ có thẩm quyền có thể lý tưởng để cung cấp thông tin vùng cụ thể, nhưng các server DNS trong bộ nhớ đệm lại hữu ích hơn theo quan điểm của khách hàng. Chúng làm cho hệ thống DNS của thế giới có thể truy cập được vào các giao diện khách khá ngu ngốc.

Để tránh phải chịu tác động về hiệu suất của việc đưa ra nhiều yêu cầu lặp lại đến các server DNS khác mỗi khi nó nhận được một yêu cầu đệ quy, server sẽ lưu vào bộ nhớ cache các kết quả của nó. Điều này cho phép nó có quyền truy cập vào một lượng lớn thông tin DNS (DNS có thể truy cập trên toàn thế giới) trong khi xử lý các yêu cầu gần đây rất nhanh chóng.

Server DNS trong bộ nhớ đệm có các thuộc tính sau:

  • Truy cập vào toàn bộ phạm vi dữ liệu DNS công cộng. Tất cả dữ liệu vùng được cung cấp bởi các server DNS có thể truy cập công cộng được nối vào cây ủy quyền global có thể được truy cập bằng server DNS trong bộ nhớ đệm. Nó biết về các server DNS root và có thể theo dõi các giới thiệu một cách thông minh khi nó nhận dữ liệu.
  • Khả năng cung cấp dữ liệu đưa thức ăn cho khách hàng ngu ngốc. Hầu hết mọi hệ điều hành hiện đại đều giảm tải phân giải DNS cho các server đệ quy chuyên dụng thông qua việc sử dụng trình phân giải sơ khai. Các thư viện giải quyết này chỉ đơn giản đưa ra một yêu cầu đệ quy và mong đợi nhận được câu trả lời đầy đủ. Server DNS trong bộ nhớ đệm có các khả năng chính xác để phục vụ các client này. Bằng cách chấp nhận một truy vấn đệ quy, các server này hứa hẹn trả về một câu trả lời hoặc một thông báo lỗi DNS.
  • Duy trì bộ nhớ cache của dữ liệu được yêu cầu gần đây. Bằng cách lưu kết quả vào bộ nhớ đệm khi nó thu thập chúng từ các server DNS khác cho các yêu cầu của ứng dụng client , server DNS trong bộ nhớ đệm sẽ xây dựng cache cho dữ liệu DNS gần đây. Tùy thuộc vào số lượng client sử dụng server , dung lượng bộ nhớ cache và thời lượng dữ liệu TTL trên bản ghi DNS, điều này có thể tăng tốc độ phân giải DNS đáng kể trong hầu hết các trường hợp.

Server DNS chuyển tiếp

Một giải pháp thay thế để phát triển cache cho các client là thông qua việc sử dụng server DNS chuyển tiếp. Cách tiếp cận này thêm một liên kết bổ sung trong chuỗi phân giải DNS bằng cách triển khai một server chuyển tiếp chỉ đơn giản là chuyển tất cả các yêu cầu đến một server DNS khác có khả năng đệ quy (chẳng hạn như server DNS bộ nhớ đệm).

Ưu điểm của hệ thống này là nó có thể cung cấp cho bạn lợi thế của bộ nhớ đệm có thể truy cập local trong khi không phải thực hiện công việc đệ quy (có thể dẫn đến lưu lượng mạng bổ sung và có thể chiếm tài nguyên đáng kể trên các server có lưu lượng truy cập cao). Điều này cũng có thể dẫn đến một số linh hoạt thú vị trong việc tách lưu lượng truy cập riêng tư và công khai của bạn bằng cách chuyển tiếp đến các server khác nhau.

Server DNS chuyển tiếp có các thuộc tính sau:

  • Khả năng xử lý các yêu cầu đệ quy mà không cần thực hiện đệ quy chính nó. Thuộc tính cơ bản nhất của server DNS chuyển tiếp là nó chuyển các yêu cầu đến một tác nhân khác để giải quyết. Server chuyển tiếp có thể có tài nguyên tối thiểu và vẫn cung cấp giá trị lớn bằng cách tận dụng bộ nhớ cache của nó.
  • Cung cấp bộ nhớ cache local tại một vị trí mạng gần hơn. Đặc biệt nếu bạn không muốn xây dựng, duy trì và bảo mật một giải pháp DNS đệ quy chính thức, một server chuyển tiếp có thể sử dụng các server DNS đệ quy công cộng. Nó có thể tận dụng các server này trong khi di chuyển vị trí bộ nhớ đệm chính đến rất gần các client . Điều này có thể làm giảm thời gian trả lời.
  • Tăng tính linh hoạt trong việc xác định không gian domain local . Bằng cách chuyển yêu cầu đến các server khác nhau một cách có điều kiện, server chuyển tiếp có thể đảm bảo các yêu cầu nội bộ được phục vụ bởi các server riêng trong khi các yêu cầu bên ngoài sử dụng DNS công cộng.

Giải pháp kết hợp

Mặc dù các giải pháp trên được xây dựng với các mục đích rất cụ thể, nhưng bạn thường mong muốn cài đặt server DNS của bạn để kết hợp các ưu điểm của từng giải pháp.

Server DNS có thể được cấu hình để hoạt động như một server lưu trữ, đệ quy cho một số client local được chọn, trong khi chỉ trả lời các yêu cầu lặp đi lặp lại, có thẩm quyền từ các client khác. Đây là một cấu hình phổ biến vì nó cho phép bạn trả lời các yêu cầu chung cho domain của bạn , đồng thời cho phép các client local của bạn sử dụng server để phân giải đệ quy.

Trong khi một số phần mềm DNS được thiết kế đặc biệt để thực hiện một role cụ thể, các ứng dụng như Bind cực kỳ linh hoạt và được dùng như các giải pháp kết hợp. Trong một số trường hợp, việc cố gắng cung cấp quá nhiều dịch vụ trong một server có thể dẫn đến suy giảm hiệu suất, trong nhiều trường hợp, đặc biệt là trong trường hợp cơ sở hạ tầng nhỏ, việc duy trì một giải pháp tất cả trong một là hợp lý nhất.

Sự khác biệt quan hệ

Mặc dù sự khác biệt rõ ràng nhất giữa các cấu hình server DNS có lẽ là chức năng, nhưng sự khác biệt về quan hệ cũng cực kỳ quan trọng.

Server chính và phụ

Với tầm quan trọng của DNS trong việc làm cho các dịch vụ và toàn bộ mạng có thể truy cập được, hầu hết các server DNS có thẩm quyền cho một vùng sẽ có dự phòng tích hợp. Có nhiều thuật ngữ khác nhau cho mối quan hệ giữa các server này, nhưng nhìn chung, một server có thể là server chính hoặc phụ trong cấu hình của nó.

Cả server chính và server phụ đều có thẩm quyền cho các khu vực mà chúng xử lý. Thiết bị chính không có bất kỳ quyền nào trên các vùng hơn thiết bị thứ cấp. Yếu tố phân biệt duy nhất giữa server chính và server phụ là nơi chúng đọc các file vùng của bạn .

Server chính đọc các file vùng của nó từ các file trên đĩa hệ thống. Đây thường là nơi administrator vùng thêm, chỉnh sửa hoặc chuyển các file vùng root .

Server phụ nhận các vùng mà nó có thẩm quyền thông qua chuyển vùng từ một trong các server chính cho vùng. Khi nó có các vùng này, nó sẽ đặt chúng vào bộ nhớ cache. Nếu phải khởi động lại, trước tiên nó sẽ kiểm tra bộ nhớ cache để xem các khu vực bên trong có được cập nhật hay không.Nếu không, nó yêu cầu thông tin cập nhật từ server chính.

Các server không được xếp hạng để chỉ là server chính hoặc phụ cho tất cả các khu vực mà chúng xử lý. Trạng thái chính hoặc phụ được chỉ định trên cơ sở từng khu vực, vì vậy server có thể là trạng thái chính cho một số khu vực và trạng thái phụ cho những khu vực khác.

Vùng DNS thường có ít nhất hai server định danh. Bất kỳ vùng nào chịu trách nhiệm về vùng có thể định tuyến internet phải có ít nhất hai server định danh. Thông thường, nhiều server định danh hơn được duy trì để tăng tải và tăng khả năng dự phòng.

Server công cộng và server riêng

Thông thường, các tổ chức sử dụng DNS cả bên ngoài và bên trong. Tuy nhiên, thông tin cần được cung cấp trong cả hai lĩnh vực này thường rất khác nhau.

Một tổ chức có thể duy trì một server DNS chỉ có thẩm quyền khả dụng bên ngoài để xử lý các truy vấn DNS công khai cho các domain và vùng mà tổ chức đó xử lý. Đối với user nội bộ, tổ chức có thể sử dụng server DNS riêng chứa thông tin có thẩm quyền mà DNS công cộng cung cấp, cũng như thông tin bổ sung về server và dịch vụ nội bộ. Nó cũng có thể cung cấp các tính năng bổ sung, chẳng hạn như đệ quy và bộ nhớ đệm cho các client nội bộ của nó.

Mặc dù ta đã đề cập đến khả năng có một server duy nhất xử lý tất cả các việc này trong server “kết hợp” ở trên, có những lợi thế nhất định đối với việc chia nhỏ dung lượng công việc. Trên thực tế, việc duy trì các server hoàn toàn riêng biệt (nội bộ và bên ngoài) mà không có kiến thức về nhau thường là mong muốn. Điều đặc biệt quan trọng, từ quan điểm bảo mật, server công cộng không có bản ghi của đối tác riêng. Điều này nghĩa là không liệt kê các server định danh riêng của bạn với các bản ghi NS trong các file khu vực công cộng.

Có một số cân nhắc bổ sung cần ghi nhớ. Mặc dù có thể dễ dàng hơn để các server công cộng và riêng tư của bạn chia sẻ dữ liệu vùng mà chúng có điểm chung trong mối quan hệ chính-phụ truyền thống, nhưng điều này có thể làm rò rỉ thông tin về cơ sở hạ tầng riêng tư của bạn.

Ngoài việc chỉ giữ các server riêng của bạn tránh xa các file vùng (về cơ bản là một thực thể có thể tìm kiếm công khai), bạn cũng nên xóa mọi tham chiếu đến server riêng trong các file cấu hình của server công cộng. Điều này nghĩa là xóa các chi tiết chuyển, thông báo và cấu hình chính để sự xâm phạm của server công cộng không nghĩa là server định danh nội bộ của bạn đột ngột bị lộ.

Điều này nghĩa là duy trì các file vùng riêng biệt cho từng vùng, có thể là một công việc bổ sung. Tuy nhiên, điều này có thể cần thiết để tách biệt và bảo mật tuyệt đối.

Kết luận

Ở giai đoạn này, bạn có thể biết rằng có một chút linh hoạt trong việc lựa chọn cấu hình DNS của bạn .

Lựa chọn của bạn phần lớn sẽ phụ thuộc vào nhu cầu của tổ chức bạn và liệu ưu tiên chính của bạn là cung cấp độ phân giải DNS nhanh hơn cho một số ứng dụng client (bộ nhớ đệm hoặc chuyển tiếp) hay để phục vụ các domain và vùng của bạn với internet ở quy mô lớn ( server có thẩm quyền). Các cách tiếp cận kết hợp là phổ biến và cuối cùng, cả hai mặt của quá trình giải quyết cần được tính đến.

Trong hướng dẫn tiếp theo của ta , ta sẽ trình bày cách bắt đầu với một số cấu hình này. Ta sẽ bắt đầu bằng cách dạy cách cài đặt bộ nhớ đệm hoặc server chuyển tiếp . Sau đó, ta sẽ trình bày cách phục vụ domain của bạn bằng cách cài đặt một cặp server DNS chỉ có thẩm quyề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
cách cấu hình bind làm server DNS chỉ ủy quyền trên Ubuntu 14.04
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