0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

7 Mẹo Để Làm Chủ Bản Ghi DNS Trong Hạ Tầng Hiện Đại

Đăng vào 3 tháng trước

• 5 phút đọc

Giới Thiệu

Hệ thống tên miền (DNS) là nền tảng của mọi dịch vụ có mặt trên internet. Là một người lãnh đạo DevOps, bạn sẽ dành nhiều thời gian để điều chỉnh các bản ghi A, AAAA, CNAME, TXT và SRV để đảm bảo các dịch vụ luôn có thể truy cập, bảo mật và hoạt động hiệu quả. Hướng dẫn này sẽ cung cấp cho bạn bảy mẹo thực tiễn vượt ra ngoài định nghĩa sách vở, giúp bạn xây dựng một kiến trúc DNS đáng tin cậy.


1. Giữ Các Tệp Zone Của Bạn DRY

Một sai lầm phổ biến là sao chép và dán các bản ghi giống nhau qua nhiều zone. Thay vào đó, hãy sử dụng chỉ thị $INCLUDE hoặc một công cụ tạo mẫu (ví dụ: envsubst hoặc Ansible) để một nguồn thông tin duy nhất điều khiển tất cả các môi trường.

dns Copy
# zones/example.com.zone
$TTL 3600
@   IN  SOA ns1.example.com. hostmaster.example.com. (
        2025091501 ; serial
        7200       ; refresh
        1800       ; retry
        1209600    ; expire
        3600 )     ; minimum

$INCLUDE /etc/bind/templates/common-records.inc

Tệp được bao gồm có thể chứa các bản ghi MX, SPF và DKIM TXT chung, đảm bảo rằng bạn không bao giờ quên cập nhật chúng trong môi trường sản xuất.


2. Ưu Tiên AAAA Hơn A Khi Có Thể

Việc áp dụng IPv6 đang gia tăng, và nhiều nhà cung cấp đám mây hiện nay phân bổ một tiền tố IPv6 /56 hoặc lớn hơn theo mặc định. Thêm một bản ghi AAAA bên cạnh bản ghi A sẽ cho phép các khách hàng lựa chọn con đường có độ trễ thấp hơn.

dns Copy
example.com.      300 IN A     203.0.113.42
example.com.      300 IN AAAA  2001:db8::42

Hãy chắc chắn rằng tường lửa và bộ cân bằng tải của bạn chấp nhận lưu lượng truy cập trên cả hai loại, nếu không bạn sẽ tạo ra một sự cố dương tính giả.


3. Sử Dụng CNAME Một Cách Tiết Kiệm và Hiểu Rõ Giới Hạn Của Nó

CNAME rất tốt cho việc tạo alias cho các tên miền con (ví dụ: wwwcdn.example.com), nhưng nó không thể đồng tồn tại với các bản ghi khác ở cùng một tên. Một cạm bẫy phổ biến là cố gắng thêm MX hoặc TXT vào một máy chủ CNAME, điều này sẽ làm hỏng việc gửi mail.

dns Copy
# Sử dụng đúng
www    300 IN CNAME cdn.example.com.

# SAI – MX trên một máy chủ CNAME
mail   300 IN CNAME mail.provider.com.
mail   300 IN MX 10 mail.provider.com.

Nếu bạn cần nhiều loại bản ghi, hãy chuyển sang cặp A/AAAA và giữ logic alias trong ứng dụng hoặc bộ cân bằng tải của bạn.


4. Tận Dụng TXT Để Xác Minh và Bảo Mật

Bản ghi TXT là công cụ chính cho SPF, DKIM, DMARC và xác minh tên miền (Google, Microsoft, v.v.). Hãy giữ chúng được tài liệu hóa tốt và tránh lỗi ngắt dòng – một khoảng trắng lạc lõng có thể làm mất hiệu lực toàn bộ chính sách.

dns Copy
# SPF chỉ cho phép máy chủ mail của chúng tôi và SendGrid
example.com.  300 IN TXT "v=spf1 ip4:203.0.113.0/24 include:sendgrid.net -all"

