18/09/2018, 14:04

Tìm hiểu hệ thống tên miền DNS – Domain Name System

Hệ thống phân giải tên miền Domain Name System (hay còn gọi là DNS) là một giao thức phổ biến trên mạng Internet. Vậy DNS là gì và công dụng của DNS trong mạng Internet như thế nào? DNS được định nghĩa chính thức trong chuẩn RFC1034 và RFC1035, DNS giúp mạng Internet trở nên thân thiện hơn với ...

Hệ thống phân giải tên miền Domain Name System (hay còn gọi là DNS) là một giao thức phổ biến trên mạng Internet. Vậy DNS là gì và công dụng của DNS trong mạng Internet như thế nào?

DNS được định nghĩa chính thức trong chuẩn RFC1034 và RFC1035, DNS giúp mạng Internet trở nên thân thiện hơn với người dùng.

Mỗi tài nguyên mạng đều được thể hiện bằng một địa chỉ số (được gọi là địa chỉ IP) ví dụ 123.123.123.123 là một dạng địa chỉ IPv4. Và hiện nay với sự ra đời của mọi thiết bị kết nối Internet (Internet of Things), số lượng địa chỉ IPv4 đã cạn kiệt và IPv6 đã được ra đời nhằm dần dần thay thế IPv4.

Người dùng chỉ nhớ được tên website mà rất khó có thể nhớ được dãy số địa chỉ IP của website đó. Chính vì vậy xuất hiện DNS là một dịch vụ cho phép người dùng nhập tên miền trên trình duyệt web và tên website đó sẽ được ánh xạ đến địa chỉ tài nguyên mạng nơi website được lưu trữ trên Internet.

Ai điều hành DNS?

Tổ chức Internet Corporation for Assigned Names and Numbers (ICANN) có trách nhiệm điều hành hệ thống root, chia thành các kiểu tên miền có dạng .com, .org, .edu. Mỗi quốc gia đều cử ra một đại diện điều hành tên miền cấp cao của quốc gia mình. Ví dụ tại Việt Nam tên miền .vn do Trung tâm Internet Việt Nam (VNNIC) kiểm soát.

Các kiểu tên miền

Một tên miền được chia ra thành nhiều cấp bậc:

  • gTLD (Generic Top Level Domain) – tên miền kết thúc bằng .com, .net, .org, .gov, .edu và .name.
  • ccTLD (Country Code Top Level Domain) – tên miền riêng của mỗi quốc gia (ví dụ .il, .ru, .uk, ,us, .cn, .vn).
  • Infrastructure TLD – Xử lý và điều hướng chuyển đổi từ địa chỉ IP sang tên miền, Ví dụ IPv4 48.199.81.in-addr.arpa. Sử dụng trong bản ghi PTR (được giải thích bên dưới).
  • Cấp 2ld, 3ld, 4ld – Ví dụ www.somedomain.co.uk, uk là ccTLD, co là 2ld, somedomain là 3ld và www là 4ld.

Các bản ghi DNS

Các bản ghi DNS được phân loại như sau:

    • A
      Bản ghi A xác định địa chỉ IPv4 hoặc IPv6 của tài nguyên mạng. Ví dụ bản ghi:
      www      IN        A         12.34.56.78
      trong tên miền somedomain.co.uk định nghĩa www.somedomain.co.uk được truy cập duy nhất tại địa chỉ IPv4 12.34.56.78.
    • CNAME
      Bản ghi CNAME (canonical name) xác định một định danh khác hay còn gọi là “bí danh” (alias) sẽ được phân giải đến khi tìm thấy bản ghi A. Ví dụ bản ghi:
      www      IN        CNAME          www.somedomain.co.uk
      trong tên miền somedomain.com định nghĩa định danh duy nhất www.somedomain.com là bí danh cho www.somedomain.co.uk.
    • MX
      Bản ghi MX (mail exchange) xác định tên tài nguyên và danh sách máy chủ mail theo thứ tự ưu tiên cho tên miền đó. Ví dụ bản ghi:
      somedomain.co.uk     IN        MX      10       mailsrv1
      somedomain.co.uk     IN        MX      20       mailsrv2
      xác định mailsrv1.somedomain.co.uk là máy chủ mail được ưu tiên gửi đến đầu tiên và tiếp sau đó là mailsrv2.somedomain.co.uk.
    • NS
      Bản ghi NS (name server) xác định authoritative name server của domain. Ví dụ bản ghi:
      somedomain.co.uk     IN        NS       ns1.somedomain.co.uk
      somedomain.co.uk     IN        NS       ns2.somedomain.co.uk
    • PTR
      Bản ghi PTR (pointer) trỏ một địa chỉ IP đến một bản ghi A trong chế độ ngược (reverse)  và được sử dụng trong kiểu tên miền infrastructure TLD.

