Route 53 là gì?
Amazon Route 53 là dịch vụ DNS (Domain Name System) web có khả năng mở rộng cao và sẵn sàng cao của AWS. Tên "Route 53" lấy từ cổng TCP/UDP 53 — cổng mặc định của giao thức DNS. Route 53 cung cấp ba chức năng chính: đăng ký tên miền, định tuyến DNS, và kiểm tra sức khỏe (health checking).
Cách DNS hoạt động — Tổng quan
Route 53 trong hệ sinh thái AWS
Route 53 tích hợp chặt chẽ với hầu hết các dịch vụ AWS:
- ELB / ALB / NLB: Alias record trỏ trực tiếp đến load balancer (miễn phí query)
- CloudFront: Alias record cho CDN distribution
- S3: Alias record cho static website hosting bucket
- API Gateway: Custom domain name mapping
- Elastic Beanstalk: Alias record cho environment endpoint
- VPC: Private Hosted Zone cho internal DNS resolution
- CloudWatch: Health check tích hợp với CloudWatch Alarms
- AWS Global Accelerator: Alias record cho accelerator endpoint
DNS Fundamentals — Các loại Record
DNS sử dụng nhiều loại record khác nhau để ánh xạ tên miền đến các tài nguyên. Hiểu rõ từng loại record là nền tảng để cấu hình Route 53 hiệu quả.
| Record Type | Mô tả | Ví dụ Value | Use Case |
|---|---|---|---|
| A | Ánh xạ hostname → IPv4 address | 93.184.216.34 |
Trỏ domain đến server IPv4 |
| AAAA | Ánh xạ hostname → IPv6 address | 2001:0db8:85a3::8a2e:0370:7334 |
Trỏ domain đến server IPv6 |
| CNAME | Ánh xạ hostname → hostname khác | app.example.com → lb-123.elb.amazonaws.com |
Alias cho subdomain (không dùng cho zone apex) |
| Alias | Ánh xạ hostname → AWS resource (Route 53 riêng) | example.com → d111.cloudfront.net |
Trỏ zone apex đến AWS resource, miễn phí query |
| MX | Mail Exchange — chỉ định mail server | 10 mail.example.com |
Cấu hình email cho domain |
| TXT | Text record — lưu trữ text tùy ý | "v=spf1 include:_spf.google.com ~all" |
SPF, DKIM, domain verification |
| NS | Name Server — chỉ định authoritative NS cho zone | ns-123.awsdns-45.com |
Delegate DNS cho hosted zone |
| SOA | Start of Authority — thông tin zone | ns-123.awsdns-45.com. hostmaster... |
Metadata của hosted zone (tự động tạo) |
| SRV | Service record — chỉ định host/port cho service | 10 5 5060 sip.example.com |
VoIP, LDAP, XMPP services |
| CAA | Certificate Authority Authorization | 0 issue "letsencrypt.org" |
Chỉ định CA nào được phép cấp SSL cho domain |
| PTR | Pointer — reverse DNS lookup | server.example.com |
Ánh xạ IP → hostname (reverse DNS) |
TTL (Time To Live)
TTL xác định thời gian (giây) mà DNS resolver cache kết quả trước khi query lại. Đây là cấu hình quan trọng ảnh hưởng đến tốc độ và khả năng cập nhật DNS.
- Ít DNS query hơn → giảm chi phí Route 53
- Giảm latency cho client (dùng cache)
- Phù hợp record ít thay đổi
- Nhiều DNS query hơn → tăng chi phí
- Thay đổi DNS propagate nhanh hơn
- Phù hợp khi chuẩn bị thay đổi record
FQDN (Fully Qualified Domain Name)
FQDN là tên miền đầy đủ bao gồm hostname và domain name, kết thúc bằng dấu chấm (root). Ví dụ: www.example.com. — dấu chấm cuối đại diện cho root zone.
Hosted Zones
Hosted Zone là container chứa các DNS record cho một domain. Khi tạo hosted zone, Route 53 tự động tạo NS record và SOA record. Có hai loại hosted zone:
- Chứa record định tuyến traffic từ Internet
- Phân giải được từ bất kỳ đâu trên Internet
- Ví dụ:
example.com→54.239.28.85 - Dùng cho website, API public
- Giá: $0.50/hosted zone/tháng
- Chứa record chỉ phân giải trong VPC
- Không thể truy cập từ Internet
- Ví dụ:
db.internal.corp→10.0.1.50 - Dùng cho internal services, database
- Giá: $0.50/hosted zone/tháng
Chi phí Hosted Zone
| Hạng mục | Giá | Ghi chú |
|---|---|---|
| Hosted Zone | $0.50/zone/tháng | 25 hosted zone đầu tiên. Zone thứ 26+ giá $0.10 |
| Standard Queries | $0.40/triệu query | A, AAAA, CNAME, MX, TXT... |
| Latency-based Queries | $0.60/triệu query | Routing policy phức tạp hơn |
| Geo DNS Queries | $0.70/triệu query | Geolocation & Geoproximity |
| Alias Queries (AWS resource) | Miễn phí | Alias trỏ đến ELB, CloudFront, S3, Beanstalk... |
Private Hosted Zone — Cấu hình
Để sử dụng Private Hosted Zone, bạn cần:
- Bật
enableDnsHostnamesvàenableDnsSupporttrong VPC - Associate Private Hosted Zone với một hoặc nhiều VPC
- Có thể associate VPC từ các AWS account khác nhau (cross-account)
Routing Policies
Route 53 hỗ trợ 8 routing policies khác nhau, cho phép bạn kiểm soát cách DNS trả lời query. Mỗi policy phù hợp với một use case cụ thể.
| Policy | Mô tả | Health Check | Use Case |
|---|---|---|---|
| Simple | Trả về một hoặc nhiều giá trị ngẫu nhiên | Không | Single resource, không cần routing phức tạp |
| Weighted | Phân phối traffic theo tỷ lệ % (weight) | Có | A/B testing, blue-green deployment, phân tải |
| Latency | Trả về resource có latency thấp nhất đến user | Có | Ứng dụng multi-region, tối ưu performance |
| Failover | Active-Passive failover tự động | Bắt buộc (Primary) | Disaster recovery, high availability |
| Geolocation | Routing dựa trên vị trí địa lý của user | Có | Content localization, compliance theo quốc gia |
| Geoproximity | Routing dựa trên khoảng cách + bias | Có | Shift traffic giữa các region bằng bias value |
| Multi-value | Trả về nhiều giá trị healthy (tối đa 8) | Có | Client-side load balancing đơn giản |
| IP-based | Routing dựa trên IP CIDR của client | Có | Tối ưu cho ISP cụ thể, routing nội bộ |
1. Simple Routing
Routing đơn giản nhất — trả về một hoặc nhiều giá trị. Nếu có nhiều giá trị, client chọn ngẫu nhiên. Không hỗ trợ health check.
example.com A 300 → 11.22.33.44
55.66.77.88
99.00.11.22
# Client nhận tất cả IP, chọn ngẫu nhiên 1 cái
2. Weighted Routing
Phân phối traffic theo tỷ lệ weight. Tổng weight không cần bằng 100. Nếu weight = 0, ngừng gửi traffic đến resource đó.
3. Latency-based Routing
Route 53 đo latency giữa user và các AWS Region, sau đó trả về record có latency thấp nhất. Latency được đo dựa trên network latency, không phải khoảng cách địa lý.
4. Failover Routing
Cấu hình Active-Passive: khi Primary resource fail health check, Route 53 tự động chuyển sang Secondary resource.
5. Geolocation Routing
Routing dựa trên vị trí địa lý thực tế của user (continent, country, hoặc US state). Khác với latency-based — geolocation routing cho phép bạn kiểm soát chính xác user từ đâu sẽ được route đến đâu.
- Continent: Africa, Antarctica, Asia, Europe, Oceania, North America, South America
- Country: Mã quốc gia ISO 3166 (VN, US, JP...)
- US State: Chỉ áp dụng cho Hoa Kỳ
- Default record: Bắt buộc — dùng cho user không match location nào
6. Geoproximity Routing
Tương tự Geolocation nhưng linh hoạt hơn — cho phép dùng bias để mở rộng hoặc thu hẹp vùng routing. Bias từ -99 đến +99. Cần sử dụng Route 53 Traffic Flow.
- Bias dương (+): Mở rộng vùng → thu hút nhiều traffic hơn
- Bias âm (-): Thu hẹp vùng → giảm traffic
- Hỗ trợ cả AWS resource (chỉ định Region) và non-AWS resource (chỉ định latitude/longitude)
7. Multi-value Answer Routing
Trả về tối đa 8 healthy record cho mỗi query. Mỗi record có thể gắn health check riêng. Không phải thay thế cho ELB — chỉ là client-side load balancing đơn giản.
8. IP-based Routing
Routing dựa trên CIDR block của client IP. Bạn tạo CIDR collection (danh sách IP range) và map đến các record tương ứng.
# CIDR Collection Location-1: 203.0.113.0/24 → ap-southeast-1 endpoint Location-2: 198.51.100.0/24 → us-east-1 endpoint Location-3: 192.0.2.0/24 → eu-west-1 endpoint # User từ IP 203.0.113.50 → route đến ap-southeast-1
Health Checks
Route 53 Health Checks giám sát sức khỏe của endpoint và tự động loại bỏ resource không healthy khỏi DNS response. Có 3 loại health check:
Endpoint Health Check — Chi tiết
| Cấu hình | Giá trị | Mô tả |
|---|---|---|
| Protocol | HTTP, HTTPS, TCP | Giao thức kiểm tra |
| IP / Domain | Public IP hoặc domain name | Endpoint cần giám sát (phải public accessible) |
| Port | 80, 443, custom | Cổng kết nối |
| Path | /health | Đường dẫn HTTP (chỉ HTTP/HTTPS) |
| Interval | 30s (standard) / 10s (fast) | Fast interval tốn thêm phí |
| Failure Threshold | 1-10 (mặc định 3) | Số lần fail liên tiếp trước khi đánh dấu unhealthy |
| String Matching | Tối đa 5120 bytes đầu tiên | Kiểm tra response body chứa chuỗi cụ thể |
| Health Checkers | ~15 locations toàn cầu | Healthy nếu ≥18% checkers báo healthy |
- Health check chỉ hoạt động với public endpoint (health checkers từ Internet)
- Để giám sát private resource → dùng CloudWatch Alarm-based health check
- Cần mở firewall/security group cho IP range của Route 53 health checkers
Calculated Health Check
Kết hợp nhiều health check con thành một health check cha. Hỗ trợ 3 điều kiện:
- AND: Tất cả child phải healthy
- OR: Ít nhất 1 child healthy
- Threshold: Ít nhất N child healthy (ví dụ: 2/3)
CloudWatch Alarm-based Health Check
Dùng khi cần giám sát resource private (trong VPC). Quy trình:
- Tạo CloudWatch Metric cho resource (ví dụ: DynamoDB throttle, RDS CPU)
- Tạo CloudWatch Alarm dựa trên metric
- Tạo Route 53 Health Check liên kết với CloudWatch Alarm
- Khi alarm ở trạng thái ALARM → health check = unhealthy
Chi phí Health Check
| Loại | Giá/tháng | Ghi chú |
|---|---|---|
| AWS endpoint | $0.50 | Endpoint trong AWS |
| Non-AWS endpoint | $0.75 | Endpoint ngoài AWS |
| String matching (thêm) | +$1.00 | Kiểm tra response body |
| Fast interval (thêm) | +$1.00 | Check mỗi 10s thay vì 30s |
| HTTPS (thêm) | +$1.00 | SSL/TLS health check |
Domain Registration & Transfer
Route 53 hoạt động như một domain registrar — bạn có thể đăng ký tên miền mới hoặc chuyển (transfer) domain từ registrar khác về Route 53.
Đăng ký tên miền mới
- Tìm kiếm tên miền khả dụng trong Route 53 Console
- Chọn TLD (.com, .net, .org, .io, .dev...)
- Điền thông tin liên hệ (registrant, admin, tech)
- Bật/tắt Privacy Protection (ẩn thông tin WHOIS)
- Chọn thời hạn đăng ký (1-10 năm) và auto-renew
- Route 53 tự động tạo Public Hosted Zone cho domain
| TLD | Giá/năm (tham khảo) | Privacy Protection |
|---|---|---|
| .com | $13.00 | Miễn phí |
| .net | $11.00 | Miễn phí |
| .org | $12.00 | Miễn phí |
| .io | $39.00 | Miễn phí |
| .dev | $14.00 | Miễn phí |
| .cloud | $11.00 | Miễn phí |
Transfer Domain về Route 53
Quy trình chuyển domain từ registrar khác (GoDaddy, Namecheap, Google Domains...):
- Unlock domain tại registrar hiện tại (tắt Transfer Lock)
- Lấy Authorization Code (EPP code / transfer key)
- Tắt DNSSEC tại registrar cũ (nếu đang bật)
- Trong Route 53 Console → Transfer Domain → nhập domain và auth code
- Xác nhận email transfer (gửi đến registrant email)
- Chờ 5-7 ngày để transfer hoàn tất
Domain Lock & Protection
- Transfer Lock: Ngăn chặn transfer domain trái phép. Mặc định bật.
- Privacy Protection: Ẩn thông tin cá nhân trong WHOIS lookup. Miễn phí trên Route 53.
- Auto-Renew: Tự động gia hạn domain trước khi hết hạn. Nên bật.
- DNSSEC: Bảo vệ domain khỏi DNS spoofing (xem phần DNSSEC).
Alias Records vs CNAME
Đây là một trong những chủ đề quan trọng nhất khi làm việc với Route 53 và thường xuất hiện trong kỳ thi AWS. Alias là tính năng riêng của Route 53, không phải DNS record chuẩn.
| Tiêu chí | CNAME Record | Alias Record (Route 53) |
|---|---|---|
| Zone Apex (root domain) | ❌ Không hỗ trợ (example.com) |
✅ Hỗ trợ (example.com) |
| Target | Bất kỳ hostname nào | Chỉ AWS resource (ELB, CloudFront, S3...) |
| Chi phí query | Tính phí bình thường | Miễn phí (khi trỏ đến AWS resource) |
| TTL | Tự cấu hình | Tự động theo target resource (không thể set) |
| Record type | CNAME | A hoặc AAAA (trả về IP trực tiếp) |
| Health Check | Không tự động | Tự động evaluate health của target |
| DNS Standard | RFC chuẩn | Route 53 extension (không phải DNS chuẩn) |
Alias Target hỗ trợ
- EC2 DNS name — không thể Alias trực tiếp đến EC2 instance
- RDS endpoint — dùng CNAME thay thế
- Non-AWS resource — Alias chỉ dành cho AWS resource
Khi nào dùng gì?
- Trỏ zone apex (example.com) đến AWS resource
- Muốn miễn phí DNS query
- Target là ELB, CloudFront, S3, Beanstalk, API GW
- Muốn tự động health check evaluation
- Target là non-AWS resource
- Target là EC2 DNS name hoặc RDS endpoint
- Cần custom TTL
- Chỉ dùng cho subdomain (không phải zone apex)
Route 53 Resolver
Route 53 Resolver cho phép phân giải DNS giữa VPC và mạng on-premises (hoặc VPC khác) thông qua Inbound và Outbound Endpoints. Đây là thành phần quan trọng trong kiến trúc Hybrid DNS.
Mặc định trong VPC
Mỗi VPC có sẵn một DNS resolver tại địa chỉ VPC CIDR + 2 (ví dụ: VPC 10.0.0.0/16 → resolver tại 10.0.0.2). Resolver này tự động phân giải:
- Private Hosted Zone records
- EC2 private DNS names (ip-10-0-1-50.ec2.internal)
- Public DNS names (qua Internet)
Inbound Endpoint
Cho phép DNS resolver từ on-premises forward query đến Route 53 Resolver trong VPC. Use case: on-premises server cần phân giải private hosted zone trong AWS.
Outbound Endpoint
Cho phép Route 53 Resolver forward query đến DNS server on-premises. Sử dụng Resolver Rules để xác định domain nào cần forward.
Resolver Rules
Resolver Rules xác định domain nào cần forward đến DNS server nào:
| Rule Type | Mô tả | Ví dụ |
|---|---|---|
| Forward | Forward query đến DNS server chỉ định | corp.internal → 10.1.1.53 |
| System | Dùng Route 53 Resolver mặc định | amazonaws.com → Route 53 |
| Recursive | Forward đến Internet DNS (mặc định) | Tất cả domain khác |
DNSSEC (DNS Security Extensions)
DNSSEC bảo vệ DNS khỏi tấn công man-in-the-middle và DNS spoofing/cache poisoning bằng cách ký số (digitally sign) các DNS record. Client có thể xác minh rằng DNS response đến từ authoritative source và chưa bị thay đổi.
Cách DNSSEC hoạt động
- Zone Signing: Route 53 ký tất cả record trong hosted zone bằng private key (KSK - Key Signing Key)
- DNSKEY record: Public key được publish dưới dạng DNSKEY record
- DS record: Hash của public key được đăng ký tại parent zone (TLD)
- RRSIG record: Chữ ký số cho mỗi record set
- Validation: DNS resolver kiểm tra chữ ký → xác nhận tính toàn vẹn
Bật DNSSEC trên Route 53
# Bước 1: Tạo KSK (Key Signing Key) trong AWS KMS # - KMS key phải ở us-east-1 # - Key type: Asymmetric, ECC_NIST_P256 # - Key usage: Sign and verify # Bước 2: Enable DNSSEC signing cho hosted zone aws route53 enable-hosted-zone-dnssec \ --hosted-zone-id Z1234567890 # Bước 3: Tạo DS record tại parent zone (TLD registrar) # Route 53 cung cấp DS record value → nhập vào registrar # Bước 4: Thiết lập CloudWatch Alarm cho DNSSECInternalFailure # và DNSSECKeySigningKeysNeedingAction
- KMS key cho DNSSEC phải ở us-east-1
- Nên thiết lập CloudWatch Alarm để giám sát DNSSEC health
- Khi tắt DNSSEC, phải xóa DS record tại registrar trước
- Route 53 hỗ trợ DNSSEC cho public hosted zone (không hỗ trợ private)
Traffic Flow
Route 53 Traffic Flow là visual editor cho phép tạo các routing policy phức tạp bằng giao diện kéo-thả. Thay vì tạo từng record riêng lẻ, bạn thiết kế Traffic Policy dưới dạng decision tree.
Thành phần Traffic Flow
Chi phí Traffic Flow
| Hạng mục | Giá | Ghi chú |
|---|---|---|
| Traffic Policy | Miễn phí | Tạo và lưu trữ policy miễn phí |
| Policy Record | $50/policy record/tháng | Mỗi lần áp dụng policy vào hosted zone |
Các lỗi thường gặp & Best Practices
Lỗi thường gặp
1. DNS không phân giải sau khi tạo Hosted Zone
2. CNAME cho zone apex không hoạt động
3. Health check luôn unhealthy
- Security Group / NACL chặn traffic từ Route 53 health checkers
- Endpoint trả về HTTP status code khác 2xx hoặc 3xx
- String matching không tìm thấy chuỗi trong 5120 bytes đầu tiên
- Endpoint là private IP (health checker không thể truy cập)
4. DNS propagation chậm
5. Private Hosted Zone không phân giải
- VPC đã enable
enableDnsHostnames = true? - VPC đã enable
enableDnsSupport = true? - Private Hosted Zone đã associate với VPC?
- EC2 instance có dùng VPC DNS resolver (CIDR+2)?
Best Practices
Giới hạn (Quotas) quan trọng
| Resource | Default Limit | Có thể tăng? |
|---|---|---|
| Hosted zones / account | 500 | Có |
| Records / hosted zone | 10,000 | Có |
| Health checks / account | 200 | Có |
| Reusable delegation sets | 100 | Không |
| Traffic policies / account | 50 | Có |
| Policy records / traffic policy | 5 | Có |
| VPCs / private hosted zone | 300 | Có |
AWS CLI Cheat Sheet
Tổng hợp các lệnh AWS CLI thường dùng nhất cho Route 53. Tất cả lệnh đều sử dụng aws route53 hoặc aws route53domains.
Hosted Zone
# Liệt kê tất cả hosted zones aws route53 list-hosted-zones # Tạo public hosted zone aws route53 create-hosted-zone \ --name example.com \ --caller-reference "unique-string-$(date +%s)" # Tạo private hosted zone aws route53 create-hosted-zone \ --name internal.corp \ --caller-reference "unique-string-$(date +%s)" \ --vpc VPCRegion=ap-southeast-1,VPCId=vpc-0123456789abcdef0 \ --hosted-zone-config PrivateZone=true # Xem chi tiết hosted zone aws route53 get-hosted-zone --id Z1234567890 # Xóa hosted zone (phải xóa hết record trước) aws route53 delete-hosted-zone --id Z1234567890
DNS Records
# Liệt kê records trong hosted zone aws route53 list-resource-record-sets \ --hosted-zone-id Z1234567890 # Tạo/Cập nhật A record aws route53 change-resource-record-sets \ --hosted-zone-id Z1234567890 \ --change-batch '{ "Changes": [{ "Action": "UPSERT", "ResourceRecordSet": { "Name": "app.example.com", "Type": "A", "TTL": 300, "ResourceRecords": [{"Value": "54.239.28.85"}] } }] }' # Tạo Alias record trỏ đến ALB aws route53 change-resource-record-sets \ --hosted-zone-id Z1234567890 \ --change-batch '{ "Changes": [{ "Action": "UPSERT", "ResourceRecordSet": { "Name": "example.com", "Type": "A", "AliasTarget": { "HostedZoneId": "Z35SXDOTRQ7X7K", "DNSName": "my-alb-123456.us-east-1.elb.amazonaws.com", "EvaluateTargetHealth": true } } }] }' # Tạo Weighted routing record aws route53 change-resource-record-sets \ --hosted-zone-id Z1234567890 \ --change-batch '{ "Changes": [{ "Action": "UPSERT", "ResourceRecordSet": { "Name": "app.example.com", "Type": "A", "SetIdentifier": "us-east-1-v2", "Weight": 70, "TTL": 60, "ResourceRecords": [{"Value": "11.22.33.44"}] } }] }' # Xóa record aws route53 change-resource-record-sets \ --hosted-zone-id Z1234567890 \ --change-batch '{ "Changes": [{ "Action": "DELETE", "ResourceRecordSet": { "Name": "old.example.com", "Type": "A", "TTL": 300, "ResourceRecords": [{"Value": "1.2.3.4"}] } }] }'
Health Checks
# Liệt kê health checks aws route53 list-health-checks # Tạo HTTP health check aws route53 create-health-check \ --caller-reference "hc-$(date +%s)" \ --health-check-config '{ "Type": "HTTP", "FullyQualifiedDomainName": "app.example.com", "Port": 80, "ResourcePath": "/health", "RequestInterval": 30, "FailureThreshold": 3 }' # Xem trạng thái health check aws route53 get-health-check-status \ --health-check-id abcdef12-3456-7890 # Xóa health check aws route53 delete-health-check \ --health-check-id abcdef12-3456-7890
Domain Management
# Liệt kê domains đã đăng ký aws route53domains list-domains # Kiểm tra domain khả dụng aws route53domains check-domain-availability \ --domain-name example.com # Xem chi tiết domain aws route53domains get-domain-detail \ --domain-name example.com # Bật/tắt Transfer Lock aws route53domains enable-domain-transfer-lock \ --domain-name example.com aws route53domains disable-domain-transfer-lock \ --domain-name example.com # Bật auto-renew aws route53domains enable-domain-auto-renew \ --domain-name example.com
Resolver
# Tạo Resolver Inbound Endpoint aws route53resolver create-resolver-endpoint \ --creator-request-id "inbound-$(date +%s)" \ --name "inbound-endpoint" \ --security-group-ids sg-0123456789abcdef0 \ --direction INBOUND \ --ip-addresses SubnetId=subnet-aaa,Ip=10.0.1.10 \ SubnetId=subnet-bbb,Ip=10.0.2.10 # Tạo Resolver Rule (Forward) aws route53resolver create-resolver-rule \ --creator-request-id "rule-$(date +%s)" \ --name "forward-corp-internal" \ --rule-type FORWARD \ --domain-name "corp.internal" \ --resolver-endpoint-id rslvr-out-abcdef1234567890 \ --target-ips Ip=10.1.1.53,Port=53 # Liệt kê resolver endpoints aws route53resolver list-resolver-endpoints # Liệt kê resolver rules aws route53resolver list-resolver-rules
Kiểm tra DNS (Debug)
# Test DNS resolution bằng Route 53 test tool aws route53 test-dns-answer \ --hosted-zone-id Z1234567890 \ --record-name app.example.com \ --record-type A # Dùng dig để kiểm tra DNS dig app.example.com A dig app.example.com A +short dig @ns-123.awsdns-45.com app.example.com A # Kiểm tra NS record dig example.com NS +short # Kiểm tra DNSSEC dig example.com DNSKEY +dnssec dig example.com A +dnssec # Dùng nslookup nslookup app.example.com nslookup -type=MX example.com # Kiểm tra propagation # Dùng https://www.whatsmydns.net/ để check toàn cầu