19/09/2018, 09:47

Làm thế nào để cấu hình bản sao DNS trên một máy chủ PowerDNS Slave trên Ubuntu 14.04

Giới thiệu Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thiết lập PowerDNS trong một cấu hình master / slave với sự nhân bản tự động từ máy chủ DNS chính đến slave. Hướng dẫn này là hướng dẫn thứ hai trong PowerDNS loạt cho Ubuntu. Cấu hình chính / phụ cung cấp độ tin cậy bổ sung. Nếu một ...

Giới thiệu

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách thiết lập PowerDNS trong một cấu hình master / slave với sự nhân bản tự động từ máy chủ DNS chính đến slave. Hướng dẫn này là hướng dẫn thứ hai trong PowerDNS loạt cho Ubuntu.

Cấu hình chính / phụ cung cấp độ tin cậy bổ sung. Nếu một trong các máy chủ PowerDNS của bạn bị hỏng, bạn sẽ có một máy chủ phụ để xử lý các yêu cầu.

Chúng tôi khuyên bạn nên cấp phép các máy chủ này trong các trung tâm dữ liệu riêng biệt. Nếu chúng ở hai vị trí thực tế, thì ngay cả khi mất dữ liệu trung tâm dữ liệu cũng sẽ không ảnh hưởng đến dịch vụ DNS của bạn.

Đến cuối hướng dẫn này, chúng ta sẽ có hai máy chủ PowerDNS chức năng sử dụng nhân rộng master / slave.

Điều kiện tiên quyết

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

  • Hai 512 MB giọt hoặc lớn hơn với Ubuntu 14.04 64-bit. 512 MB nên rất nhiều để chạy một máy chủ PowerDNS với một số lượng vừa phải của khu vực / hồ sơ
  • A người dùng sudo
  • Làm thế nào để cài đặt và cấu hình PowerDNS với một backend MariaDB trên Ubuntu 14.04 (chi tiết trong Bước 1)
  • Bản ghi keo và cài đặt máy chủ định danh cho tên miền được định cấu hình tại công ty đăng ký tên miền của bạn

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

Bạn sẽ cần phải cập nhật các hồ sơ 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 định cấu hình bản ghi DNS của bạn.

  • hostmaster.example-dns.com 111.111.111.111 (Máy chủ chính)
  • ns1.example-dns.com 111.111.111.111 (Máy chủ chính)
  • ns2.example-dns.com 222.222.222.222 (Máy chủ Slave)

Lưu ý rằng bạn nên thiết lập cả bản ghi keo và bản ghi SOA tại tổ chức đăng ký tên miền của bạn cho tên miền được sử dụng cho máy chủ định danh. Mặt khác, bạn chỉ cần bản ghi SOA cho các miền khác có tệp vùng bạn muốn lưu trữ trên máy chủ định danh tùy chỉnh của mình.

Bước 1 - Cài đặt PowerDNS trên cả hai máy chủ

Đầu tiên, chúng ta cần có hai máy chủ PowerDNS chức năng. Một máy chủ sẽ trở thành máy chủ chính của chúng tôi, trong khi máy chủ thứ hai sẽ trở thành máy chủ nô lệ của chúng tôi.

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

Bạn nên làm theo hướng dẫn đầy đủ về máy chủ chủ.

Bạn có thể thực hiện theo các bước 1-7 trên máy chủ nô lệ, vì chúng ta không cần Poweradmin trên máy chủ phụ.

Khi bạn có hai máy chủ 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 Master Server (ns1.example-dns.com)

Chúng ta đã sẵn sàng để cấu hình máy chủ PowerDNS chính của mình.

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

Sao lưu tệp cấu hình gốc.

cd /etc/powerdns

sudo mv pdns.conf pdns.conf.orig

Tạo tệp cấu hình mới của chúng tôi.

sudo nano pdns.conf

Chi tiết bên dưới dành cho cấu hình máy chủ chính chuẩn với một máy chủ phụ. Chúng tôi sẽ nhập địa chỉ IP máy chủ phụ, cho phép nó liên lạc với máy chủ chủ này. Hãy nhớ để thay thế của riêng bạn địa chỉ IP máy chủ nô lệ phía dưới.

Lưu ý: / 32 là một mạng con IP duy nhất và được yêu cầu 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 máy chủ Slave (ns2.example-dns.com)

Bây giờ chúng tôi đã sẵn sàng để cấu hình máy chủ nô lệ. Máy chủ này sẽ nhân rộng vùng DNS từ máy chủ chính mà chúng ta vừa cấu hình. Nếu bạn đang theo dõi cùng với ví dụ, điều này sẽ là ns2.example-dns.com.

Sao lưu tệp cấu hình gốc.

cd /etc/powerdns

sudo mv pdns.conf pdns.conf.orig

Tạo tệp cấu hình mới.

sudo nano pdns.conf

Chi tiết bên dưới dành cho cấu hình máy chủ nô lệ 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, máy chủ phụ sẽ truy vấn máy chủ chính để cập nhật vùng. Thông thường khi một vùng được cập nhật, máy chủ chính sẽ gửi một thông báo đến các máy chủ nô lệ được gán cho vùng đó. Tuy nhiên, nếu có sự cố kết nối trong khi cập nhật vùng, điều này đảm bảo cập nhật cuối cùng sẽ chuyển sang máy chủ phụ khi nó trực tuyến trở lại.

Tiếp theo chúng ta cần nói cho PowerDNS cách giao tiếp với máy chủ chủ.

Đăng nhập vào MariaDB bằng tên người dùng và mật khẩu PowerDNS bạn đã tạo trong hướng dẫn trước. Ví dụ của chúng tôi đã sử dụng powerdns_user.

mysql -u powerdns_user -p

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

OutputEnter password:

Thay đổi cơ sở dữ liệu PowerDNS bạn đã cấu hình trong hướng dẫn trước. Đề xuất của chúng tôi là powerdns.

USE powerdns;

Tiếp theo chúng ta sẽ viết một hàng mới trong supermasters bàn. Hàng này sẽ chỉ định IP máy chủ chính địa chỉ và Tên miền hoàn toàn đủ điều kiện (FQDN) của máy chủ nô lệ chúng tôi hiện đang định cấu hình.

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

Bây giờ chúng 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 - Thử nghiệm Master / Slave Connection

Bước này yêu cầu ns1.example-dns.com chỉ vào máy chủ chính của bạn và ns2.example-dns.com được trỏ đến máy chủ nô lệ của bạn.

Nếu hồ sơ keo của bạn, bản ghi SOA và bản ghi A chưa được truyền, bạn có thể thêm ghi đè vào /etc/hosts tập tin. Bạn sẽ muốn làm điều này trên cả hai máy chủ.

Mở /etc/hosts sử dụng nano.

sudo nano /etc/hosts

Thêm các mục vào /etc/hosts tập tin.

/etc/hosts

111.111.111.111 ns1.example-dns.com
222.222.222.222 ns2.example-dns.com

Hãy chắc chắn rằng hai máy chủ của chúng tôi có thể giao tiếp ngay bây giờ.

Từ của bạn máy chủ chủ, ping cả tên máy chủ.

ping ns1.example-dns.com

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

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

Ping máy chủ nô lệ:

ping ns2.example-dns.com

Kết quả mong đợi:

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

Bây giờ, ping cả tên máy chủ từ máy chủ nô lệ, sử dụng cùng một lệnh. Khi bạn có thể ping cả hai máy chủ từ cả hai máy chủ, hãy tiếp tục.

Bước 5 - Cấu hình vùng DNS với nhân rộng

Nếu cả hai máy chủ đang giao tiếp đúng cách, chúng tôi đã sẵn sàng tạo vùng DNS đầu tiên của chúng tôi với bản sao chính / phụ.

Đăng nhập vào Poweradmin trên máy chủ chủ 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.

Poweradmin login screen

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

Nhấn vào Thêm vùng chính để tạo tệp vùng mới. Bạn có thể kiểm tra điều này với tên gốc hoặc tên miền mới, test.com.

Click the Add master zone link

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

Enter your domain name in the Zone name field

Tạo nên NS mục nhập cho máy chủ đị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 A để kiểm tra sao chép.

Add your NS and A records

Lưu ý: Nếu Máy chủ Slave của bạn không được liệt kê là máy chủ định danh cho vùng đó, máy chủ sẽ không nhân rộng vùng đó.

Sau một vài giây, các mục mới sẽ được truyền đến máy chủ nô lệ của bạn.

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

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

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

Outputroot@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 sử dụng dig.

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

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

Outputroot@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

Hãy nhớ rằng các cài đặt cho test.com sẽ chỉ hoạt động sau khi đặt máy chủ định danh của bạn thành ns1.example-dns.comns2.example-dns.com tại công ty đăng ký của bạn.

Phần kết luận

Bây giờ chúng ta có hai máy chủ PowerDNS chức năng sử dụng một backend MariaDB trong một cấu hình master / slave.

Bất kỳ thay đổi thời gian nào được thực hiện cho vùng chính trên máy chủ chính, nó sẽ thông báo cho bất kỳ máy chủ nô lệ nào được liệt kê với chính chúng NS Hồ sơ.

Máy chủ nô lệ sẽ tự động truy vấn Master Server cho 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 vẫn được đồng bộ giữa các nút PowerDNS của bạn.

0