PTR-Record

    • TTL
      TTL là thời gian cache của bản ghi DNS trên một máy chủ tên miền trước khi máy chủ đó tìm kiếm một phiên bản cập nhật

Bản ghi SOA – Start of Authority là gì

Thông thường, mỗi tên miền sẽ sử dụng 1 cặp DNS nào đó để trỏ về 1 hoặc nhiều máy chủ DNS, và ở đây, các máy chủ DNS có trách nhiệm cung cấp thông tin bản ghi DNS của hệ thống cho tên miền này để nó hoạt động. SOA được coi như dấu hiệu nhận biết của hệ thống về tên miền này.

Một cấu trúc của bản ghi SOA thông thường sẽ bao gồm:

ns1.somedomnain.co.uk abuse.somedomnain.co.uk 2006030501 28800 3600 604800 3600

Start-of-Authority

Trong đó:

  • ns1.somedomnain.co.uk: giá trị DNS chính của tên miền hoặc máy chủ.
  • abuse.somedomnain.co.uk: chuyển đổi từ dạng abuse@.somedomnain.co.uk, thể hiện chủ thể sở hữu tên miền này.
  • 2006030501 : Thời gian cập nhật DNS cho tên miền mới nhất.
  • 28800: số giây trước khi bản ghi DNS được tự động cập nhật lại
  • 3600: số giây trước khi bản ghi DNS bị lỗi không thể tự động cập nhật lại và cần lấy lại thông tin DNS lần tiếp theo.
  • 604800: giới hạn thời gian tính bằng giây sau khi bản ghi DNS được gỡ bỏ trên server và không còn hiệu lực trên server.
  • 3600: TTL –  xác định thời gian cachecủa bản ghi

Máy chủ phục vụ tên (Name Server -NS) là gì?

NS là một máy chủ chịu trách nhiệm trả lời truy vấn DNS

  • Nó tồn tại ở tất cả các cấp trong kiến trúc DNS
  • Authoritative name server kiểm soát một phần cơ sở dữ liệu DNS
  • Một NS có thể phục vụ nhiều zone khác nhau
  • Nhiều NS phục vụ cho một số zone/subzones nhất định

Truy vấn tương tác và truy vấn đệ quy

Truy vấn tương tác (Iterative) và truy vấn đệ quy (Recursive) là hai chức năng thường bị hiểu nhầm trong Name Server. NS truy vấn tương tác chỉ có thể trả lời thông tin mà máy chủ này biết hoặc đã được cache. Ngược lại NS đệ quy không ghi nhớ thông tin, nó sẽ hỏi các tài nguyên khác về thông tin được yêu cầu đến.

Hãy cùng xem ví dụ khi người dùng gõ http://www.google.com vào trình duyệt web và nhấn [Enter]:

Bước 1: Máy tính gửi một yêu cầu phân giải đến máy chủ NS đã được cấu hình, thông thường được đặt tại nhà cung cấp dịch vụ Internet của người dùng.

Step-1-new

“hãy cho tôi biết địa chỉ của www.google.com”

Bước 2: NS đệ quy bắt đầu hỏi một trong những máy chủ DNS gốc đã được cấu hình trước để tìm tài nguyên được yêu cầu.

step-2

“máy chủ root DNS không biết địa chỉ này là gì nhưng biết máy chủ DNS chịu trách nhiệm cho tên miền .com. Hãy hỏi tiếp máy chủ DNS đó”

Bước 3: NS đệ quy tiếp tục hỏi một trong những máy chủ DNS chịu trách nhiệm tên miền .com

step-3

“máy chủ root DNS không biết địa chỉ này là gì nhưng biết máy chủ DNS nào chịu trách nhiệm cho tên miền .google.com. Hãy hỏi tiếp máy chủ DNS đó”

Bước 4: NS đệ quy hỏi một trong những NS google.com

step-4

“máy chủ DNS chịu trách nhiệm cho tên miền .google.com trả kết quả cho NS đệ quy”

Bước 5: NS đệ quy gửi kết quả trở về máy tính của người dùng. Sau đó nó sẽ ghi nhớ (cache) dữ liệu trong khoảng thời gian TTL.

step-5

“địa chỉ của www.google.com là 216.239.53.99”

Bước 6: Máy tính người dùng đã có thể gửi HTTP request đến máy chủ web của Google.

step-6

0