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ừ tên DNS, thay vì mã hoá cứng đị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 nội dung sau:
- Một mục tiêu FQDN khớp với một vùng riêng tư có bản ghi A/AAAA.
- Một đích FQDN được hỗ trợ bởi các chính sách định tuyến Cloud DNS (vị trí địa lý hoặc luân phiên có trọng số) để có sự liên kết theo khu vực hoặc phân phối lưu lượng truy cập.
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 các tên DNS riêng tư được lưu trữ bên ngoài Google Cloud Platform (ví dụ: tại chỗ hoặc trên các đám mây khác) từ các tài nguyên trên Google Cloud Platform. Theo truyền thống, tính năng này hỗ trợ chuyển tiếp đến danh sách địa chỉ IP đích. 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 quy trình tra cứu nội bộ, quy trình này sử dụng logic phân giải của mạng nguồn. Điều này có nghĩa là đích FQDN có thể khớp với một vùng riêng tư, chính sách định tuyến DNS (vị trí địa lý hoặc luân phiên có trọng số) hoặc thậm chí là một 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ẽ tạo một chế độ thiết lập đạt được mối liên kết theo khu vực cho lưu lượng truy cập DNS. Việc này bao gồm tạo một vùng DNS riêng tư và định cấu hình chính sách định tuyến theo 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 theo 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/bản ghi AAAA trong một vùng DNS riêng hiện có. Ví dụ này minh hoạ việc chuyển tiếp các truy vấn đến các địa chỉ IP được xác định tĩnh được phân giải bằ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ề 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ục tiêu chuyển tiếp FQDN thay vì chỉ đị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ẽ biết rằng tính năng này giúp bạn không cần cập nhật thủ công khi địa chỉ IP của trình phân giải DNS phụ trợ thay đổi, vì Cloud DNS 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 cơ sở hạ tầng DNS linh hoạt hơn bằng cách cho phép các máy chủ DNS nằm sau một tên dùng chung hoặc mở rộng một cách linh hoạt.
Tích hợp với các chính sách định tuyến của 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 Cloud DNS (vị trí địa lý hoặc luân phiên có trọng số) để đạt được sự liên kết 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ề đị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 các 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ó những thứ sau:
- Tài khoản Google
- Một dự án trên Google Cloud đã bật tính năng thanh toán
- Đã cài đặt và định cấu hình công cụ dòng lệnh gcloud
- 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 một vùng riêng tư, thì các địa chỉ IP được 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 hệt với hành vi chuyển tiếp trực tiếp đến các địa chỉ IP đích.
- Vùng riêng tư có chính sách định vị vị trí: Chính sách định vị vị trí cho phép bạn chỉ định vị trí địa lý nguồn và cung cấp các câu trả lời tương ứng, xác minh việc phân bổ lưu lượng truy cập dựa trên khu vực địa lý. Đây là yếu tố then chốt để chuyển tiếp và liên kết DNS theo khu vực.
- Vùng riêng tư có chính sách luân phiên có trọng số (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 của 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 tư nào mà cùng mạng có thể thấy, thì Cloud DNS sẽ cố gắng phân giải FQDN đó bằng Internet công cộng.
Tìm hiểu 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ác 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ủ định danh đích mà vùng sẽ chuyển tiếp các truy vấn đến. Bị bỏ qua đối với chế độ hiển thị công khai. Các địa chỉ không phải RFC1918 sẽ chuyển tiếp đến đích thông qua Internet. Các đị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ủ định danh đích mà vùng sẽ chuyển tiếp các truy vấn đến. Bị bỏ qua đối với chế độ hiển thị công khai. Tất cả các địa chỉ được chỉ định cho tham 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 đạt được 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 một vùng DNS riêng tư
Trước tiên, hãy tạo một vùng DNS riêng tư (ví dụ: foo.com) sẽ lưu trữ FQDN và chính sách định tuyến theo vị trí địa lý được liên kết. Vùng này phải hiển thị cho mạng mặc định của bạn.
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 một bộ bản ghi chính sách định tuyến theo vị trí địa lý trong vùng riêng tư
Tiếp theo, hãy tạo một 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 hàng rào địa lý (mặc định và nên dùng), thì các truy vấn sẽ được chuyển hướng đến khu vực gần nhất có trạng thái tốt nếu mục tiêu ở khu vực ban đầu có trạng thái không tốt.
Tạo một vùng chuyển tiếp có đích FQDN
Tạo một vùng chuyển tiếp (geo.test.com.) xuất hiện trong cùng một mạng mặc định và đặt geo.foo.com. (FQDN có chính sách định tuyến theo 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 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ó một vùng DNS riêng tư hiện có
Giả sử bạn đã có một vùng DNS riêng tư có tên là my-zone (foo.com.) mà mạng default có thể nhìn thấy.
Tạo một 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 một vùng chuyển tiếp và chỉ định đích 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 bạn có thể xoá một vùng riêng tư, tất cả ResourceRecordSet trong vùng riêng tư đó phải được xoá trước (ngoại trừ bản ghi NS và SOA. Đây là những bản ghi được tạo tự động và phải luôn có trong vùng riêng tư).
Xoá chính sách định tuyến theo 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 theo 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 đã học thành công cách sử dụng tính năng chuyển tiếp DNS đi FQDN!