1. Giới thiệu
Lớp học lập trình này sẽ hướng dẫn bạn thiết lập các vùng chuyển tiếp đi của Cloud DNS bằng cách sử dụng Tên miền đủ điều kiện (FQDN) làm mục tiêu chuyển tiếp. Tính năng này cho phép bạn chuyển hướng lưu lượng truy cập DNS đến các địa chỉ IP được phân giải từ một tên DNS, thay vì mã hoá cứng các địa chỉ IP trong cấu hình của vùng chuyển tiếp. Điều này đặc biệt hữu ích khi địa chỉ IP của trình phân giải DNS phụ trợ thay đổi, vì bạn có thể cập nhật bản ghi DNS cho FQDN và Cloud DNS sẽ tự động nhận các thay đổi đó.
Khi kết thúc lớp học lập trình này, bạn sẽ có thể định cấu hình các vùng chuyển tiếp Cloud DNS sử dụng những thông tin sau:
- Mục tiêu FQDN khớp với một vùng riêng tư có bản ghi A/AAAA.
- Mục tiêu FQDN được hỗ trợ bởi các chính sách định tuyến Cloud DNS (định vị địa lý hoặc vòng tròn cân bằng theo trọng số) để phân phối lưu lượng truy cập hoặc phân bổ theo khu vực.
Tổng quan về tính năng chuyển tiếp FQDN
Tính năng chuyển tiếp Cloud DNS cho phép bạn phân giải tên DNS riêng tư được lưu trữ bên ngoài Google Cloud Platform (ví dụ: trên máy hoặc trên các đám mây khác) từ các tài nguyên trên Google Cloud Platform. Thông thường, tính năng này hỗ trợ chuyển tiếp đến danh sách địa chỉ IP mục tiêu. Tính năng chuyển tiếp FQDN mở rộng tính năng này bằng cách cho phép bạn chỉ định một FQDN làm mục tiêu chuyển tiếp trong một vùng chuyển tiếp.
Khi bạn chỉ định một FQDN, Cloud DNS sẽ phân giải FQDN đó thành địa chỉ IP bằng cách sử dụng một lượt tra cứu nội bộ. Lượt tra cứu này sử dụng logic phân giải của mạng nguồn. Điều này có nghĩa là mục tiêu FQDN có thể khớp với một vùng riêng tư, chính sách định tuyến DNS (định vị địa lý hoặc vòng tròn cân bằng theo trọng số) hoặc thậm chí là tên miền công khai trên Internet. Sau đó, Cloud DNS sẽ chuyển tiếp truy vấn đến IP đích đã phân giải.
Sản phẩm bạn sẽ tạo ra
Chuyển tiếp FQDN theo khu vực bằng một vùng riêng tư mới
Bạn sẽ xây dựng một chế độ thiết lập đạt được mức độ tương đồng theo khu vực cho lưu lượng truy cập DNS. Việc này bao gồm việc tạo một vùng DNS riêng và định cấu hình chính sách định tuyến vị trí địa lý trong vùng đó, sau đó liên kết một vùng chuyển tiếp với mục tiêu FQDN này. Điều này đảm bảo rằng lưu lượng truy cập từ một khu vực cụ thể (ví dụ: us-east1) được chuyển tiếp đến một máy chủ DNS khu vực tương ứng.
Chuyển tiếp FQDN bằng một vùng riêng tư hiện có
Bạn sẽ tìm hiểu cách tạo một vùng chuyển tiếp nhắm đến một FQDN được hỗ trợ bởi bản ghi A/AAAA trong một vùng DNS riêng tư hiện có. Phần này minh hoạ việc chuyển tiếp truy vấn đến các địa chỉ IP được xác định tĩnh được phân giải bằng cách sử dụng mục tiêu chuyển tiếp FQDN.
Kiến thức bạn sẽ học được
Khái niệm về tính năng chuyển tiếp FQDN
Bạn sẽ hiểu rằng tính năng chuyển tiếp FQDN mở rộng tính năng chuyển tiếp DNS bằng cách cho phép bạn chỉ định một mục tiêu chuyển tiếp FQDN thay vì chỉ các địa chỉ IP làm mục tiêu chuyển tiếp cho các truy vấn đi.
Lợi ích của tính năng chuyển tiếp FQDN
Bạn sẽ thấy rằng tính năng này giúp bạn không cần phải cập nhật theo cách thủ công khi địa chỉ IP của trình phân giải DNS phụ trợ thay đổi, vì Cloud DNS sẽ tự động nhận các thay đổi từ bản ghi DNS của FQDN. Tính năng này cũng cho phép mở rộng quy mô cơ sở hạ tầng DNS linh hoạt hơn bằng cách cho phép các máy chủ DNS hoạt động dựa trên một tên dùng chung hoặc mở rộng quy mô một cách linh động.
Tích hợp với chính sách định tuyến Cloud DNS
Bạn sẽ tìm hiểu cách kết hợp tính năng chuyển tiếp FQDN với các chính sách định tuyến DNS trên đám mây (định vị địa lý hoặc vòng tròn cân bằng theo trọng số) để đạt được mức độ tương đồng theo khu vực, tối ưu hoá hiệu suất cho các hoạt động triển khai đa dạng về mặt địa lý và phân phối lưu lượng truy cập dựa trên trọng số đã định cấu hình.
Cú pháp lệnh Google Cloud CLI
Bạn sẽ làm quen với lệnh gcloud dns managed-zones create
và các cờ liên quan (--forwarding-targets
, --private-forwarding-targets
) để thiết lập vùng chuyển tiếp FQDN.
Điều kiện tiên quyết
Để hoàn tất lớp học lập trình này, bạn cần có:
- Tài khoản Google
- Một dự án trên Google Cloud đã bật tính năng thanh toán
- Công cụ dòng lệnh gcloud đã được cài đặt và định cấu hình
- Có kiến thức cơ bản về Cloud DNS và các khái niệm về DNS
2. Thiết lập
Tìm hiểu các trường hợp chuyển tiếp FQDN
Tính năng chuyển tiếp FQDN của Cloud DNS hỗ trợ một số trường hợp sử dụng:
- Vùng riêng tư có bản ghi A/AAAA: Nếu FQDN khớp với bản ghi A/AAAA trong vùng riêng tư, thì các địa chỉ IP đã phân giải sẽ được thêm vào danh sách chuyển tiếp và hành vi này giống với việc chuyển tiếp trực tiếp đến địa chỉ IP mục tiêu.
- Khu vực riêng có chính sách về vị trí địa lý: Chính sách về vị trí địa lý cho phép bạn chỉ định vị trí địa lý của nguồn và cung cấp câu trả lời tương ứng, xác minh việc phân phối lưu lượng truy cập dựa trên vị trí địa lý. Đây là yếu tố chính để chuyển tiếp DNS theo khu vực và mối quan hệ tương đồng.
- Vùng riêng tư có chính sách vòng quay cân bằng (WRR): Chính sách WRR cho phép chỉ định các trọng số khác nhau cho mỗi địa chỉ IP cho một tên DNS, xác minh lưu lượng truy cập được phân phối theo trọng số đã định cấu hình.
- Vùng công khai có bản ghi A/AAAA: Nếu FQDN không khớp với bất kỳ tên riêng nào hiển thị trên cùng một mạng, thì Cloud DNS sẽ cố gắng phân giải tên đó bằng Internet công khai.
Tìm hiểu về lệnh Google Cloud CLI để chuyển tiếp FQDN
Để tạo một vùng chuyển tiếp có mục tiêu chuyển tiếp FQDN bằng các lệnh CLI gcloud, bạn sẽ sử dụng lệnh gcloud dns managed-zones create
. Cờ chính để chỉ định mục tiêu FQDN là --forwarding-targets
hoặc --private-forwarding-targets
. Vui lòng xem tài liệu này để biết thông tin chi tiết về các phương thức định tuyến tiêu chuẩn và riêng tư.
--forwarding-targets
: Danh sách địa chỉ IPv4/IPv6 hoặc một tên miền của máy chủ tên mục tiêu mà vùng sẽ chuyển tiếp truy vấn đến. Bị bỏ qua đối với chế độ hiển thị công khai. Địa chỉ không phải RFC1918 sẽ chuyển tiếp đến mục tiêu thông qua Internet. Địa chỉ RFC1918 sẽ chuyển tiếp qua VPC.--private-forwarding-targets
: Danh sách địa chỉ IPv4/IPv6 hoặc một tên miền của máy chủ tên mục tiêu mà vùng sẽ chuyển tiếp truy vấn đến. Bị bỏ qua đối với chế độ hiển thị công khai. Tất cả địa chỉ được chỉ định cho thông số này sẽ được truy cập thông qua VPC.
Cú pháp mẫu:
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--networks=VPC_NETWORK_LIST \
--forwarding-targets=DEFAULT_FQDN_TARGET \
--visibility=private
Xin lưu ý rằng bạn có thể chỉ định --private-forwarding-targets
thay vì --forwarding-targets
.
Thiết lập dự án trên Google Cloud Platform
Đăng nhập vào gcloud CLI.
gcloud auth login
Tạo dự án.
gcloud projects create my-codelab-project
Bật Cloud DNS API. Có thể mất vài phút thì thay đổi này mới có hiệu lực.
gcloud services enable dns.googleapis.com
Lớp học lập trình này sử dụng mạng VPC mặc định được tạo bằng một dự án mới. Bạn cũng có thể tạo một mạng mới để sử dụng.
3. Thiết lập tính năng chuyển tiếp FQDN theo khu vực (với vùng riêng tư mới)
Tình huống này minh hoạ cách thực hiện tính năng chuyển tiếp DNS theo khu vực, đảm bảo lưu lượng truy cập từ một khu vực cụ thể được chuyển tiếp đến một máy chủ DNS trong cùng khu vực đó.
Tạo vùng DNS riêng
Trước tiên, hãy tạo một vùng DNS riêng (ví dụ: foo.com.) để lưu trữ FQDN và chính sách định tuyến vị trí địa lý liên quan. Mạng mặc định của bạn phải thấy được vùng này.
gcloud dns managed-zones create my-zone \
--description="Private Zone for FQDN outbound DNS forwarding." \
--dns-name=foo.com. \
--networks=default \
--visibility=private
Tạo bản ghi chính sách định tuyến vị trí địa lý trong vùng riêng tư
Tiếp theo, hãy tạo một tập hợp bản ghi (ví dụ: geo.foo.com) trong my-zone và áp dụng chính sách định tuyến theo vị trí địa lý. Ví dụ này định cấu hình địa chỉ IP cho asia-east1 và asia-west1.
gcloud dns record-sets create geo.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--routing-policy-type="GEO" \
--routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"
Lưu ý: Nếu bạn tắt tính năng khoanh vùng địa lý (trạng thái mặc định và được đề xuất), thì các truy vấn sẽ được chuyển đến khu vực có trạng thái tốt nhất gần nhất nếu mục tiêu trong khu vực ban đầu có trạng thái không tốt.
Tạo vùng chuyển tiếp có mục tiêu FQDN
Tạo một vùng chuyển tiếp (geo.test.com.) hiển thị trong cùng một mạng mặc định và đặt geo.foo.com. (FQDN có chính sách định tuyến vị trí địa lý) làm mục tiêu chuyển tiếp.
gcloud dns managed-zones create my-geo-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
--dns-name=geo.test.com. \
--networks=default \
--private-forwarding-targets=geo.foo.com. \
--visibility=private
Mọi truy vấn DNS khớp với geo.test.com hiện được chuyển tiếp đến địa chỉ IP đã phân giải (ví dụ: 192.168.0.1 hoặc 192.168.0.2) của geo.foo.com, dựa trên khu vực nguồn của truy vấn.
4. Thiết lập tính năng chuyển tiếp FQDN (với vùng riêng tư hiện có)
Đã có vùng DNS riêng
Giả sử bạn đã có một vùng DNS riêng tư có tên my-zone (foo.com.) hiển thị với mạng mặc định.
Tạo bản ghi tài nguyên DNS trong vùng riêng tư này
Tạo một bản ghi loại A cho a.foo.com. trong my-zone hiện có.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
Tạo vùng chuyển tiếp và chỉ định mục tiêu FQDN
Tương tự như trường hợp FQDN theo khu vực, hãy tạo một vùng chuyển tiếp và chỉ định a.foo.com. làm mục tiêu chuyển tiếp.
gcloud dns managed-zones create my-a-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
--dns-name=a.test.com. \
--networks=default \
--private-forwarding-targets=a.foo.com. \
--visibility=private
Mọi truy vấn DNS khớp với a.test.com. sẽ được chuyển tiếp đến địa chỉ IP đã phân giải 1.2.3.4 của a.foo.com.
5. Dọn dẹp
Trước khi có thể xoá một vùng riêng tư, trước tiên, bạn phải xoá tất cả ResourceRecordSets trong vùng riêng tư đó (ngoại trừ các bản ghi NS và SOA được tạo tự động và phải luôn tồn tại trong vùng riêng tư).
Xoá chính sách định tuyến vị trí địa lý trong vùng riêng tư.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
Xoá bản ghi A trong vùng riêng tư.
gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"
Xoá vùng riêng tư.
gcloud dns managed-zones delete "my-zone"
Xoá vùng chuyển tiếp cho chính sách định tuyến vị trí địa lý.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Xoá vùng chuyển tiếp cho bản ghi A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. Xin chúc mừng
Xin chúc mừng! Bạn đã tìm hiểu thành công cách sử dụng tính năng chuyển tiếp DNS đi FQDN!