# Khóa công khai DKIM (được ngắt dòng để dễ đọc)
default._domainkey.example.com. 300 IN TXT (
  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr..."
)

Xác thực với các công cụ như dig +short txt example.com và các công cụ kiểm tra SPF/DKIM trực tuyến trước khi triển khai.


5. Triển Khai Bản Ghi SRV Để Phát Hiện Dịch Vụ

Khi bạn chạy các vi dịch vụ giao tiếp bằng các giao thức không phải HTTP (ví dụ: SIP, XMPP hoặc RPC tùy chỉnh), các bản ghi SRV cho phép khách hàng phát hiện máy chủ, cổng và độ ưu tiên mà không cần mã hóa cứng các điểm cuối.

dns Copy
# Dịch vụ đăng ký SIP
_sip._tcp.example.com. 300 IN SRV 10 5 5060 sip1.example.com.
_sip._tcp.example.com. 300 IN SRV 20 5 5060 sip2.example.com.

Khách hàng sẽ tự động quay lại các máy chủ có độ ưu tiên thấp hơn nếu máy chủ chính gặp sự cố, cung cấp khả năng cao sẵn có tích hợp.


6. Đặt TTL Thích Hợp Cho Các Môi Trường Động

Thời gian sống (TTL) điều khiển thời gian mà các bộ giải quyết lưu cache một bản ghi. Đối với các tài sản tĩnh (ví dụ: các điểm cuối CDN), hãy sử dụng TTL cao (86400+). Đối với các dịch vụ thay đổi thường xuyên (ví dụ: các front-end được cân bằng tải), hãy giữ TTL thấp (60-300) để giảm thiểu các bản ghi cũ.

dns Copy
# Máy chủ CDN – TTL dài
cdn.example.com. 86400 IN A 203.0.113.100

# Cổng API – TTL ngắn
api.example.com. 300 IN A 203.0.113.200

Hãy nhớ điều chỉnh TTL trước khi thực hiện thay đổi IP dự kiến; nếu không, bạn sẽ thấy lưu lượng “ma” trong suốt thời gian của TTL cũ.


7. Kích Hoạt DNSSEC Để Bảo Vệ Chống Lại Việc Đánh Cắp

DNSSEC thêm một chữ ký mật mã vào mỗi zone, ngăn chặn các cuộc tấn công làm ô nhiễm cache. Các bước thiết lập là:

  1. Tạo một KSK (Khóa Ký Tên) và ZSK (Khóa Ký Zone).
  2. Ký tệp zone bằng dnssec-signzone.
  3. Xuất bản bản ghi DS tại nhà đăng ký của bạn.
  4. Kích hoạt xác thực DNSSEC trên các bộ giải quyết của bạn (ví dụ: named.conf với dnssec-validation auto;).
dns Copy
# Tạo khóa (KSK + ZSK)
dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com
dnssec-keygen -a RSASHA256 -b 4096 -n ZONE -f KSK example.com

# Ký tệp zone
dnssec-signzone -o example.com -k Kexample.com.+007+12345 example.com.zone

Mặc dù DNSSEC tăng thêm một chút tải CPU, nhưng lợi ích về bảo mật là đáng giá cho bất kỳ tên miền nào có yêu cầu sản xuất.


Kết Luận

Làm chủ các bản ghi DNS không chỉ là ghi nhớ cú pháp; mà còn là áp dụng đúng loại bản ghi vào thời điểm thích hợp, giữ cho TTL đồng bộ với quy trình triển khai của bạn và củng cố zone bằng DNSSEC. Bằng cách làm theo bảy mẹo này, bạn sẽ giảm thiểu thời gian ngừng hoạt động, cải thiện bảo mật và làm cho hạ tầng của bạn dễ quản lý hơn.

Nếu bạn cần một đối tác cung cấp DNS đáng tin cậy, hãy xem qua lacidaweb.com. Nó cung cấp dịch vụ DNS được quản lý với phân tích tích hợp và tự động hóa chuyển đổi DNSSEC, giúp bạn tập trung vào mã thay vì các tệp zone.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào