Bộ giao thức Internet |
---|
Tầng ứng dụng (Application layer) |
|
Tầng giao vận (Transport layer) |
|
Tầng mạng (Internet layer) |
|
Tầng liên kết (Link layer) |
|
Hệ thống giải quyết tên miền (viết tắt là DNS, viết đầy đủ là Hệ thống Tên Miền) là một công cụ cho phép ánh xạ giữa địa chỉ IP và tên miền trên Internet.
Tổng quan chung
Hệ thống giải quyết tên miền (DNS) cơ bản là một công cụ giúp chuyển đổi tên miền dễ nhớ (dạng ký tự, ví dụ www.example.com) sang địa chỉ IP (dạng số, ví dụ 123.11.5.19) tương ứng. DNS hỗ trợ liên kết với các thiết bị mạng để xác định và địa chỉ hóa các thiết bị trên Internet.
So sánh thường được sử dụng để giải thích DNS là, nó tương đương với một 'Sổ Địa chỉ', có khả năng tìm kiếm và dịch tên miền thành địa chỉ IP. Ví dụ, www.example.com dịch thành 208.77.188.166. Tên miền Internet dễ nhớ hơn các địa chỉ IP, ví dụ như 208.77.188.166 (IPv4) hoặc 2001: db8: 1f70:: 999: de8: 7648:6 e8 (IPv6).
Hệ thống phân phối tên miền chịu trách nhiệm phân bổ và ánh xạ tên miền đến địa chỉ IP bằng cách xác định rõ máy chủ có thẩm quyền cho từng tên miền. Các máy chủ có thẩm quyền được giao trách nhiệm cho tên miền riêng của họ và có thể chỉ định máy chủ khác để đảm bảo sự duy nhất cho các tên miền phụ. Kỹ thuật này triển khai các cơ chế phân phối DNS, chịu đựng lỗi và giúp tránh cần thiết của một trung tâm duy nhất để đăng ký và cập nhật liên tục.
Nhìn chung, Hệ thống phân giải tên miền cũng lưu trữ các loại thông tin khác như danh sách máy chủ email chấp nhận thư điện tử cho một tên miền Internet. Bằng cách cung cấp dịch vụ đổi hướng rộng lớn, Hệ thống phân giải tên miền là một phần thiết yếu của chức năng Internet. Nó cũng hỗ trợ các định dạng như thẻ RFID, mã số UPC, ký tự Quốc tế trong địa chỉ email và tên máy chủ, cùng một loạt các định dạng khác có thể sử dụng DNS.
Chức năng của DNS
Mỗi trang web có một tên (gọi là tên miền hoặc URL: Uniform Resource Locator) và một địa chỉ IP. Địa chỉ IP bao gồm 4 nhóm số phân cách bằng dấu chấm (IPv4). Khi mở trình duyệt và nhập tên trang web, trình duyệt sẽ truy cập trực tiếp vào trang web mà không cần biết địa chỉ IP của trang đó. Quá trình 'dịch' tên miền thành địa chỉ IP để trình duyệt hiểu và truy cập vào trang web là công việc của một máy chủ DNS. Các máy chủ DNS trợ giúp nhau để dịch địa chỉ 'IP' thành 'tên' và ngược lại. Người sử dụng chỉ cần nhớ 'tên', không cần nhớ địa chỉ IP (địa chỉ IP là những con số rất khó nhớ).
Nguyên lý hoạt động của DNS
- Mỗi nhà cung cấp dịch vụ vận hành và duy trì máy chủ DNS riêng của mình, bao gồm các máy chủ trong phần riêng của họ trên Internet. Điều này có nghĩa là khi một trình duyệt web tìm kiếm địa chỉ của một trang web, máy chủ DNS phân giải tên của trang này phải là máy chủ DNS của tổ chức quản lý trang web đó, chứ không phải của bất kỳ tổ chức dịch vụ nào khác.
- INTERNIC (Internet Network Information Center) chịu trách nhiệm giám sát các tên miền và các máy chủ DNS tương ứng. INTERNIC là một tổ chức do NSF (National Science Foundation), AT&T và Network Solution thành lập, có trách nhiệm đăng ký các tên miền trên Internet. INTERNIC chỉ phụ trách quản lý tất cả các máy chủ DNS trên Internet mà không phải phân giải tên cho từng địa chỉ cụ thể.
- DNS có khả năng truy vấn các máy chủ DNS khác để có được tên đã được phân giải. Mỗi máy chủ DNS của một tên miền thực hiện hai nhiệm vụ khác nhau. Thứ nhất, phân giải tên từ các máy trong miền thành các địa chỉ Internet, cả bên trong và bên ngoài miền mà nó quản lý. Thứ hai, nó trả lời cho các máy chủ DNS bên ngoài đang cố gắng phân giải tên trong miền mà nó quản lý.
- Máy chủ DNS có khả năng lưu trữ các tên đã phân giải để sử dụng cho các yêu cầu phân giải sau này. Số lượng tên được lưu trữ phụ thuộc vào quy mô của từng máy chủ DNS.
Cách sử dụng DNS
Vì các máy chủ DNS có thời gian phản hồi khác nhau, có thể nhanh hoặc chậm, người sử dụng có thể lựa chọn máy chủ DNS để sử dụng. Có nhiều cách lựa chọn cho người dùng. Sử dụng máy chủ DNS mặc định của nhà cung cấp dịch vụ Internet, trong trường hợp này người dùng không cần phải cấu hình địa chỉ DNS trong kết nối mạng của họ. Sử dụng các máy chủ DNS khác (miễn phí hoặc có phí), người dùng phải cấu hình địa chỉ máy chủ DNS trong kết nối mạng của mình. Địa chỉ máy chủ DNS được hiển thị dưới dạng 4 nhóm số, mỗi nhóm cách nhau bởi dấu chấm.
Cấu trúc DNS
Không gian tên miền (Domain name space)
Không gian tên miền là một cấu trúc dạng cây, bao gồm nhiều nút. Mỗi nút trên cây có một nhãn và có thể có nhiều bản ghi tài nguyên (RR), chúng giữ thông tin liên quan đến tên miền. Nút gốc không có nhãn.
Tên miền (Domain name)
Tên miền được tạo thành từ các nhãn và được phân tách bằng dấu chấm (.), ví dụ như example.com. Tên miền cũng có thể được phân chia thành các cấp như tên miền cấp cao nhất, cấp 1, cấp 2...
Cú pháp của tên miền (Domain name syntax)
Tên miền được định nghĩa trong các RFC 1035, RFC 1123, và RFC 2181. Một tên miền bao gồm một hoặc nhiều phần, gọi là các nhãn, chúng được phân cách bởi dấu chấm (.), ví dụ như example.com.
Hệ thống phân giải tên miền hoạt động theo hướng từ phải sang trái. Ví dụ như www.example.com, nhãn example là một tên miền con của tên miền com, và www là tên miền con của tên miền example.com. Cấu trúc này có thể có tới 127 cấp.
Tên miền quốc tế hóa (Internationalized domain names)
Do hạn chế của bộ ký tự ASCII trong việc biểu diễn các ngôn ngữ khác nhau trên thế giới, ICANN đã phát triển hệ thống IDNA (Internationalized domain names Application), sử dụng ký tự Unicode để biểu diễn tên miền, ví dụ như http://TênMiềnTiếngViệt.vn.
Máy chủ tên miền (NS - Name Server)
Máy chủ tên miền chứa thông tin về một số tên miền. Hệ thống phân giải tên miền hoạt động trên nền tảng dữ liệu phân tán theo mô hình Client-Server. Các node trong hệ thống dữ liệu này là các máy chủ tên miền. Mỗi tên miền ít nhất có một máy chủ tên miền chứa thông tin về nó. Thông tin về máy chủ tên miền được lưu trữ trong các vùng của tên miền. Có hai loại Name Server (NS) là Primary và Secondary. Khi truy vấn, Client sẽ ưu tiên hỏi Primary trước và sau đó là Secondary nếu Primary không thể trả lời trong thời gian quy định.
Máy chủ tên miền có thẩm quyền (Authoritative name server)
Máy chủ tên miền có thẩm quyền là một máy chủ có khả năng trả lời các truy vấn DNS từ dữ liệu gốc, ví dụ như tên miền quản lý hoặc phương thức DNS động.
Vận hành
Cơ chế giải quyết địa chỉ (Address resolution mechanism)
Các máy chủ phân giải tên miền theo cơ chế từ cấp cao xuống cấp thấp.
Máy chủ tên miền Recursive và Cache (Máy chủ tên miền đệ quy và đệm)
Theo lý thuyết, các máy chủ tên miền có thẩm quyền có thể đủ để duy trì hoạt động của hệ thống Internet. Tuy nhiên, nếu chỉ có các máy chủ tên miền thẩm quyền, mỗi truy vấn DNS phải bắt đầu từ vùng gốc, và mỗi hệ thống người dùng phải cài đặt phần mềm để thực hiện nhiệm vụ phân giải.
Để giảm lượng băng thông trên Internet, DNS cho phép các máy chủ DNS lưu trữ kết quả truy vấn vào bộ nhớ đệm.
Giải quyết DNS
Phần client của DNS được gọi là DNS resolver.
- Truy vấn non-recursive: DNS resolver truy vấn máy chủ DNS để tìm bản ghi của tên miền mà chưa có trên máy chủ đó.
- Truy vấn recursive
- Truy vấn iterative
Circular dependencies và glue records
Bản ghi caching (Bản ghi caching)
Tra cứu ngược (Tra cứu theo địa chỉ ngược)
Tra cứu ngược là phương pháp tìm tên miền từ địa chỉ IP đã biết.
Tra cứu client (Tra cứu máy khách)
Giao thức vận chuyển dữ liệu
DNS chủ yếu hoạt động trên giao thức UDP và cổng 53. Một số hoạt động khác sử dụng giao thức TCP.
Cấu trúc gói tin DNS
- ID: Là một trường 16 bit, chứa mã nhận dạng. Được sử dụng để phân biệt truy vấn và hồi đáp DNS.
- Mã lỗi DNS có thể có các giá trị như sau: 0 cho không có lỗi, 1 cho định dạng gói tin lỗi, 2 cho lỗi server, 3 cho tên lỗi, 4 cho không thi hành, và 5 cho từ chối truy vấn.
- QDcount: Số lượng truy vấn trong gói tin DNS. ANcount: Số lượng tài nguyên trong phần trả lời.
NScount: Số lượng tài nguyên được ghi lại trong phần có thẩm quyền của gói tin DNS.
- ARcount: Số lượng tài nguyên được ghi lại trong phần thêm vào của gói tin DNS.
Mẩu tin tài nguyên DNS (DNS resource records)
Mẩu tin Resource Record (RR) lưu trữ thông tin về tên miền, được phân chia theo lớp và kiểu khác nhau. Các kiểu RR phổ biến bao gồm:
- Start of Authority (SOA) resource record: định nghĩa các tham số toàn cục cho vùng hoặc tên miền. Mỗi vùng chỉ có một mẩu tin SOA và phải đặt ở đầu tiên trước các mẩu tin khác.
Name server (NS) resource record: chỉ ra Máy chủ tên miền (Name server) của vùng đó.
A Resource Records (mẩu tin địa chỉ): chỉ ra địa chỉ IP tương ứng của tên miền, ví dụ 'example IN A 172.16.48.1'
PTR Records (mẩu tin con trỏ): ngược lại với A record, PTR chỉ ra tên miền tương ứng của một địa chỉ IP, ví dụ '1.48.16.172.in-addr.arpa. IN PTR example.com.'
CNAME Resource Records: dùng để tạo biệt danh cho một tên miền, ví dụ 'ftp.example.com. IN CNAME ftp1.example.com.'
MX Resource Records (mẩu tin Mail exchange): chỉ ra máy chủ mail của tên miền.
TXT Resource Records (mẩu tin text): chứa thông tin dạng văn bản không định dạng, thường dùng để chứa các thông tin bổ sung.
Tất cả các bản ghi tài nguyên DNS tuân theo chuẩn RFC 1035 khi truyền qua Internet:
Trường | Mô tả | Độ dài (octets) |
---|---|---|
NAME | Tên của nốt có record liên quan | Variable |
TYPE | Loại RR dạng số (ví dụ, 15 trong MX RRs) | 2 |
CLASS | Mã lớp | 2 |
TTL | Thời gian theo giây để RR còn hiệu lực (Tối đa 2−1, khoảng 68 năm) | 4 |
RDLENGTH | Độ dài trường RDATA | 2 |
RDATA | RR bổ sung | Biến đổi, như RDLENGTH |