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 DNS server
Bước 6: Nếu DNS server nhận kết luận rằng zone cần phải lấy dữ liệu thì nó sẽ gửi yêu cầu IXFR tới DNS server chính để yêu cầu truyền dữ liệu của zone.
+ Nếu DNS server chính có hỗ trợ việc gửi những thay đổi của zone thì nó sẽ gửi những phần thay đổi của nó (Incremental zone transfer of the zone).
+ Nếu DNS server chính không hỗ trợ thì nó sẽ gửi toàn bộ zone (Full AXFR transfer of the zone )
3.7 Gói phần mềm Bind
Chương trình server của DNS là một daemon named hoạt động ở port 53. Trong quá trình khởi động, named đọc các tập tin dữ liệu rồi chờ các yêu cầu phân giải qua cổng xác định trong tập tin /etc/services. Khi nhận được một yêu cầu từ resolver, đầu tiên named dùng giao thức UDP để truy vấn. Nếu dùng giao thức UDP phân giải không có kết quả, thì sau đó named sẽ dùng giao thức TCP.