Azure DNS
1. DNS Cơ bản và Azure DNS
1.1. DNS là gì?
DNS (Domain Name System) là hệ thống phân giải tên miền, hoạt động như "danh bạ điện thoại" của Internet:
- Chức năng chính: Chuyển đổi tên miền dễ nhớ (VD:
google.com) thành địa chỉ IP (VD:142.250.1.1) - Tại sao cần DNS: Con người dễ nhớ tên, máy tính cần địa chỉ IP để kết nối
- Cách hoạt động:
- Bạn gõ
example.comtrên trình duyệt - DNS Server tìm kiếm và trả về IP
1.2.3.4 - Trình duyệt kết nối đến IP đó
- Bạn gõ
1.2. Azure DNS là gì?
Azure DNS là dịch vụ hosting và quản lý DNS records trên nền tảng Microsoft Azure.
Những điều cần biết:
- ✅ Có thể làm: Quản lý DNS records (A, AAAA, CNAME, MX, TXT...)
- ✅ Có thể làm: Tích hợp với các dịch vụ Azure khác
- ❌ Không làm: Đăng ký/mua tên miền mới (phải mua ở GoDaddy, Namecheap, Google Domains...)
Ưu điểm:
- SLA 100% uptime
- Hiệu suất cao với mạng lưới toàn cầu của Microsoft
- Quản lý tập trung với Azure Portal/CLI/PowerShell
- Bảo mật với Azure RBAC
2. Azure Public DNS Zones
2.1. Khái niệm
Public DNS Zone dùng để quản lý DNS records cho tên miền công khai trên Internet.
2.2. Khi nào sử dụng?
- Bạn có website/API cần truy cập từ Internet
- Bạn muốn tạo subdomain cho các dịch vụ khác nhau
- Bạn cần email server với MX records
2.3. Các loại Record thường dùng
| Record Type | Mục đích | Ví dụ |
|---|---|---|
| A | Trỏ tên miền đến IPv4 | web.example.com → 1.2.3.4 |
| AAAA | Trỏ tên miền đến IPv6 | web.example.com → 2001:db8::1 |
| CNAME | Tạo bí danh cho tên miền khác | www → webapp.azurewebsites.net |
| MX | Cấu hình mail server | @ → mail.example.com |
| TXT | Xác thực domain (SPF, DKIM) | @ → v=spf1 include:_spf.google.com |
| NS | Nameserver records | @ → ns1-01.azure-dns.com |
2.4. Pricing
- Hosted Zone: $0.50/zone/tháng
- DNS Queries: $0.40/triệu queries đầu tiên
3. Azure Private DNS Zones
3.1. Khái niệm
Private DNS Zone dùng để phân giải tên miền nội bộ trong Azure Virtual Network (VNet).
3.2. Sự khác biệt với Public DNS
| Public DNS | Private DNS | |
|---|---|---|
| Phạm vi | Internet toàn cầu | Chỉ trong VNet |
| Truy cập | Ai cũng truy cập được | Chỉ các VM trong VNet |
| Ví dụ | www.example.com | database.internal.local |
| Use case | Website, API public | Database, Internal services |
3.3. Tại sao cần Private DNS?
Vấn đề:
- VM Database có IP: 10.0.1.5
- VM Web cần kết nối DB, phải nhớ IP 10.0.1.5
- Khi đổi IP DB, phải sửa code lại
Giải pháp với Private DNS:
- Tạo Private Zone: internal.local
- Tạo A Record: db.internal.local → 10.0.1.5
- VM Web connect đến: db.internal.local
- Đổi IP DB? Chỉ cần sửa DNS record, không cần sửa code
3.4. Tính năng Auto-registration
Một tính năng cực kỳ tiện lợi giúp tự động tạo DNS records khi tạo VM.
Cách hoạt động:
- Link Private Zone với VNet
- Bật Enable auto registration
- Tạo VM mới tên
web-server-01 - Azure tự động tạo record:
web-server-01.internal.local→ IP của VM
Lợi ích:
- ✅ Không cần tạo DNS record thủ công
- ✅ VM có thể ping nhau bằng tên ngay lập tức
- ✅ Khi xóa VM, record cũng tự động bị xóa
- ✅ Giảm thiểu lỗi cấu hình
4. Azure DNS Private Resolver
4.1. Bài toán Hybrid Cloud
Khi doanh nghiệp vừa có hạ tầng On-premise, vừa có Azure:
Tình huống 1: Máy chủ On-premise cần truy cập Azure
File Server (On-prem) → Cần kết nối đến → db.azure.internal (Azure VM)
Vấn đề: DNS Server On-prem không biết "azure.internal" là gì
Tình huống 2: Azure VM cần truy cập On-premise
Azure VM → Cần kết nối đến → fileserver.company.local (On-prem)
Vấn đề: Azure DNS không biết "company.local" là gì
4.2. DNS Private Resolver là gì?
Là dịch vụ "cầu nối" DNS giữa Azure và On-premise network.
Cơ chế hoạt động:
4.3. Hai thành phần chính
4.3.1. Inbound Endpoint
- Nhận DNS queries từ On-premise
- On-premise DNS server forward queries về endpoint này
- Resolver trả lời về các tên miền Azure
Cấu hình On-premise DNS:
Conditional Forwarder:
Zone: azure.internal
Forward to: 10.0.250.4 (Inbound Endpoint IP)
4.3.2. Outbound Endpoint + Forwarding Rules
- Nhận DNS queries từ Azure VNet
- Forward sang DNS server On-premise theo rules
- Trả lời về các tên miền On-premise
Ví dụ Forwarding Rule:
Rule Name: Forward-to-OnPrem
Domain: company.local
Target DNS Server: 192.168.1.10 (On-prem DNS)
4.4. Yêu cầu triển khai
- ✅ Phải có kết nối VPN hoặc ExpressRoute giữa Azure và On-premise
- ✅ Cần subnet riêng cho Private Resolver (tối thiểu /28)
- ✅ Network Security Groups phải allow DNS traffic (port 53)
- ✅ Route tables phải định tuyến đúng giữa hai bên
4.5. Lưu ý quan trọng
- Chi phí: Private Resolver tính phí theo giờ (~$0.36/giờ) + queries
- Subnet: Không được đặt VM hay resource khác vào subnet của Resolver
- Độ trễ: Queries qua Resolver sẽ chậm hơn local DNS một chút
- High Availability: Nên deploy ở nhiều Availability Zones
Tài liệu tham khảo: