Monday, October 2, 2017

DNS Protocol

Giao thức DNS bao gồm các loại thông điệp DNS khác nhau được xử lý theo thông tin trong các trường của thông điệp. Trong bài viết này thảo luận các kiểu thông điệp DNS và các trường trong mỗi kiểu. Dưới đây là một số chủ đề về các thông điệp DNS sẽ được thảo luận:
·         Kiểu thông điệp
·         Định dạng thông điệp truy vấn DNS
·         Header của thông điệp truy vấn DNS
·         Mục hỏi truy vấn DNS
·         Bản ghi tài nguyên (RRs) DNS
·         Tên thông điệp truy vấn
·         Tên truy vấn phản hồi
·         Tên thông điệp truy vấn đảo ngược
·         Đinh dạng thông điệp cập nhật DNS
·         Cờ thông điệp cập nhật DNS
·         Thông điệp phản hồi cập nhật động

Kiểu thông điệp
Có ba kiểu thông điệp DNS:
·         Truy vấn
·         Phản hồi
·         Cập nhật
Thông điệp truy vấn và phản hồi được định nghĩa theo tiêu chuẩn DNS ban đầu, và thông điệp cập nhật được định nghĩa theo RFC 2136. Cả ba kiểu này tuân theo một định dạng thông điệp chung.

Định dạng thông điệp DNS query
Định dang thông điệp DNS phổ biến có độ dài cố định, 12 byte cho tiêu đề và một vị trí biến dành cho câu hỏi, trả lời, quyền hạn và bản ghi tài nguyên DNS bổ sung. Định dạng này có thể minh họa như bảng dưới đây:

Tiêu đề thông điệp truy vấn DNS
Tiêu đề thông điệp DNS bao gồm các trường sau và theo thứ tự:

Mục hỏi truy vấn DNS
Mục hỏi truy vấn DNS chứa tên miền đang được truy vấn và có 3 trường sau:

Bản ghi tài nguyên DNS
Phần trả lời, thẩm quyền, và thông tin bổ sung của thông điệp phản hồi DNS có thể chứa đựng bản ghi tài nguyên để trả lời phần thông điệp truy vấn hỏi. Bản ghi tài nguyên được định dạng như sau:

Trường Tên bản ghi tài nguyên được mã hóa như cách trong trường Tên câu hỏi trừ khi tên đã có ở một chỗ nào đó trong thông điệp DNS, trong trường hợp này trường 2-byte được dùng để thay thế tên được mã hóa theo độ dài và hoạt động như một con trỏ tới tên đã có.

Định dạng thông điệp Name Query
Định dạng thông điệp Name Query giống như định dạng thông điệp DNS miêu tả ở trên. Trong một thông điệp Name Query thông thường, các trường thông điệp DNS được đặt như dưới đây:


Định dạng thông điệp Name Query Response
Định dạng thông điệp Name Query Response giống như định dạng thông điệp DNS miêu tả ở trên. Trong một thông điệp Name Query thông thường, các trường thông điệp DNS được thiết lập như dưới đây:

Định dạng thông điệp Reverse name query
Thông điệp Reverse name query dùng định dạng chung với các thông điệp cùng với những khác biệt sau:
·        DNS client xây dựng tên miền trong miền in-addr.arpa dựa trên địa chỉ IP được truy vấn.
·        Một bản ghi tài nguyên con trỏ (PTR) được truy vấn hơn là một bản ghi tài nguyên host (A).

