Cơ chế lưu tạm (caching) trên máy DNS server
Như đã trình bày trong phần Hoạt động của DNS, quá trình
phân giải tên khá tốn thời gian và phức tạp. Tuy nhiên, trong nhiều trường hợp máy
DNS server không nhất thiết phải gửi từng truy vấn tới các name server tại mỗi
mức của tên DNS cần phân giải. Lý do là, DNS server có khả năng lưu lại các kết
quả của các lần truy vấn trước đó trong đĩa cứng của nó.
Ví dụ, trong quá trình thực hiện yêu cầu phân giải tên từ
DNS client, DNS server sẽ lưu lại địa chỉ IP của tên cần phân giải cùng với địa
chỉ IP của các name server tại mỗi mức. Lần sau, khi có yêu cầu phân giải tên
tương tự, DNS server sẽ trực tiếp trả lời cho DNS client dựa trên các thông tin
đã được lưu trong đĩa cứng. Ngoài ra, nếu DNS client yêu cầu phân giải một cái
tên khác, nhưng cùng trong một miền mà nó đã yêu cầu trước đây, DNS server sẽ
gửi truy vấn trực tiếp tới name server của miền đó, mà không gửi tới root name
server. Như vậy, việc phân giải các tên đã từng được nhiều người yêu cầu sẽ
nhanh hơn một cái tên chưa được yêu cầu phân giải bao giờ.
Cơ chế lưu tạm là một giải pháp quan trọng trong kiến trúc
DNS, cơ chế này giúp giảm số lượng các yêu cầu truy vấn gửi tới các name server
mức gốc (root) và mức một (top-level), các name server này vốn là các “cổ chai”
trong hệ thống DNS. Tuy nhiên, thông tin lưu tạm trên các DNS server cũng cần
phải được cập nhật, đây cũng là vấn đề cần xem xét của cơ chế lưu tạm.
Vì mọi DNS server đều có lưu (tạm) các thông tin của DNS
trong đĩa cứng của nó, nên khi một name server có thay đổi thông tin về DNS, thông
tin thay đổi phải được cập nhật ở tất cả các DNS server. Việc cập nhật có thể
mất hàng giờ, thậm chí hàng ngày để hoàn thành. Trong thời gian đang cập nhật,
người dùng có thể nhận được các kết quả truy vấn không chính xác.
Nếu người quản trị thiết lập thời gian lưu tạm thông tin
trên DNS server dài quá sẽ làm cho quá trình cập nhật bị chậm. Ngược lại, nếu
thời gian lưu tạm quá ngắn sẽ làm cho các name server mức gốc (root name
server) và mức một (top-level domain server) bị quá tải do quá trình cập nhật
gây ra.
Khoảng thời gian lưu tạm thông tin DNS trên các DNS server được gọi là thời gian sống của thông tin (time to live), viết tắt là TTL. Có điều đặc biệt ở đây là, TTL không phải do người quản trị trên DNS server lưu tạm (DNS server caching) thiết lập, mà nó được thiết lập tại nơi tạo và quản lý các bản ghi thông tin của DNS (tại name server).
Thông thường người quản trị sẽ dựa vào mức độ biến động của
thông tin DNS tại domain hoặc zone của mình để thiết lập giá trị TTL. Với các
hệ thống có độ biến động thông tin DNS lớn, giá trị TTL nhỏ sẽ giúp các DNS
client nhanh chóng nhận được các thông tin mới nhất. Với các hệ thống ít có sự
thay đổi thông tin DNS, giá trị TTL lớn sẽ giúp giảm áp lực trong việc cập nhật
thông tin DNS.
Trong Windows Server 2012 R2, để thay đổi giá trị TTL của một zone, bấm chuột phải vào zone, chọn Properties, chọn táp Start Of Authority (SOA), thay đổi giá trị của TTL trong mục Minimum (default) TTL. Xem hình minh họa.
Cơ chế lưu tạm (caching) trên máy DNS client (resolver)
Trên máy DNS client cũng có cơ chế lưu tạm thông tin DNS. Các
địa chỉ IP đã được phân giải và nội dung của tập tin HOSTS sẽ được lưu trong ổ
đĩa cục bộ. Khi máy client có nhu cầu phân giải tên, hệ thống sẽ kiểm tra trong
ổ đĩa cục bộ trước, sau đó, nếu không có thông tin, hệ thống mới gửi yêu cầu
phân giải tới DNS server.
Truy vấn (query) và tham vấn (referral) trong DNS
Quá trình một DNS server truy vấn một DNS server khác gọi là
quá trình tham vấn (referral). Quá trình này thường xuyên xảy ra trong hoạt
động của DNS (tạm sử dụng từ tham vấn, vì chưa tìm được từ nào thích hợp).
Để ý trong phần Hoạt động của DNS, DNS client đóng vai trò
là nơi khởi tạo một truy vấn và nhận về kết quả của truy vấn. Sau khi nhận được
yêu cầu truy vấn, DNS server của client sẽ phải tham vấn tới một vài DNS server
khác trước khi có được kết quả cuối cùng để gửi cho DNS client.
DNS sử dụng hai loại truy vấn:
- Truy vấn
đệ quy (recursive query): nếu DNS server nhận được một truy vấn đệ quy, nó sẽ chịu
hoàn toàn trách nhiệm trong việc phân giải tên đó sang IP. Nếu nó có sẵn địa chỉ
IP của tên cần phân giải, nó sẽ trực tiếp trả lời cho máy gửi truy vấn; nếu không,
nó sẽ phải gửi truy vấn đến các DNS server khác cho tới khi nào có được các
thông tin cần thiết. Các DNS client luôn sử dụng các truy vấn đệ quy.
- Truy vấn
lặp (iterative query): nếu DNS server nhận được một truy vấn lặp, nó sẽ lập tức
trả lời với thông tin tốt nhất mà nó đang có. Loại truy vấn lặp thường được sử
dụng giữa các DNS server với nhau. Việc cấu hình một DNS server gửi truy vấn đệ
quy tới một DNS server khác chỉ xảy ra khi thực hiện cấu hình server chuyển
tiếp (forwarder).
Server chuyển tiếp trong DNS (DNS forwarder)
Server chuyển tiếp (forwarder) là một DNS server, nó có
nhiệm vụ nhận và thực hiện các truy vấn đệ quy từ các DNS server khác.
Trong hệ thống mạng gồm nhiều DNS server cùng hoạt động,
người quản trị thường không muốn tất cả chúng đều trực tiếp gửi truy vấn tới
các DNS server khác trên Internet. Vì điều này thường dẫn tới có nhiều truy vấn
bị lặp lại, làm tốn băng thông Internet của hệ thống mạng.
Để khắc phục tình trạng này, Windows Server 2012 R2 cho phép
người quản trị thực hiện cấu hình một DNS server đóng vai trò là server chuyển
tiếp (forwarder), nó sẽ thay mặt các DNS server khác thực hiện tất cả các truy
vấn ra ngoài Internet.
Như vậy, mỗi khi DNS server nhận được yêu cầu truy vấn từ
DNS client, nếu thông tin nó đang có không thể trả lời cho truy vấn được, thì
nó sẽ chuyển truy vấn đệ quy đó cho forwarder. Forwarder sẽ tham vấn các DNS
server khác trên Internet cho tới khi nào phân giải được tên ra IP. Khi có kết
quả, forwarder sẽ gửi kết quả về DNS server, sau đó, DNS server chuyển kết quả
cho DNS client.
Trong Windows Server 2012 R2, để cấu hình chuyển tiếp truy vấn cho forwarder, mở DNS Manager, bấm chuột phải vào nút SERVER, chọn Properties, chọn táp Forwarders, nhập tên hoặc IP của forwarder. Xem hình minh họa.
Windows Server 2012 R2 cũng hỗ trợ chuyển tiếp có điều kiện
(conditional forwarding), chức năng này cho phép người quản trị chỉ định forwarder
dựa trên tên truy vấn. Cụ thể, khi DNS server nhận được yêu cầu phân giải tên từ
DNS client, nó sẽ kiểm tra tên cần phân giải với danh sách các forwarder của
nó, nếu tên cần phân giải có xuất hiện trong danh sách thì việc chuyển tiếp mới
được thực hiện. Sử dụng chức năng này giúp các tổ chức có nhiều miền nội bộ có
thể truy vấn trực tiếp các DNS server nội bộ, chứ không phải truy vấn các DNS server
trên Internet.
Phân giải ngược (reverse name solution)
Các phần trên đã trình bày quá trình phân giải từ địa chỉ
dạng tên sang địa chỉ IP (thường được gọi là quá trình phân giải xuôi). Tuy
nhiên, trong một số trường hợp, hệ thống cũng cần thực hiện việc phân giải từ
địa chỉ IP sang tên, quá trình này gọi là phân giải ngược.
Hệ thống tên của DNS được tổ chức phân cấp dựa theo tên, do
đó, từ một địa chỉ IP cho trước, để tìm được tên tương ứng, hệ thống chỉ còn
cách là thực hiện tham vấn tới từng name server trong hệ thống. Điều này là
không thực tế.
Để giải quyết vấn đề trên, các nhà phát triển DNS đã tạo ra
một miền đặc biệt có tên là in-addr.arpa. Miền này được sử dụng trong việc phân
giải ngược của hệ thống DNS.
Dưới miền mức hai (second-level) in-addr.arpa, còn có thêm bốn
mức (miền) con nữa. Tại mỗi mức con có chứa 256 miền (con), được đặt tên theo
các số từ 0 tới 255. Ví dụ, miền in-addr.arpa có 256 miền mức ba (third-level
domain), chúng có tên từ 0.in-addr.arpa tới 255.in-addr.arpa; mỗi miền mức ba
lại có 256 miền mức bốn (fourth-level domain); mỗi miền mức bốn lại có 256 miền
mức năm (fifth-level domain); mỗi miền mức năm có 256 nút (host), được đặt tên
từ 0 tới 255. Xem hình minh họa.
Vì được tổ chức theo cấu trúc phân cấp, nên ba byte đầu tiên
của một địa chỉ IP có thể được biểu diễn giống như một tên miền, byte thứ tư
của địa chỉ IP sẽ được lưu trong bản ghi tại miền con mức năm. Ví dụ, để phân
giải địa chỉ IP 192.168.89.34 sang dạng tên, DNS server cần xác định vị trí của
name server chứa tên miền 89.168.192.in-addr.arpa như cách thức thực hiện trong
phân giải xuôi (từ tên miền sang IP), sau đó, tìm bản ghi có tên 34 trong miền 89.168.192.in-addr.arpa.
---------------------------
Tham khảo (Lược dịch): Craig Zacker, Exam Ref 70-410 - Installing and Configuring Windows Server 2012 R2, Microsoft Press, 2014
---------------------------
Cập nhật 2015/3/9
---------------------------
Đọc thêm
Cai dat va cau hinh Windows Server 2012 R2 (39)