Tải bản đầy đủ (.doc) (31 trang)

Tiểu luận môn Nguyên lý và Mô thức phát triển Hệ phân tán Hệ thống DNS Anycast tại trung tâm Khu vực 1 Công ty Mạng lưới Viettel

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (967.71 KB, 31 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TIỂU LUẬN
Hệ thống DNS Anycast tại trung tâm Khu vực 1
Công ty Mạng lưới Viettel
MÔN HỌC: Nguyên lý và Mô thức phát triển Hệ phân tán
MÃ HỌC PHẦN: IT6040
Giảng viên: GS. Nguyễn Thúc Hải
Học viên: Nguyễn Công Trung
Mã học viên: CB120157
Hà Nội 1/2013
LỜI NÓI ĐẦU
Cùng với sự phát triển của khoa học kỹ thuật và công nghệ, việc truyền thông, liên
lạc, tính toán, quản lý ngày nay không chỉ đơn giản tập trung trong máy tính đơn như
trước nữa mà nó đòi hỏi các hệ thống máy tính phải được kết hợp từ một số lượng lớn các
máy tính kết nối với nhau qua 1 mạng tốc độ cao. Chúng thường được gọi là các mạng
máy tính hay còn có tên khác là các Hệ phân tán, nhằm ám chỉ tương phản với Hệ tập
trung trước đây.
Ngày nay, hệ phân tán phát triển rất nhanh và được ứng dụng rộng khắp. Đó có
thể là các dịch vụ thông tin phân tán, các ứng dụng phân tán, cơ sở dữ liệu phân tán như
các hệ thống đặt vé máy bay Mục đich của tiểu luận là hiểu được những nguyên lý cơ
bản nhất của một hệ phân tán nói chung dựa trên việc phân tích một hệ phân tán cụ thể.
Trong tiểu luận này, em tập trung nghiên cứu và phân tích hệ thống DNS Anycast đang sử
dụng tại Trung tâm khu vực 1 – Công ty mạng lưới Viettel.
Do tính chất phức tạp của hệ phân tán, nên trong quá trình tìm hiểu và phân tích
cũng không tránh được những thiếu xót. Cuối cùng em xin chân thành cảm ơn thầy
Nguyễn Thúc Hải đã giúp đỡ em hoàn thành cuốn tiểu luận này.
.
Mục lục
1. Kiến trúc hệ thống 4
2. Tiến trình 6


3, Truyền thông 14
4. Định danh 18
5. Đồng bộ hóa 24
6. Nhất quán và nhân bản 26
7. Khả năng chịu lỗi 27
8. An toàn thông tin 30
9. Tổng kết 31
10. Tài liệu tham khảo 31
1. Kiến trúc hệ thống
Trước hết để mở đầu việc tìm hiểu hệ thống phân, ta tập trung vào phân tích kiến
trúc của hệ thống. Cũng nhữ hầu hết các hệ thống, hệ thống DNS Anycast có mô hình
client – server, đồng thời nó cũng có mô hình cân bằng tải (load balancing).
1.1 Kiến trúc client – server
Để phân tích cấu trúc client-server của hệ thống DNS anycast ta phân tích quy
trình phân tích quá trình phân giải tên miền.
Phân giải tên miền abc.company.com sang địa chỉ IP
(1) Client gửi yêu cầu phân giải đến nameserver. Nếu nameserver có thể trả lời thì nó sẽ
trả lời cho resolver. Nameserver tìm trong bộ đệm (cache - bước 5), trong local disk (dữ
liệu authoritative), trong bộ đệm (dữ liệu nonauthoritative của lần truy vấn trước đó). Nếu
nameserver không tìm thấy câu trả lời, nó sẽ liên lạc với root nameserver. Nếu tất cả root
namsever đều không thễ trả lời (ví dụ lỗi liên quan đến kết nối) thì sau một khoảng thời
gian quá trình phân giải sẽ thất bại.
(2) Root namseverver tìm thấy thôgn tin về miền .com được ủy quyền cho nameserver
cấp dưới (bằng khai báo NS RRs), nó sẽ trả về địa chỉ IP của nameserver cấp dưới đó
(máy chủ miền .com).
(3) Nameserver sẽ tiếp tục đi hỏi máy chủ miền .com và nhận được thông tin miền
company.com được ủy quyền cho namserver cấp dưới, và Namserver nhận được IP của
nameserver authoritative miền company.com.
(4) Nameserver tiếp tục đi hỏi máy chủ miền company.com, và câu trả lời từ nameserver
authoritative miền company.com được đánh dấu là authoratitive answer, và được trả về

cho client.
(5) Kết quả mà nameserver nhận được sẽ được lưu và bộ nhớ đệm. Nếu lần kế tiếp có yêu
cầu phân giải domain này thì nó sẽ được trả về cho cilent, nhưng không được đánh dấu là
authoritative answer.
Nameserver không yêu cầu phải trả lời hoàn chỉnh truy vấn (recursive - truy vấn
đệ quy). Các nameserver quan trọng (như root hay TLD nameserver) không thực hiện truy
vấn đệ quy để tránh tình trạng quá tải, vì vậy resolver không thể gửi yêu cầu trực tiếp đến
các nameserver các nameserver này.
1.2 Kiến trúc cân bằng tải của hệ thống DNS Anycast
DNS Anycast là sử dụng các chính sách định tuyến và phân chia địa chỉ IP để xác
định đường đi giữa một “nguồn” với một vài “đích” phục vụ chung một dịch vụ (hay một
nhóm dịch vụ). Trong DNS Anycast, các máy chủ DNS Anycast được đặt cùng một địa
chỉ IP. Chính sách định tuyến động tại lớp 3 sẽ thực hiện việc tính toán và truyền gói tin
từ client đến các máy chủ dns anycast thích hợp nhất.
Hình bên dưới mô tả một ví dụ DNS Anycast: DNS client được cấu hình chỉ định
máy chủ DNS Anycast là 10.10.10.10, DNS Server gần nhất sẽ trả lời truy vấn.
DNS client có thể gửi yêu cầu đến bất kỳ server nào, trong hình trên định tuyến
layer 3 sẽ chuyển gói tin đến router R1. Trong trường hợp server A không thể cung cấp
dịch vụ, gói tin yêu cầu phân giải DNS sẽ tự động được chuyển tới router gần nhất là R2
và R3 để đến server B, và đường route đến server A sẽ được loại bỏ khỏi bảng định tuyến.
2. Tiến trình
Truy vấn phổ biến nhất trong DNS là truy vấn phân giải từ tên sang địa chỉ IP,
ngoài ra còn có thể truy vấn các thông tin khác từ DNS. Một truy vấn DNS được thực
hiện bởi resolver (DNS client).
Máy chủ tên miền sẽ tìm kiếm trong cache dữ liệu về zone mà nó quản lý.
Máy chủ Primary đọc dữ liệu từ local disk, còn máy chủ secondary truy xuất dữ
liệu bằng truy vấn zone transfer.
Máy chủ tên miền lưu trữ vào cache của nó kết qủa truy vấn mà nó nhận được từ
máy chủ tên miền khác (các kết quả truy vấn thành công lẫn truy vấn không thành công)
Các yêu cầu phân giải tên miền thường phát sinh từ một chương trình máy tính,

chương trình này gởi yêu cầu đến một thành phần của hệ điều hành (gọi là resolver),
resolver sẽ chuyển tiếp truy vấn đến máy chủ tên miền bằng giao thức DNS, nếu resolver
không có bộ nhớ cache được gọi là stub resolver.
Một vài máy tính chỉ có resolver, một số khác có cả resolver và nameserver, tuy
nhiên nguyên lý chung vẫn như sau:
(1) Người dùng gửi lệnh phân giải tên sang địa chỉ IP
(2) Nếu resolver có cache, nó sẽ tìm trong cache của nó
(3) Nếu resolver không tìm thấy trong cache, nó sẽ chuyển tiếp yêu cầu đến
nameserver
(4) Nameserver sẽ tìm câu trả lời trong cache của nó
(5) Nếu nameserver ko thấy câu trả lời trong cache của nó, nó sẽ gửi yêu cầu đến các
nameserver khác.
(6) Nameserver có thể liên lạc với nhiều nameserver khác bằng cơ chế lặp, bằng cơ
chế này nameserver sẽ liên lạc được với nameserver có thẩm quyền để có được câu trả lời
cuối cùng.
(7) Nếu bước trên không trả về kết quả sau một khoảng thời gian, resolver sẽ gửi lại
yêu cầu. Nếu có nhiều name sever khác được cấu hình trong danh sách root server của
nameserver, nó sẽ gửi yêu cầu đến nameserver kế tiếp trong danh sách đó.
Nameserver và resolver
DNS sử dụng port 53 trên cả TCP và UDP trong việc gửi/nhận yêu cầu. Các truy
vấn thông thường như yêu cầu phân giải tên sang IP hay ngược lại sử dụng giao thức
UDP. Chiều dài của dữ liệu UDP bị giới hạn trong 512 Bytes, trong trường hợp dữ liệu >
512B thì DNS sẽ bật cờ truncation để thông báo gửi lại bằng giao thức TCP. Các truy vấn
zone transfer giữa primary và secondary DNS sử dụng giao thức TCP để truyền tin.
Yêu cầu phân giải được gửi từ resolver đến name sever, nếu nameserver không biết
câu tra lời nó sẽ hỏi các nameserver khác. Name server xử lý yêu cầu bằng cơ chế lặp, bắt
đầu từ root nameserver.
Quá trình trả lời yêu cầu phân giải
Cơ chế hoạt động của resolver: Resolver là một thành phần của hệ điều hành, thực
hiện việc phân giải tên miền. Resolver không phải là một chương trình cụ thể, nó là một

bộ các thư viện liên kết với các chương trình ứng dụng như telnet, trình duyệt web, trình
ftp cilent,…Ví dụ khi trình duyệt web cần phân giải một tên miền sang IP nó sẽ liên kết
đến các function của thư viện resolver.
Resolver trong hệ thống Unix/Linux:
File cấu hình resolver trong hệ thống unix/linux thường trong /etc/resolv.conf. Nó
có tối thiểu 2 dòng text tương tự như sau:
Resolver trong hệ thống Window:
Trong windows, dịch vụ DNS Client đóng vai trò là resolver. Để xem nội dung của
cache dùng lệnh ipconfig /displayDNS, xóa cache dùng lệnh ipconfig /flushDNS.
Nội dung của file …/etc/hosts không bị ảnh hưởng bởi lệnh ipconfig /flushDNS
trên. Các tham số của cache resolver được đặt trong register của window:
HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / DNSCache /
Parameters.
Cơ chế hoạt động của Name Server
Name server lưu trữ các thông tin để phân giải tên sang IP và ngược lại. Name server
quản lý một phần nào đó của không gian tên miền, được gọi là các zone. Namserver là
một chương trình thực hiện phân giải các yêu cầu gửi từ các resolver hay từ nameserver
khác. Việc phân loại các nameserver dựa trên cách nó lưu trữ dữ liệu.
Primary namserver/Primary master: là nguồn dữ liệu chính của một zone, là máy
chủ có thẩm quyền của zone (authoritative server). Dữ liệu về zone của nó được lưu trong
CSDL local. Tên gọi Primary master hay Primary nameserver dựa vào version của
chương trình BIND được sử dụng: gọi là primary nameserver khi dùng version 4.x, gọi là
primary master khi dùng version 8 trở lên. Người quản trị tự tạo CSDL cho server này.
Primany nameserver phải được public như là một máy chủ có thẩm quyền của domain
trong SOA RRs, trong khi Primary master không cần phải public. Lưu ý chỉ có một kiểu
server cho mỗi zone.
Master nameserver: là máy chủ có thẩm quyền của một zone. Master server luôn
được public trong NS records. Master nameserver là nguồn dữ liệu của 1 zone cho máy
chủ cấp dưới (slaver / secondary server). Kiểu server này được dùng từ BIND version 8
trở lên.

Secondary nameserver/Slave nameserver: lưu trữ dữ liệu của zone bằng cách
copy dữ liệu từ primary nameserver theo một khoảng thời gian nhất định. Dữ liệu của
secondary nameserver không được tự thay đổi mà phải cập nhật từ primary name server.
Kiểu server này cũng là máy chủ có thẩm quyền của zone.
Caching only nameserver: không phải là một primary hay secondary name server
(không là authority). Dữ liệu được lưu vào vùng đệm (cache) của server được gọi là dữ
liệu không thuộc thẩm quyền (unauthoritative).
Root nameserver: là máy chủ có thẩm quyền của miền gốc (root domain). Mỗi
root nameserver là một primary nameserver.
Slave nameserver: thực hiện chuyển tiếp yêu cầu phân giải đến một nameserver
khác.
Kiến trúc Master/Slave
Phân giải lặp tuần tự - Iterative resolution (nonrecursive)
Phân giải lặp tuần tự (đôi khi còn được gọi là phân giải tương tác - interactive) là
nameserver trả về kết quả mà nó biết được tương ứng với câu truy vấn. Nameserver tra
cứu trong dữ liệu của nó (kể cả cache), nếu không tìm được câu trả lời nó sẽ tìm tên và
địa chỉ của nameserver gần với tên miền yêu cầu phân giải nhất trong dữ liệu local của nó,
và trả về cho resolver dưới dạng tham chiếu (referal) để resolver tiếp tục quá trình phân
giải. Lưu ý rằng tham chiếu bao gồm tất cả các nameserver được list trong danh sách local
của nó, và nó sẽ chọn nameserver nào sẽ được query tiếp theo.
Phân giải đệ quy – recursive resolution
Đa số resolver không hiểu được các trả lời kiểu tham chiếu (follow a referal), vì
vậy resolver gửi truy vấn đệ quy (recursive query) cho nameserver. Phân giải đệ quy là
cách gọi khi một nameserver nhận được yêu cầu đệ quy từ resolver. Giống như thuật toán
đệ quy trong lập trình, nameserver sẽ lặp lại các thao tác giống nhau: gửi truy vấn đến
nameserver khác và nhận về kết quả tham chiếu cho đến khi có được kết quả cuối cùng.
Trong phân giải đệ quy, resolver gửi một yêu cầu đệ quy tới nameserver để yêu
cầu phân giải một tên miền nào đó. Namseserver bằng cách nào đó để trả về cho resolver
kết quả (hay thông báo không thành công).
Nếu namserver không trả lời được truy vấn, nó có thể gửi truy vấn đệ quy đến một

nameserver khác để có được câu trả lời cho resolver, hoặc nó có thể gửi truy vấn không
đệ quy và lần theo các tham chiếu từ các namserver khác trả về để có câu trả lời cho
resolver. Có một ngoại lệ trong trường hợp nameserver được cấu hình để chuyển tiếp
query đến một forwarder server (xem chi tiết trong phần forwarder server).
Nếu nameserver không tự trả lời cho resolver được, nó sẽ đi hỏi nameserver gần
nhầt, nameserver gần nhất là nameserver có thẩm quyền tương ứng với tên miền được
hỏi. Ví dụ nếu nameserver nhận được yêu cầu phân giải tên miền ftp.mil.gov.vn, đầu tiên
nó sẽ tìm trong dữ liệu local của nó (cả cache) xem có thông tin về tên miền
ftp.mil.gov.vn hay không, nếu không nó sẽ tìm trong dữ liệu local của nó xem có thông
tin về tên miền mil.gov.vn, cứ như vậy nó sẽ tìm gov.vn và .vn. Nếu cuối cùng vẫn không
có kết quả thì nó sẽ đi hỏi root như đã biết.
Nameserver nhận được được yêu cầu phân giải đệ quy luôn gửi query giống như
nó nhận được đến nameserver khác. Ví dụ nó nhận được yêu cầu phân giải ftp.mil.gov.vn
thì sẽ không đi hỏi mil.gov.vn hay gov.vn.
Cơ chế hoạt động của Forwarder server:
Có một kiểu DNS server được gọi là server chuyển tiếp (forwarder server). Ta đã
biết resolver gửi yêu cầu đến namsever và chờ câu trả lời cuối cùng, nếu namesever
không thể tự trả lời nó sẽ thực hiện truy vấn đệ quy, đầu tiên nó sẽ liên lạc root
nameserver, root namserver sẽ trả về địa chỉ IP của một namserver khác, và nó tiếp tục đi
hỏi namsever đó. Cứ như vậy, nameserver gửi rất nhiều gói tin trên mạng internet.
Nếu mạng nội bộ của công ty kết nối internet với đường truyền tốc độ thấp, và
nameserver sẽ ngốn nhiều băng thông của đường truyền này. Chính vì vậy cần phải có
forwarder server.
Forwarder là một máy chủ DNS được sử dụng để chuyển tiếp truy vấn DNS đến
một DNS bên ngoài mạng. Một DNS server trong mạng sẽ chuyển tiếp các truy vấn mà
nó không thể trả lời đến một DNS server khác được chỉ định là forwarder. Bằng cách sử
dụng forwarder, chúng ta có thể kiểm soát việc phân giải các tên miền ngoài mạng.
Giao tiếp giữa local nameserver và forwarder server
Local nameserver gửi yêu cầu đến forwarder server. Tuy nhiên local namserver
đánh dấu các truy vấn đó là truy vấn đệ quy. Forwarder server nhận yêu cầu từ local

namserver và thực hiện phân giải thông qua truy vấn không đệ quy, và sau đó trả về kết
quả cuối cùng cho nameserver.
Một forwarder server có thể làm chức năng của caching server, hay làm primary
hoặc secondary server cho vài zone nào đó.
3, Truyền thông
Bản ghi tài nguyên – Resource Records
Thông tin của tên miền và địa chỉ IP cũng như các thông tin khác mà DNS cung
cấp được lưu trong bộ nhớ của nameserver dưới dạng bản ghi tài nguyên – Resource
records – RR.
Nameserver sẽ nạp dữ liệu vào cache bằng nhiều cách khác nhau. Dữ liệu thuộc
thẩm quyền (authoritative) được đọc từ file trên local disk hay thông qua cơ chế zone
transfer từ authoritative server khác. Dữ liệu không thuộc thẩm quyền (nonauthoritative)
thu được bằng cách DNS server nhận trả lời từ một server khác từ lần truy vấn trước đó.
Riêng dữ liệu nonauthoritative thông tin về các root server được tải từ cấu hình DNS
server lên.
Nếu DNS client cần thông tin từ DNS server, nó sẽ yêu cầu RR từ DNS server.
DNS client có thể yêu cầu DNS server bản ghi A với thông tin địa chỉ IP của một tên
miền nào đó. DNS client ở đây hiểu là resolver hay một nameserver.
Cấu trúc của RR được quy định trong giao thức DNS, như hình dưới:
Cấu trúc RR
Mỗi trường RR bao gồm:
• NAME: tên miền
• TYPE: kiểu bản ghi
• CLASS: lớp bản ghi
• TTL: time to live – là một số 32 bit quy định thời gian mà RR được lưu trữ
trong cache. Khi thời gian hết hạn, bản tin sẽ bị xem như khôgn có giá trị.
• RDLENGTH: một số 16 bit chỉ định chiều dài của trường RDATA
• RDATA: dữ liệu này lưu một chuỗi của độ dài của biến, định dạng của trường
này tùy thuộc vào kiểu RR và lớp.
Lưu ý là định dạng RR trong giao thức DNS là dạng ký hệu nhị phân (binary

notation), nghĩa là nó trong suốt với người sử dụng. Mặt khác, người dùng sẽ muốn chèn
RR vào file zone dưới dạng text, vì vậy nó phải dễ chuyển đổi từ ký hiệu nhị phân sang
định dạng text. Các trường được chuyển đổi sang định dạng text và được phân cách bằng
khoảng trắng (space) hay một tab hay kết hợp các ký tự đó. Một vài chuỗi trong tên miền
được phân cách bằng một dấu chấm (dot).
Gói tin truy vấn DNS
Cơ chế DNS QUERY bao gồm một truy vấn và một hồi đáp. Truy vấn chứa yêu
cầu về một hay nhiều RR từ CSDL của DNS, hồi đáp chứa các thông tin về RR được truy
vấn hoặc một thông báo lỗi. RR trong hồi đáp có thể là kết qủa cuối cùng hay thông tin để
cho client thực hiện một DNS QUERY khác.
Định dạng gói tin DNS QUERY:
DNS sử dụng cùng một định dạng gói tin cho cả query và answer như hình sau:
Định dạng gói tin DNS QUERY
Một gói tin có thể chứa tới 5 thành phần. Mỗi gói tin phải luôn có phần HEADER.
Khái niệm “query” được hiểu theo 2 mặt:
Một là: yêu cầu truy vấn RR trong CSDL của DNS
Hai là: bao gồm câu truy vấn gửi bởi client và câu trả lời cho truy vấn đó gửi bởi
namserver. Client thường dùng một thẻ để đánh dấu cho biết đó là câu truy vấn recursive,
ngược lại namserver thì thường đánh dấu truy vấn là interactive
- Header của gói tin DSN QUERY:
- Phần Question
- Phần Answer, Authority Server và Additional:
- Nén dữ liệu (compression):
Kỹ thuật nén được sử dụng để giảm kích thước của gói tin DNS. Hoạt động dựa
trên nguyên tắc chỉ có một tên và thay thế các tên lặp lại bằng một cờ chỉ định tên đầu
tiên.
Truy vấn nghịch đảo – Inverse query:
Truy vấn nghịch đảo (inverse query) khác với khái niệm truy vấn ngược (reverse
query).Truy vấn nghịch đảo một địa chỉ IP được phân giải sang tên, nhưng quá trình phân
giải tìm kiếm dựa trên record A trong RR, còn truy vấn ngược phân giải dựa trên record

PTR trong RR. Không phải tất cả các nameserver hỗ trợ inverse query, do inverse query
hiện nay ít được dùng.
Các phương thức truyền RR qua gói tin DNS:
Một gói tin DNS có thể chứa một hay nhiều RR. Nếu gói tin DNS chỉ có 1 RR thì
định dạng gói tin giống như định dạng “one-answer”. Định dạng “many-answer” mô tả
một gói tin chứa nhiều RR. Định dạng nào sẽ được server dùng trong truyền thông là vấn
đề thực thi của nameserver. “Many-anser” chỉ được hỗ trợ từ BIND version 8 trở lên.
4. Định danh
Cấu trúc database của DNS được tổ chức gần giống như cây thư mục hệ thống
Unix (xem hình), toàn bộ database được phân bố dạng cây “ngược”, với node gốc nằm
trên cùng.
Tên miền (domain) và tên miền con (subdomain):
Trong hệ thống DNS, mỗi domain có thể được tách thành các sub-domain, và các
sub-domain đó được phân bổ cho các tổ chức khác quản lý. Ví dụ như trong hình: Tổ
chức Network Solution (NSI) quản lý domain .edu (giáo dục) nhưng ủy quyền quản lý
sub-domain berkeley.edu cho UC Berkeley
UC Berkeley được toàn quyền quản lý trên sub-domain berkeley.edu, zone
berkeley.edu bây giờ độc lập với edu và nó chứa tất cả các domain tận cùng bằng
.berkeley.edu (ví dụ cs. berkeley.edu), còn zone edu chỉ quản lý các domain tận cùng
bằng .edu nhưng không ủy quyền (như berkeley.edu)
Database giống như một bảng chỉ mục, cũng giống như hệ thống filesystem của
unix bao gồm các thư mục chứa các file và các thư mục con trong đó, hệ thống DNS cũng
bao gồm các host và các sub-domain.
Mỗi host trên mạng có một tên miền, tên miền này trỏ đến thông tin của host đó.
Thông tin của host có thể là địa chỉ IP hay các thông tin khác như mail routing,…Một
host có thể có 1 hay nhiều tên miền định danh (domain name alias) dùng để trỏ từ một tên
miền này (the alias) đến một tên miền khác (the canonical / official domain). Như trong
hình, tên miền mailhub.nv là một định danh của tên miền rincon.ba.ca
Hệ thống DNS giải quyết vấn đề đụng độ domain mà file HOSTS.TXT thường gặp
phải. Mỗi miền có một tên miền riêng, nên tổ chức quản lý tên miền đó được phép đặt tên

bất kỳ cho các host và các sub-domain thuộc miền đó. Vì vậy dù cho tổ chức đó đặt bất
kỳ tên gì thì cũng sẽ không bị trùng lắp với tên miền khác vì nó tận cùng bằng tân miền
duy nhất của tổ chức đó. Ví dụ một tổ chức quản lý tên miền hic.com có thể đặt tên một
host là puella, và tên miền của host puella là puella.hic.com là một tên miền duy nhất
trên mạng.
Không gian tên miền
CSDL phân tán của DNS được đánh chỉ mục bởi những tên miền, mỗi tên miền
bản chất chỉ là những đường dẫn trong cây domain lớn được gọi là không gian tên miền
(domain name space). Cây DNS có gốc nằm trên cùng, và có các nhánh rẽ, độ sâu của cây
giới hạn 127 cấp
Tên miền – Domain name
Mỗi node trong cây DNS được đánh một nhãn (không gồm dấu chấm) là một chuỗi
tối đa 63 ký tự, riêng node root được đánh nhãn là null (rỗng). Tên miền đầy đủ của một
node trong cây DNS là một chuỗi các nhãn đánh theo đường dẫn từ node đó lên đến root,
với dấu chấm phân cách khi qua mỗi node trên đường đi.
Theo nguyên tắc đó, thì tên miền đầy đủ của một host luôn tận cùng bằng dấu
chấm, ví dụ “www.oreilly.com.”, bởi vì lên đến node root là node cuối cùng, và nhãn của
root là null, tên miền này được gọi là tên miền đầy đủ điều kiện (fully qualified domain
name - FQDN) và có chiều dài tối đa của chuỗi là 255 ký tự không kể dấu chấm.
DNS quy định các node là con của cùng một node cha phải được đánh nhãn khác
nhau, quy định này nhằm đảm bảo mỗi node có một định danh duy nhất trên toàn bộ cây
DNS.
Miền - Domain
Một miền là một nhánh của không gian tên miền. Tên của một miền giống như tên
miền của node cao nhất trong miền, ví dụ hình bên dưới: node cao nhất trong miền có tên
là “purdue.edu”, và ta cũng có thể gọi miền bên dưới là miền “purdue.edu”.
Bất kỳ một tên miền nào trong một nhánh con cũng được xem như là một phần của
miền. Ví dụ trong hình dưới: tên miền pa.ca.us là một phần của miền ca.us và cũng là
một phần của miền us
Tên miền là những chỉ mục trong CSDL DNS, các host là các tên miền trỏ đến

thông tin của các host cụ thể nào đó. Các host là khái niệm logic, có thể có 10 host khác
nhau thuộc các network khác nhau và thuộc các quốc gia khác nhau nhưng nằm trong
cùng một miền.
Một tên miền “lá” trong cây là đại diện cho một host cụ thể, có thể trỏ đến các
thông tin như: địa chỉ IP, thông tin phần cứng, thông tin định tuyến mail,…Một tên miền
bên trong cây (không phải “lá”) có thể là tên của một host và có thể trỏ đến thông tin của
miền, nó có thể vừa là đại diện của miền vừa là đại diện cho một host. Ví dụ hp.com vừa
là tên của miền thuộc công ty HP quản lý, vừa là tên miền của host chạy website chính
thức của HP.
Một miền có thể có nhiều nhánh con gọi là sub-domain, cấp độ của một miền thể
hiện vị trí của miền trong không gian tên miền, ví dụ:
- Top level domain: là những tên miền con của root
- First level domain: là những tên miền con của root (giống top level domain)
- Second level domain: là những tên miền con của First level domain
- …
Tên miền ngược – Reverse domain
Như đã đề cập ở trên, các máy tính trên mạng truyển thông với nhau dự trên địa chỉ
IP chứ không phải tên. Mặt khác, đôi khi ta cần biết tên của một địa chỉ IP nào đó, đó là
quá trình phân giải từ địa chỉ IP sang tên miền được gọi là phân giải ngược – reverse
translation
Cũng giống như tên miền, các địa chỉ IP cũng được tạo theo cấu trúc hình cây.
Hình thái domain inaddr-arp dùng cho địa chỉ Ipv4 và IP6.arpa dùng cho địa chỉ Ipv6
Tên miền ngược của IP 195.47.37.2
Vùng – zone
Chúng ta thường gặp khái niệm zone, và mối quan hệ giữa zone và domain là gì?
Chúng ta sẽ lý giải bằng ví dụ sử dụng domain company.com dưới đây.
Như đã biết, một miền là một nhóm các host chia sẽ chung một tên miền, ví dụ một
miền là một nhóm các host có tên miền tận cùng bằng company.com. Tuy nhiên miền
company.com thì rất rộng, và nó được chia ra thành các subdomain như:
bill.company.com, sales.company.com, sec.company.com, xyz.company.com,…Chúng ta

có thể quản lý toàn bộ miền compnay.com trên cùng một máy chủ tên miền, hoặc chúng
ta có thể tạo các máy chủ tên miền độc lập cho một vài subdomain (như trong hình, ta tạo
các máy chủ tên miền cấp dưới cho các subdomain bill.company.com và
head.company.com), còn máy chủ tên miền chính (original nameserver) phục vụ domain
company.com và các subdomain sec, sales và xyz. Hay nói cách khác original nameserver
quản lý zone company.com (phần máu xám trong hình). Như vậy zone là một phần của
không gian tên miền được quản trị bởi một máy chủ tên miền riêng lẻ.
Zone company.com
Các zone lưu dữ liệu của lower-level domain được gọi là zone cấp dưới
(subordinate zone).
Các zone đặc biệt: Ngoài các zone bình thường lưu trữ dữ liệu của domain hay
subdomain, DNS còn bổ xung một số zone đặc biệt gồm:
- Zone stub: là một zone cấp dưới chỉ lưu trữ thông tin về các máy chủ tên miền
quản lý subdomain (chỉ chứa những record NS của zone)
- Zone cache/hint: chứa danh sách các root nameserver (dữ liệu non-authoritative
được đọc vào bộ nhớ khi nameserver khởi động)
5. Đồng bộ hóa
Các máy chủ DNS Anycast đều là máy chủ tên miền đệm (caching DNS). Để hiểu
rõ vấn đề trên trước hết ta tìm hiểu về máy chủ tên miền đệm:
Máy chủ tên miền khi xử lý các yêu cầu tìm kiếm tên miền dưới hình thức đệ quy
(recursive) thường phải chuyển yêu cầu tới một vài máy tính rồi mới nhận được dữ liệu
trả lời. Tuy nhiên khi tìm kiếm thông tin về tên miền theo hình thức đệ quy, máy chủ tên
miền sẽ thu thập được một lượng thông tin về các bản ghi tên miền từ các máy chủ tên
miền khác và lưu trữ trong bộ nhớ để phục vụ trả lời cho các lần truy vấn sau. Việc xử lý
và lưu giữ thông tin như vậy gọi là đệm dữ liệu bản ghi tên miền (Recursive Caching),
các máy chủ thực hiện theo nguyên tắc này được gọi là máy chủ tên miền đệm (Caching
DNS).
Quá trình Recursive Caching dữ liệu như vậy làm tăng tốc độ tìm kiếm tên miền
của máy chủ tên miền khi nhận được các yêu cầu tìm kiếm tên miền tiếp theo. Vào lần
tìm kiếm tiếp theo, do máy chủ đã có dữ liệu của lần tìm kiếm trước nên nó biết được một

phần thông tin trên hệ thống tên miền do đó quá trình tìm kiếm được thực hiện nhanh
chóng hơn. Trong trường hợp tên miền muốn tìm thông tin ở lần truy vấn sau trùng với
tên miền ở lần truy vấn trước đó, máy chủ tên miền sẽ lấy dữ liệu đã được lưu trong bộ
nhớ để trả lời.

×