3.4.1 Phân giải tên thành IP
Root Name Server (RNS) là máy chủ quản lý các name server ở mức toplevel
domain. Khi có truy vấn về một tên miền nào đó thì RNS phải cung cấp tên và IP của
name server quản lý toplevel domain mà tên miền thuộc vào (thực tế hầu hết các RNS cũng chính là máy chủ quản lý toplevel domain). Và đến lượt các server của toplevel
domain cung cấp danh sách các name server có quyền trên các second level domain
mà tên miền thuộc vào, cứ như thế đến khi nào tìm được máy quản lý tên miền cần truy vấn.
Như vậy, vai trò rất quan trọng của RNS trong quá trình phân giải tên miền. Nếu mọi RNS trên Internet không liên lạc được thì mọi yêu cầu phân giải đều không thực hiện được. Do đó nhiều RNS được phân bố trên toàn thế giới như có 2 server tại mạng MILNET, 1 tại SPAN và NASA, 2 server tại châu Âu và 1 tại Nhật Bản.
Các loại truy vấn
Truy vấn đệ qui (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 có thể gửi truy vấn dạng đệ quy hoặc tương tác đến các 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.
Truy vấn tương tác: 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 thêm bất cứ truy vấn nào đến các name server khác. Thông tin trả về cho resolver có thể được lấy từ dữ liệu cục bộ (cache). Trong trường hợp name server không tìm thấy trong dữ liệu cục bộ nó sẽ trả về tên miền và địa chỉ IP của name server gần nhất mà nó biết.
3.4.2 Phân giải IP thành tên máy tính
Ánh xạ địa chỉ IP thành tên máy tính được dùng để diễn dịch các tập tin log cho dễ đọc hơn. Nó còn dùng trong một số trường hợp chứng thực trên hệ thống UNIX (kiểm tra các tập tin.rhost hay host.equiv).
Để có thể phân giải tên máy tính của một địa chỉ IP, người ta bổ sung thêm một nhánh tên miền mà được lập chỉ mục theo địa chỉ IP, phần này có tên miền là in<addr.arpa. Mỗi nút trong miền in_addr.arpa có một tên nhãn là chỉ số thập phân của địa chỉ IP. 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ư vậy và đến byte thứ tư có các bản ghi cho biết tên miền đầu đủ của các máy tính hoặc các mạng có địa chỉ IP tương ứng.
3.5 Các bản ghi thường có trong cơ sở dữ liệu của DNS serrver
3.5.1 Bản ghi SOA (Start of Authority)
Trong mỗi tập tin CSDL phải có một và chỉ một record SOA (Start of Authority). Record SOA chỉ ra rằng máy chủ name server là nơi cung cấp thông tin tin cậy từ dữ liệu có trong zone.
Cú pháp:
[domain] IN SOA [dns.server] [email.address]( serial number;
refresh number; retry number;
domain: tên domain mà DNS quản lý (Vd: hqhcm.gov) dns<server: tên server quản lý miền
email<address: địa chỉ email của admin
serial number: áp dụng cho mọi dữ liệu trong zone và là một số nguyên. Khi máy chủ Secondary liên lạc với máy chủ Primary nó sẽ so sánh số này và số serial của nó, nếu số serial của máy secondary nhỏ hơn số của primary tức là dữ liệu zone trên Primary đã được thay đổi, như vậy máy secondary sẽ sao chép dữ liệu mới từ máy Primary thay cho dữ liệu đang có hiện hành.
refresh: chỉ ra khoảng thời gian máy chủ secondary kiểm tra dữ liệu zone trên máy primary để cập nhật nếu cần. Giá trị này thay đổi tùy theo tần suất thay đổi dữ liệu trong zone.
retry: nếu máy chủ secondary không kết nối được với máy chủ Primary theo thời hạn mô tả trong refresh (do máy primary bị shutdown) vào lúc đó thì máy chủ secondary phải tìm cách kết nối lại với máy chủ primary theo một chu kỳ thời gian mô tả trong retry. Thông thường giá trị này nhỏ hơn refresh.
expire: nếu sau khoảng thời gian này mà máy chủ secondary không kết nối được với máy primary thì dữ liệu zone trên máy secondary sẽ bị quá hạn, lúc này máy secondary sẽ không trả lời mọi truy vấn về zone này nữa. Giá trị expire này phải lớn hơn giá trị refresh và retry.
TTL: viết tắt của Time to Live. Giá trị này áp dụng cho mọi record trong zone và được đính kèm trong thông tin trả lời một truy vấn. Mục đích của nó là chỉ ra thời gian mà các máy chủ name server khác được cache lại thông tin trả lời. Việc cache thông tin trả lời giúp giảm lưu lượng truy vấn DNS trên mạng.
3.5.2 Bản ghi kiểu A
Bản ghi kiểu A được dùng để khai báo ánh xạ giữa tên của một máy tính trên mạng và địa chỉ IP của một máy tính trên mạng.
Bản ghi kiểu A có cú pháp như sau:
Domain IN A <địa chỉ IP của máy> Ví dụ: Home.vnn.vn IN A 203.162.0.12
Theo ví dụ trên, tên miền home.vnn.vn được khai với bản ghi kiểu A trỏ đến địa chỉ 203.162.0.12 sẽ là tên của máy tính này. Một tên miền có thể được khai nhiều bản ghi kiểu A khác nhau để trỏ đến các địa chỉ IP khác nhau. Như vậy có thể có nhiều máy tính có cùng tên trên mạng. Ngược lại một máy tính có một địa chỉ IP có thể có nhiều tên miền trỏ đến, tuy nhiên chỉ có duy nhất một tên miền được xác định là tên của máy, đó chính là tên miền được khai với bản ghi kiểu A trỏ đến địa chỉ của máy.
3.5.3 Bản ghi CNAME
Bản ghi CNAME cho phép một máy tính có thể có nhiều tên. Nói cách khác bản ghi CNAME cho phép nhiều tên miền cùng trỏ đến một địa chỉ IP cho trước. Để có thể khai báo bản ghi CNAME, bắt buộc phải có bản ghi kiểu A để khai báo tên của máy. Tên miền được khai báo trong bản ghi kiểu A trỏ đến địa chỉ IP của máy được gọi là tên miền chính (canonical domain ). Các tên miền khác muốn trỏ đến máy tính này phải được khai báo là bí danh của tên máy (alias domain).
Bản ghi CNAME có cú pháp như sau:
alias.domain IN CNAME canonical domain
Ví dụ: www.vnn.vn IN CNAME home.vnn.vn
Tên miền www.vnn.vn sẽ là tên bí danh của tên miền home.vnn.vn, hai tên miền www.vnn.vn sẽ cùng trỏ đến địa chỉ IP 203.162.0.12
3.5.4 Bản ghi MX
Bản ghi MX dùng để khai báo trạm chuyển tiếp thư điện tử của một tên miền.
Ví dụ: Để các thư điện tử có cấu trúc user@vnn.vn được gửi đến trạm chuyển tiếp thư điện tử có tên mail.vnn.vn, trên cơ sở dữ liệu cần khai báo bản ghi MX như sau:
Vnn.vn IN MX 10 mail.vnn.vn
Các thông số được khai báo trong bản ghi MX nêu trên gồm có:
vnn.vn: là tên miền được khai báo để sử dụng như địa chỉ thư điện tử.
mail.vnn.vn: là tên của trạm chuyển tiếp thư điện tử, nó thực tế là tên của máy tính dùng làm máy trạm chuyển tiếp thư điện tử.
10: Là giá tri ưu tiên, giá trị ưu tiên có thể là một số nguyên bất kì từ 1 đến 225, nếu giá trị ưu tiên này càng nhỏ thì trạm chuyển tiếp thư điện tử được khai báo sau đó sẽ là trạm chuyển tiếp thư điện tử được chuyển đến đầu tiên.
Ví dụ nếu khai báo:
Vnn.vn IN MX 10 mail.vnn.vn
Vnn.vn IN MX 20 backupmail.vnn.vn
Thì tất cả các thư điện tử có cấu trúc địa chỉ user@vnn.vn trước hết sẽ được gửi đến trạm chuyển tiếp thư điện tử mail.vnn.vn. Chỉ trong trường hợp máy chủ mail.vnn.vn không thể nhận thư thì các thư này mới chuyển đến trạm chuyển tiếp thư điện tử backupmail.vnn.vn
thông tin về tên miền quản lý, do đó yêu cầu có tối thiểu hai bản ghi NS cho mỗi tên miền. Cú pháp của bản ghi NS
<tên miền> IN NS <tên của máy chủ tên miền> Ví dụ: Vnnic.net.vn IN NS dns1.vnnic.net.vn
Vnnic.net.vn IN NS dns2.vnnic.net.vn
Với khai báo trên, tên miền vnnic.net.vn sẽ do máy chủ tên miền có tên dns.vnnic.net.vn quản lý. Điều này có nghĩa, các bản ghi như A, CNAME, MX … của tên miền cấp dưới của nó sẽ được khai báo trên máy chủ dns1.vnnic.net.vn. và dns2.vnnic.net.vn.
3.5.6 Bản ghi PTR
Hệ thống DNS không những thực hiện việc chuyển đổi từ tên miền sang địa chỉ IP mà còn thực hiện chuyển đổi địa chỉ IP sang tên miền. Bản ghi PTR cho phép thực hiện chuyển đổi địa chỉ IP sang tên miền. Cú pháp của bản ghi PTR:
101.57.162.203.in.addr.arpa IN PTR www.vnnic.net.vn Bản ghi PTR trên cho phép tìm tên miền www.vnnic.net.vn khi biết địa chỉ IP (203.162.57.101) mà tên miền trỏ tới.
3.6 Phân loại DNS server và đồng bộ dữ liệu giữa các DNS server 3.6.1 Phân loại DNS server 3.6.1 Phân loại DNS server
Có ba loại DNS server sau: + Primary server
. Nguồn xác thực thông tin chính thức cho các domain mà nó được phép quản lý . Thông tin về tên miền do nó được phân cấp quản lý thì được lưu trữ tại đây và sau
đó có thể được chuyển sang cho các secondary server
. Các tên miền do primary server quản lý thì được tạo và sửa đổi tai primary server và được cập nhật đến các secondary server
. Primary server nên đặt gần với các client để có thể phục vụ truy vấn tên miền một cách dễ dàng và nhanh hơn.
+ Secondary server
. DNS được khuyến nghị nên sử dụng ít nhất là hai DNS server để lưu cho mỗi một zone. Primary DNS server quản lý các zone và secondary server sử dụng để lưu trữ
dự phòng cho primary server. Secondary DNS server được khuyến nghị dùng nhưng không nhất thiết phải có. Secondary server được phép quản lý domain nhưng dữ liệu về tên miền (domain), nhưng secondary server không tạo ra các bản ghi về tên miền (domain) mà nó lấy về từ primary server.
. Khi lượng truy vấn zone tăng cao tại primary server thì nó sẽ chuyển bớt tải sang cho secondary server. Hoặc khi primary server gặp sự cố không hoạt động được thì secondary server sẽ hoạt động thay thế cho đến khi primary server hoạt động trở lại. . Secondary server nên được đặt ở gần với primary server và client để có thể phục vụ
cho việc truy vấn tên miền dễ dàng hơn. Nhưng không nên cài đặt secondary server trên cùng một mạng con (subnet) hoặc cùng một kết nối với primary server. Để khi primary server có kết nối bị hỏng thì cũng không có ảnh hưởng đến secondary server.
. Primary server thường xuyên thay đổi hoặc thêm vào các zone mới. Nên DNS server sử dụng cơ chế cho phép secondary lấy thông tin từ primary server và lưu trữ nó. Có hai giải pháp lấy thông tin về các zone mới là lấy toàn bộ (full) hoặc chỉ lấy phần thay đổi (incremental)
+ Caching<only server
Tất cả các DNS server đều có khả năng lưu trữ dữ liệu trên bộ nhớ cache của máy để trả lời truy vấn một cách nhanh chóng. Nhưng hệ thống DNS còn có một loại Caching.only server. Loại này chỉ sử dụng cho việc truy vấn, lưu giữ câu trả lời dựa trên thông tin có trên cache của máy và cho kết quả truy vấn. Chúng không hề quản lý một domain nào và thông tin mà nó chỉ giới hạn những gì được lưu trên cache của server. Lúc ban đầu khi server bắt đầu chạy thì nó không lưu thông tin nào trong cache. Thông tin sẽ được cập nhật theo thời gian khi các client server truy vấn dịch vụ DNS. Nếu sử dụng kết nối mạng WAN tốc độ thấp thì việc sử dụng caching.only DNS server là giải pháp hữu hiệu cho phép giảm lưu lượng thông tin truy vấn trên đường truyền. Caching.only có khả năng trả lời các câu truy vấn đến client. Nhưng không chứa zone nào và cũng không có quyền quản lý bất kì domain nào. Nó sử dụng bộ cache của mình để lưu các truy vấn của DNS của client. Thông tin sẽ được lưu trong cache để trả lời các truy vấn đến client.
3.6.2 Sự uỷ quyền giữa các miền con (Delegating Subdomains)
Một trong các mục tiêu thiết kế hệ thống DNS là khả năng quản lý phân tán thông qua cơ chế ủy quyền (delegation). Trong một miền có thể tổ chức thành nhiều miền con, mỗi miền con có thể được ủy quyền cho một tổ chức khác và tổ chức đó chịu trách
Hình 3.4: Ví dụ hoạt động DNS
3.6.3 Đồng bộ dữ liệu giữa các DNS server( Zone transfer)
3.6.3.1 Các phương pháp đồng bộ dữ liệu giữa các DNS server
Do đề phòng rủi ro khi DNS server không hoạt động hoặc kết nối bị đứt người ta khuyên nên dùng hơn một DNS server để quản lý một zone nhằm tránh trục trặc đường truyền. Do vậy phải có cơ chể chuyển dữ liệu các zone và đồng bộ giữa các DNS server khác nhau. Có hai cách để đồng bộ dữ liệu giữa các DNS server là primary server và secondary server như: Truyền toàn bộ zone (all zone transfer) và truyền phần thay đổi (Incremental zone transfer)
+ Truyền toàn bộ zone (all zone transfer)
Khi một DNS server mới được thêm vào mạng thì nó được cấu hình như một secondary server mới cho một zone đã tồn tại. Nó sẽ tiến hành nhận toàn bộ dữ liệu từ primary server. Đối với các DNS server phiên bản đầu tiên thường dùng giải pháp lấy toàn bộ các cơ sở dữ liệu khi có các thay đổi trong zone.
+ Truyền phần thay đổi(Incremental zone)
Theo giải pháp này là chỉ truyền những những dữ liệu thay đổi của zone. Đồng bộ dữ liệu này được miêu tả chi tiết trong tiêu chuẩn RFC 1995. Nó cung cấp giải pháp hiệu quả cho việc đồng bộ những thay đổi, thêm, bớt của zone.
3.6.3.2 Cơ chế hoạt động đồng bộ dữ liệu giữa các DNS server
Với trao đổi IXFR zone thì so sánh sự khác nhau giữa số serial của nguồn dữ liệu và bản sao của nó. Nếu cả hai đều có cùng số serial thì việc truyền dữ liệu của zone sẽ không thực hiện. Nếu số serial cho dữ liệu nguồn lớn hơn số serial của secondary server thì nó sẽ thực hiện gửi những thay đổi của bản ghi nguồn (Resource record – RR) của zone ở Primary Server.
Để truy vấn IXFR thực hiện thành công và các thay đổi được gửi thì tại DNS server nguồn của zone phải được lưu giữ các phần thay đổi để sử dụng truyền đến nơi yêu cầu của truy vấn IXFR. Incremental sẽ cho phép lưu lượng truyền dữ liệu ít và thực hiện nhanh hơn.
Zone transfer sẽ xảy ra khi có những hành động sau xảy ra:
.Khi quá trình làm mới của zone đã kết thúc (refresh exprire )
.Khi secondary server được thông báo zone đã thay đổi tại nguồn quản lý zone .Khi thêm mới secondary server
.Tại secondary server yêu cầu chuyển zone
Các bước yêu cầu chuyển dữ liệu từ secondary server đến DNS server chứa zone để yêu cầu lấy dữ liệu về zone mà nó quản lý.
Bước 1: Khi cấu hình DNS server mới, thì nó sẽ gửi truy vấn yêu cầu gửi toàn bộ zone (all zone transfer request<AXFR) đến DNS server chính quản lý dữ liệu của zone
Bước 2: DNS server chính quản lý dữ liệu của zone trả lời và chuyển toàn bộ dữ liệu về zone cho secondary server (destination) mới cấu hình.
Để xác định có chuyển dữ liệu hay không thì nó dựa vào số serial được khai báo bằng bản ghi SOA.
Bước 3: Khi thời gian làm mới (refresh interval) của zone đã hết, thì DNS server nhận dữ liệu sẽ truy vấn yêu cầu làm mới zone tới DNS server chính chứa dữ liệu zone Bước 4: DNS server chính quản lý dữ liệu sẽ trả lời truy vấn và gửi lại dữ liệu. Trả lời truy vấn dữ liệu gồm số serial của zone tại DNS server chính.
Bước 5: DNS server nhận dữ liệu về zone và sẽ kiểm tra số serial trong trả lời và quyết định xem có cần truyền dữ liệu không.
+ Nếu giá trị của số serial của Primary Server bằng với số serial lưu tại nó thì sẽ kết thúc luôn. Và nó sẽ thiết lập lại với các thông số cũ lưu trong máy.
+ Nếu giá trị của số serial tại Primary Server lớn hơn giá trị serial hiện tại DNS nhận dữ liệu. Thì nó kết luận zone cần được cập nhật và cần đồng bộ dữ liệu giữa hai