Thứ năm, 04/06/2015 | 00:00 GMT+7

Cách cấu hình sao chép DNS trên server Slave PowerDNS trên Ubuntu 14.04

Trong hướng dẫn này, ta sẽ học cách cài đặt PowerDNS trong cấu hình chính / phụ với tính năng tự động sao chép từ server DNS chính sang server phụ. Hướng dẫn này là hướng dẫn thứ hai trong loạt bài PowerDNS dành cho Ubuntu của ta .

Cấu hình chủ / tớ cung cấp thêm độ tin cậy. Nếu một trong các server PowerDNS của bạn gặp sự cố, bạn sẽ có một server phụ để xử lý các yêu cầu.

Ta khuyên bạn nên cung cấp các server này trong các trung tâm dữ liệu riêng biệt. Nếu chúng ở hai địa điểm thực, thì ngay cả khi trung tâm dữ liệu ngừng hoạt động cũng không ảnh hưởng đến dịch vụ DNS của bạn.

Đến cuối hướng dẫn này, ta sẽ có hai server PowerDNS chức năng sử dụng bản sao chính / phụ.

Yêu cầu

Vui lòng hoàn thành các yêu cầu sau:

Trong hướng dẫn trước của ta , ta đã chỉ ra ba domain phụ cho một server PowerDNS duy nhất. Bây giờ ta sẽ sử dụng một trong những domain phụ này để trỏ đến server slaver của ta . Trong các ví dụ của ta , IP server chính của ta sẽ là 111.111.111.111IP server phụ của ta sẽ là 222.222.222.222 .

Bạn cần cập nhật profile keo với nhà cung cấp của bạn cho phù hợp. Vui lòng sử dụng thông tin bên dưới làm hướng dẫn. Xem hướng dẫn PowerDNS trước để biết thêm thông tin về cách cấu hình bản ghi DNS của bạn.

  • hostmaster.example-dns.com 111.111.111.111 ( Server chính)
  • ns1.example-dns.com 111.111.111.111 ( Server chính)
  • ns2.example-dns.com 222.222.222.222 ( Server slaver )

Lưu ý bạn nên cài đặt cả bản ghi keo và bản ghi SOA tại công ty đăng ký của bạn cho domain được sử dụng cho chính server tên. Mặt khác, bạn chỉ cần bản ghi SOA cho các domain khác có file vùng mà bạn muốn lưu trữ trên server định danh tùy chỉnh của bạn .

Bước 1 - Cài đặt PowerDNS trên cả hai server

Đầu tiên, ta cần có hai server PowerDNS chức năng. Một server sẽ trở thành server chính của ta , trong khi server thứ hai sẽ trở thành server slaver của ta .

Nếu bạn chưa làm như vậy, hãy làm theo hướng dẫn trước, Cách cài đặt và cấu hình PowerDNS với MariaDB Backend trên Ubuntu 14.04 .

Bạn nên làm theo hướng dẫn đầy đủ trên server chính của bạn .

Bạn chỉ có thể làm theo các Bước 1-7 trên server slaver của bạn , vì ta không cần Poweradmin trên server phụ.

Khi bạn có hai server PowerDNS chức năng, với ít nhất một trong số chúng chạy Poweradmin, bạn có thể tiến hành bước tiếp theo.

Bước 2 - Cấu hình Server Chính (ns1.example-dns.com)

Bây giờ ta đã sẵn sàng để cấu hình server PowerDNS chính của bạn .

Đây phải là server đã cài đặt Poweradmin và sẽ được coi là server DNS chính của bạn. Nếu bạn đã cài đặt Poweradmin trên cả hai server , bạn có thể sử dụng một trong hai server . Nếu bạn đang làm theo ví dụ này, thì đây phải là ns1.example-dns.com .

Backup file cấu hình ban đầu.

  • cd /etc/powerdns
  • sudo mv pdns.conf pdns.conf.orig

Tạo file cấu hình mới của ta .

  • sudo nano pdns.conf

Chi tiết bên dưới dành cho cấu hình server chính tiêu chuẩn với một server phụ duy nhất. Ta sẽ nhập địa chỉ IP của server slaver , cho phép nó giao tiếp với server chính này. Hãy nhớ thay thế địa chỉ IP server slaver của bạn bên dưới.

Lưu ý: / 32 là một mạng con IP duy nhất và cần thiết cho cấu hình này.

/etc/powerdns/pdns.conf
allow-recursion=0.0.0.0/0 allow-axfr-ips=222.222.222.222/32 config-dir=/etc/powerdns daemon=yes disable-axfr=no guardian=yes local-address=0.0.0.0 local-port=53 log-dns-details=on log-failed-updates=on loglevel=3 module-dir=/usr/lib/powerdns master=yes slave=no setgid=pdns setuid=pdns socket-dir=/var/run version-string=powerdns include-dir=/etc/powerdns/pdns.d 

