CHƯƠNG I: CÁC GIAO THỨC LIÊN QUAN
1.5 HỆ THỐNG PHÂN GIẢI TÊN MIỀN-DNS (DOMAIN NAME SYSTEM)
Mỗi máy tính trong mạng muốn liên lạc hay trao đổi thông tin, dữ liệu cho nhau cần phải biết rõ địa chỉ IP của nhau. Nếu số lƣợng máy tính trong mạng nhiều thì việc nhớ những IP này là rất khó khăn. Mỗi máy tính ngoài địa chỉ IP ra còn có tên máy (host name). Đối với con người thì việc nhớ tên máy bao giờ cũng dễ nhớ hơn địa chỉ IP vì chúng có tính trực quang và gợi nhớ hơn. Do đó người ta tìm cách ánh xạ địa chỉ IP thành tên máy.
Dịch vụ DNS hoạt động theo mô hình Client-Server:
Server: có chức năng là phân giải tên thành địa chỉ IP và ngƣợc lại địa chỉ IP thành tên, được gọi là Name Server, lưu trữ cơ sở dữ liệu của DNS.
Hình 1.12. Sơ đồ tổ chức DNS
Client: truy vấn phân giải tên đến DNS server đƣợc gọi là Resolver, chứa các hàm thƣ viện dùng để tạo các truy vấn (query) đến Name Server.DNS đƣợc thi hành nhƣ 1 giao thức của tầng Application trong mô hình mạng
TÌM HIỂU VÀ MINH HỌA SNIFFER 23 TCP/IP.Một hostname trong domain là sự kết hợp giữa những từ phân cách nhau bởi dấu chấm (.).
Ví dụ: Tên máy là srv1 gọi là hostname. Tên đầy đủ trong domain theo mô hình trên thì là srv1.csc.hcmuns.edu.vn gọi là FQDN (Fully Qualified Domain Name).
1.5.2 Cơ chế phân giải tên
Phân giải tên thành địa chỉ IP
Root Name Server là máy chủ quản lý các name server ở mức top-level domain. Khi có query về 1 tên domain nào đó thì Root Name Server sẽ cung cấp tên và địa chỉ IP của name server quản lý top-level domain đó (thực tế thì hầu hết các root server cũng chính là máy chủ quản lý top-level domain) và đến lƣợc các name server của top-level domain cung cấp danh sách các name server có quyền trên các secon-level domain mà domain này thuộc vào. Cứ nhƣ thế đến khi nào tìm đƣợc máy chủ quản lý tên domain cần truy vấn.
Qua quá trình trên cho thấy vai trò rất quan trọng của Root Name Server trong quá trình phân giải tên domain. Nếu mọi Root Name Server trên mạng Internet không liên lạc đƣợc với nhau thì mọi yêu cầu phân giải tên đều sẽ không đƣợc thực hiện.
Ví dụ : Client cần truy cập trang web Yahoo thì Client sẽ yêu cầu phân giải địa chỉ IP của Web Server nào có chứa website Yahoo này. Đầu tiên Client sẽ tìm trong cache của nó, nếu cache của nó không có thì nó sẽ gửi request querry đến DNS local (nếu trong mạng nội bộ có DNS Server). Sau đó DNS local cũng sẽ tìm trong cache của nó, nếu có nó sẽ gửi địa chỉ IP cần truy vấn đến cho Client, nếu cache không có thì lúc này DNS local sẽ gửi request query này đến 1 Root Name Server nào đó gần nó nhất mà nó biết đƣợc. Sau đó Root Name Server này sẽ trã lời địa chỉ IP của Name Server quản lý miền .com cho DNS local. DNS local lại hỏi tiếp name server quản lý domain .com miền yahoo.com địa chỉ IP là bao nhiêu. Cuối cùng DNS local truy vấn máy chủ quản lý domain Yahoo và nhận đƣợc câu trả lời.Truy vấn có thể ở 2 loại:
TÌM HIỂU VÀ MINH HỌA SNIFFER 24 - Truy vấn đệ quy (recursive query) : khi name server nhận đƣợc truy vấn
dạng này, nó bắt buộc phải trả về kết quả tìm đƣợc hoặc thông báo lỗi nếu nhƣ truy vấn này không phân giải đƣợc. Name Server không thể tham chiếu đến 1 Name Server khác. Name Server có thể gửi truy vấn dạng recursive hoặc interative đến Name Server khác nhƣng phải thực hiện cho đến khi nào có kết quả mới thôi.
Hình 1.13. Truy vấn đệ quy
- Truy vấn tương tác (Iteractive query): khi name server nhận được truy vấn dạng này, nó trả lời cho Resolver với thông tin tốt nhất mà nó có đƣợc vào thời điểm lúc đó. Bản thân name server không thực hiện bất cứ một truy vấn nào thêm. Thông tin trả về lúc đó có thể lấy từ dữ liệu cục bộ (kể cả cache). Trong trường hợp Name Server không tìm thấy thông tin trong dữ liệu cục bộ nó sẽ trả về tên miền và địa chỉ IP của Name Server nào gần nhất mà nó biết.
Phân giải địa chỉ IP thành tên host
Để có thể phân giải tên máy tính của 1 địa chỉ IP, trong không gian tên miền người ta bổ xung thêm 1 nhánh tên miền mà được lập chỉ mục theo địa chỉ IP.
Phần không gian này có tên miền là in-addr.arpa. Mỗi node trong miền in- addr.arpa có 1 tên nhãn là chỉ số thập phân của địa chỉ IP.
TÌM HIỂU VÀ MINH HỌA SNIFFER 25 Hình 1.14. Truy vấn tương tác
Ví dụ: Miền in-addr.arpa có thể có 256 subdomain tương ứng với 256 giá trị từ 0 đến 255 của byte đầu tiên trong địa chỉ IP. Trong mỗi subdomain lại có 256 subdomain con nữa ứng với byte thứ 2. Cứ nhƣ thế và đến byte thứ 4 có các bản ghi cho biết tên miền đầy đủ của các máy tính hoặc các mạng có địa chỉ IP tương ứng.