Định dạng thông điệp DNS update
Định dạng thông điệp DNS Update sử dụng một tiêu đề xác định thao tác cập nhật để thực thi và bộ bản ghi tài nguyên chứa nội dung cập nhật.  Định dạng thông điệp DNS uodate có các trường dưới đây:
·   Định dạng: Là trường 16-bit nhận dạng được chỉ định bởi DNS client requestor. Định dạng này được sao chép tương ứng với phản hồi và có thể sử dụng bởi requestor khớp với phản hồi của những yêu cầu nổi bật, hoặc của máy chủ để phát hiện những yêu cầu trùng lặp từ một số requestor khác.
·     Cờ: Trường cờ trong thông điệp DNS update là 16-bit. Xem chi tiết miêu tả mỗi cờ “Trường DNS Update Message Flags” ở phần dưới.
·      Số lượng zone entries: Số bản ghi tài nguyên trong phần Zone entry.
·     Số bản ghi tài nguyên tiên quyết: Số bản ghi tài nguyên trong phần bản ghi tài nguyên tiên quyết.
·        Số bản ghi tài nguyên cập nhật: Số bản ghi tài nguyên trong phần bản ghi tài nguyên cập nhật.
·        Số bản ghi tài nguyên bổ sung: Số bản ghi tài nguyên trong phần bản ghi tài nguyên bổ sung.
·        Zone entry: Biểu thị vùng của các bản ghi sẽ được cập nhật. Tất cả các bản ghi được cập nhật phải trong cùng một vùng, và do đó Zone Section cho phép chứa chính xác một bản ghi. Nó có 3 giá trị: ZNAME là tên vùng, ZTYPE phải là SOA, và ZCLASS là lớp của vùng.
·        Bản ghi tài nguyên tiên quyết: Chứa đựng tập hợp các bản ghi tài nguyên tiên quyết phải được thỏa mãn tại thời điểm thông điệp cập nhật được nhận bởi master DNS server. Có 5 bộ giá trị có thể biểu diễn:
o   Bộ bản ghi tài nguyên tồn tại (giá trị độc lập). Ít nhất một bản ghi tài nguyên cùng với tên cụ thể và kiểu (trong vùng và lớp quy định tại Zone Section) phải tồn tại.
o   Bộ bản ghi tài nguyên tồn tại (giá trị phụ thuộc). Là một tập hợp các bản ghi tài nguyên có tên cụ thể, kiểu tồn tại và có cùng thành viên với dữ liệu tương tự với bản ghi tài nguyên tài nguyên được xác định trong phần này.
o   Bộ bản ghi tài nguyên không tồn tại. Không có một bản ghi tài nguyên nào cùng với tên xác định và kiểu (trong vùng và lớp được quy định tại Zone section) tồn tại.
o   Tên được dùng. Ít nhất một bản ghi tài nguyên cùng với tên chỉ định (trong vùng và lớp quy định tại Zone section) tồn tại. Điều kiện tiên quyết này là không thỏa mãn bởi empty nonterminals.
o   Tên không dùng. Không bản ghi tài nguyên thuộc bất kỳ kiểu sở hữu nào của tên được chỉ định. Điều kiện tiên quyết này là thỏa mãn bởi empty nonterminals..
·        Bản ghi tài nguyên cập nhật: Chứa các bản ghi tài nguyên sẽ được thêm vào  hoặc xóa đi khỏi một vùng. Một trong bốn thao tác sẽ được thực hiện trong suốt thời gian cập nhật:
o   Thêm bản ghi tài nguyên vào bộ các bản ghi tài nguyên.
o   Xóa một bộ bản ghi tài nguyên.
o   Xóa tất cả các bản ghi tài nguyên cùng tên.
o   Xóa một bản ghi tài nguyên từ bộ bản ghi tài nguyên.
·        Bản ghi tài nguyên bổ sung: Chứa những bản ghi tài nguyên có liên quan đến bản cập nhật, hoặc với bản ghi tài nguyên mới đang được cập nhật.

Trường DNS update message flags.
Trường DNS update message flags dùng các cờ sau:
·        Yêu cầu/ Phản hồi: là trường 1-bit đặt bằng 0 nếu yêu cầu cập nhật và bằng 1 nếu phản hồi cập nhật.
·        Operation code: là trường 4-bit đặt bằng 0x5 cho DNS updates.
·        Reserved: là trường 7-bit đặt bằng 0.
·        Return code: là trường 4-bit chứa mã đại diện cho kết quả của truy vấn cập nhật. Các mã dưới đây:

Định dạng thông điệp phản hồi Dynamic update.

Thông điệp phản hồi Dynamic update dựa theo định dạng thông điệp DNS update, ngoại trừ DNS flags. Các cờ tiêu đề thông điệp phản hồi Dynamic update cho thấy việc cập nhật thành công bao gồm các mã phản hồi thành công hoặc một trong các mã lỗi miêu tả trong cờ thông điệp DNS update.

No comments:

Post a Comment