Khởi động lại dịch vụ PowerDNS để các thay đổi có hiệu lực.

  • sudo service pdns restart

Bước 3 - Cấu hình server Slave (ns2.example-dns.com)

Bây giờ ta đã sẵn sàng để cấu hình server slaver của bạn . Server này sẽ sao chép các vùng DNS từ server chính mà ta vừa cấu hình. Nếu bạn đang làm theo cùng với ví dụ, đây phải là ns2.example-dns.com .

Backup file cấu hình ban đầu.

  • cd /etc/powerdns
  • sudo mv pdns.conf pdns.conf.orig

Tạo file cấu hình mới.

  • sudo nano pdns.conf

Chi tiết bên dưới dành cho cấu hình server phụ tiêu chuẩn với khoảng thời gian làm mới 60 giây. Bạn có thể sao chép chính xác cấu hình.

/etc/powerdns/pdns.conf
allow-recursion=0.0.0.0/0 config-dir=/etc/powerdns daemon=yes disable-axfr=yes guardian=yes local-address=0.0.0.0 local-port=53 log-dns-details=on log-failed-updates=on loglevel=3 module-dir=/usr/lib/powerdns master=no slave=yes slave-cycle-interval=60 setgid=pdns setuid=pdns socket-dir=/var/run version-string=powerdns include-dir=/etc/powerdns/pdns.d 

Cứ sau 60 giây, server phụ sẽ truy vấn server chính để cập nhật vùng. Thông thường, khi một vùng được cập nhật, server chính sẽ gửi thông báo đến các server phụ được gán cho vùng đó. Tuy nhiên, nếu có sự cố kết nối trong quá trình cập nhật vùng, điều này đảm bảo bản cập nhật cuối cùng sẽ chuyển đến server slaver khi nó trực tuyến trở lại.

Tiếp theo, ta cần cho PowerDNS biết cách giao tiếp với server chính.

Đăng nhập vào MariaDB bằng tên user và password PowerDNS mà bạn đã tạo trong hướng dẫn trước. Ví dụ của ta đã sử dụng powerdns_user .

  • mysql -u powerdns_user -p

Nhập password của bạn tại dấu nhắc :

Output
Enter password:

Thay đổi database PowerDNS mà bạn đã cấu hình trong hướng dẫn trước. Khuyến nghị của ta là powerdns .

  • USE powerdns;

Tiếp theo, ta sẽ xếp một hàng mới trong bảng supermasters . Hàng này sẽ chỉ định địa chỉ IP của server chính và Tên domain Đủ điều kiện (FQDN) của server phụ mà ta hiện đang cấu hình .

  • insert into supermasters values ('111.111.111.111', 'ns2.example-dns.com', 'admin');

Bây giờ ta có thể thoát khỏi vỏ MariaDB.

  • exit;

Khởi động lại dịch vụ PowerDNS để các thay đổi có hiệu lực.

  • sudo service pdns restart

Bước 4 - Kiểm tra kết nối Master / Slave

Bước này yêu cầu ns1.example-dns.com phải trỏ đến server chính của bạn và ns2.example-dns.com phải trỏ đến server phụ của bạn.

Nếu bản ghi keo, bản ghi SOA và bản ghi A của bạn chưa được phổ biến, bạn có thể thêm overrides vào file /etc/hosts . Bạn cần thực hiện việc này trên cả hai server .

Mở /etc/hosts bằng nano.

  • sudo nano /etc/hosts

Thêm các mục vào file /etc/hosts .

/ etc / hosts
111.111.111.111 ns1.example-dns.com 222.222.222.222 ns2.example-dns.com 

Hãy đảm bảo hai server của ta có thể giao tiếp ngay bây giờ.

Từ server chính của bạn, ping cả hai tên server .

  • ping ns1.example-dns.com

Kết quả của bạn sẽ như thế này:

Output
64 bytes from ns1.example-dns.com (111.111.111.111): icmp_seq=1 ttl=64 time=0.061 ms

Ping server slaver :

  • ping ns2.example-dns.com

Kết quả mong đợi:

Output
64 bytes from ns2.example-dns.com (222.222.222.222): icmp_seq=1 ttl=64 time=48.8 ms

Bây giờ, ping cả hai tên server từ server slaver của bạn, sử dụng các lệnh giống nhau. Sau khi bạn có thể ping cả hai server từ cả hai server , hãy tiếp tục.

Bước 5 - Cấu hình vùng DNS với tính năng sao chép

