Mình có thắc mắc như trên, sao các công ty, tổ chức lớn (như các doanh nghiệp kinh doanh hosting) lại cần riêng 1 DNS server riêng mà không dùng các public DNS server như của Google,…
Thêm một câu hỏi cần mọi người giải đáp nữa là người ta làm như thế nào mà DNS server có thể ánh xạ từ mọi tên miền sang địa chỉ IP được? DNS server đấy chứa được hết các tên miền của website hay là có cơ chế như thế nào?
Tại sao các công ty mạng cần DNS Server riêng?
Các doanh nghiệp lớn sử dụng domain để dễ dàng quản lý các máy trạm của nhân viên trong doanh nghiệp. DNS server được dựng lên để phân giải những domain đó. Các doanh nghiệp cũng có thể tự mình tạo ra những domain nội bộ dành cho các trang web chỉ hoạt động trong nội bộ của mình trên DNS server nội bộ của riêng họ. Các DNS nội bộ trong doanh nghiệp cũng được triển khai vì mục đích bảo mật nhằm phân giải 1 số tên miền quan trọng. Và còn nhiều mục đích khác …
Các DNS server trên thế giới được phân chia thành từng thứ bậc. Trong đó thứ bậc cao nhất là 13 DNS server Root. 13 DNS server này chứa đầy đủ Domain và IP của các website public trên toàn thế giới. Dưới 13 DNS server root là các Local Name Server và các DNS server nhỏ hơn. Khi bạn truy cập web mà trên máy tính thiết lập DNS server là 8.8.8.8 chẳng hạn, thì bạn sẽ truy vấn DNS trên DNS server 8.8.8.8. Nếu DNS server 8.8.8.8 không có bản ghi nào về domain bạn truy vấn, nó sẽ forward các truy vấn DNS lên DNS server cấp cao hơn, cứ như thế cho tới khi truy vấn domain được đáp ứng. Nếu bạn không thiết lập DNS trên máy tính có nghĩa là bạn đang sử dụng DNS được thiết lập trên Modem và thường mặc định nó sẽ là địa chỉ DNS server của nhà mạng bạn đang sử dụng.
13 server root thường chỉ làm nhiệm vụ phân tách tên domain theo từng quốc gia, zone thôi chứ nhỉ.
Soft resolver (sống ở local PC của mình) sẽ contact DNS Server được chỉ định, bọn này tìm -> forward sang root server để tìm authorative root name server để hỏi. Một domain sẽ chứa phần generic name (.com, .org), mã quốc gia (.se, .vn) và bọn server root này sẽ chứa thông tin tổ chức cấp phát các đuôi này. Ví dụ, nó phân giải game.vn, nó sẽ tìm vnnic và tiến hành pass queries cho bọn này.
Giả sử thằng mua game.vn từ vnnic, nó làm thêm vài domain phụ như forum.game.vn và nó forward toàn bộ các subdomain queries này về domain của nó, thì khi mình gõ forum.vnnic.vn, lúc này node mới là forum, vnnic sẽ forward sang dns server riêng của thằng mua.
Cái hierrachy (thứ bậc) hay còn gọi là các TLD là dành cho domain name, chứ không phải DNS Server phân thứ bậc.
Ví dụ mình sẽ truy cấp forum.game.vn, các bước sẽ là:
1- Tìm trong file hosts xem có domain name nào trỏ trục tiếp vào IP không?
2- Nếu không có, tìm DNS server mà resolver được config sẽ dùng hỏi đáp? Thằng DNS server được chỉ định này sẽ tìm trong cache của nó và trả lời. Nếu không có, nó hỏi root server. (. server)
3- Thằng root server này (không có db chứa tất cả DNS như post trên đâu nhé) sẽ refer sang cho authorative sau khi break cái name này thành nhiều phần, ở đây là forum, game và .vn. Nó sẽ refer vnnic để hỏi cái đuôi .vn
4- Thằng vnnic (root name server) lại nhìn trong db của nó để xem cái game.vn hiện đang ở đâu. Nếu tìm thấy, trả về cho DNS Server chỉ định để thằng này trả về cho resolver. Nếu trong bản ghi, nó thấy một số record có forward sang DNS doanh nghiệp (hoặc của hosting), thì nó lại refer sang cho DNS doanh nghiệp (tiếp tục hỏi về thằng forum)
5- Thằng DNS doanh nghiệp lúc này lục trong db của nó và trả về cho DNS chỉ định, để DNS chỉ định trả về cho resolver.
Đa phần thì các IP này được cache tại DNS Server chỉ định (+ cache tại client). Thời gian xóa cache được gọi là TTL (time to live, thời gian sống), nếu còn TTL thì nó lấy ra luôn, còn nếu đã nghoẻo thì nó mới đi hỏi.
Ngoài ra, không có khái niệm không thiết lập DN Server mà cái đó được gọi là thiết lập động. Modem được cài DHCP sẽ cấp phát IP động + DNS Server cho client nhé.
Cảm ơn mọi người nhiều
Mình bổ sung thêm 1 chút, không có khái niệm server cấp cao hơn nhé. Các máy tính được nối với nhau ngang hàng (thế nên mới gọi là network), các server tùy ý nói chuyện với nhau. Không có “server CEO” và “server worker”. Server chỉ là máy tính phục vụ các yêu cầu từ các máy tính khác (thế nên dịch server là máy chủ nghe không ổn, phải gọi là máy phục vụ).
Thêm chút nữa, vì IP được cấp phát động (sử dụng DHCP ý) hoặc domain có thể chuyển sang các IP # nên mới cần cái TTL. Chứ còn domain gắn chặt cứng với IP thì không cần khái niệm này luôn.
Ngoài ra, root server hay root name server có thể không phải là 1 máy, mà là một cụm máy cùng cung cấp dịch vụ phân giải tên miền (chuyển từ tên ->IP). Cái này liên quan tới balancing và fail-safe backup.