Nếu cả hai server đang giao tiếp bình thường, ta đã sẵn sàng tạo vùng DNS đầu tiên của bạn với bản sao chính / phụ.

Đăng nhập vào Poweradmin trên server chính của bạn bằng cách truy cập http:// 111.111.111.111 /poweradmin/ trong trình duyệt của bạn.

Màn hình đăng nhập Poweradmin

Đăng nhập bằng thông tin đăng nhập quản trị bạn đã đặt trước đó.

Nhấp vào liên kết Thêm vùng chính để tạo file vùng mới. Bạn có thể kiểm tra với tên root hoặc domain mới, test.com .

Nhấp vào liên kết Thêm vùng chính

Nhập domain cấp cao nhất của bạn và nhấp vào nút Thêm vùng để tạo vùng.

Nhập domain  của bạn vào trường Tên vùng

Tạo mục nhập NS cho server định danh của bạn:

  • hostmaster.example-dns.com
  • ns1.example-dns.com
  • ns2.example-dns.com

Tạo ít nhất một bản ghi A để kiểm tra bản sao.

Thêm bản ghi NS và A của bạn

Lưu ý: Nếu Server Slave của bạn không được liệt kê là server định danh cho vùng, nó sẽ không tái tạo vùng.

Sau một vài giây, các mục nhập mới sẽ truyền đến server slaver của bạn.

Kiểm tra bản ghi DNS được lưu tại ns1.example-dns.com bằng cách sử dụng dig .

  • dig test.com A @ns1.example-dns.com

Nó sẽ phản hồi với một kết quả tương tự như bên dưới.

Output
root@ns1:/etc/powerdns# dig test.com A @ns1.example-dns.com ; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> test.com A @ns1.example-dns.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44833 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 2800 ;; QUESTION SECTION: ;test.com. IN A ;; ANSWER SECTION: test.com. 86400 IN A 104.131.174.138 ;; Query time: 2 msec ;; SERVER: 45.55.217.94#53(45.55.217.94) ;; WHEN: Tue Apr 28 18:06:54 EDT 2015 ;; MSG SIZE rcvd: 53

Kiểm tra bản ghi DNS được lưu tại ns2.example-dns.com bằng cách sử dụng dig .

  • dig test.com A @ns2.example-dns.com

Nó sẽ phản hồi với một kết quả tương tự như bên dưới.

Output
root@ns1:/etc/powerdns# dig test.com A @ns2.example-dns.com ; <<>> DiG 9.9.5-3ubuntu0.2-Ubuntu <<>> test.com A @ns2.example-dns.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11530 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 2800 ;; QUESTION SECTION: ;test.com. IN A ;; ANSWER SECTION: test.com. 86400 IN A 104.131.174.138 ;; Query time: 3 msec ;; SERVER: 45.55.217.132#53(45.55.217.132) ;; WHEN: Tue Apr 28 18:08:06 EDT 2015 ;; MSG SIZE rcvd: 53

Lưu ý cài đặt cho test.com sẽ chỉ hoạt động sau khi đặt server định danh của bạn thành ns1.example-dns.comns2.example-dns.com tại tổ chức đăng ký tên miền của bạn.

Kết luận

Bây giờ ta có hai server PowerDNS chức năng sử dụng phần backend MariaDB trong cấu hình chủ / tớ.

Bất kỳ thay đổi nào được thực hiện đối với một vùng chính trên server chính, nó sẽ thông báo cho bất kỳ server phụ nào được liệt kê với các bản ghi NS của chính chúng.

Server phụ sẽ tự động truy vấn Server chính về các bản ghi chưa được cập nhật gần đây, đảm bảo các bản ghi DNS của bạn luôn đồng bộ giữa các node PowerDNS của bạn.


Tags:

Các tin liên quan

Cách thay đổi mật khẩu tài khoản trên server OpenLDAP
2015-05-29
Cách thay đổi mật khẩu tài khoản trên server OpenLDAP
2015-05-29
Cách chạy mail server và lưu trữ tệp của riêng bạn với PEPS trên Ubuntu 14.04
2015-05-22
Cách chạy mail server của riêng bạn với Mail-in-a-Box trên Ubuntu 14.04
2015-05-15
Thiết lập server ban đầu với Debian 8
2015-05-11
Cách thiết lập server Hexxit (Minecraft Mod Pack) trên Ubuntu 14.04
2015-05-07
Cách cấu hình BIND làm server DNS Mạng riêng trên CentOS 7
2015-04-29
Cách cấu hình BIND làm server DNS Mạng riêng trên CentOS 7
2015-04-29
Cách cài đặt server Bacula trên CentOS 7
2015-04-15
Cách cài đặt Bacula Server trên Ubuntu 14.04
2015-04-09