Skip to main content

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.com trê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 đó

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 TypeMục đíchVí dụ
ATrỏ tên miền đến IPv4web.example.com1.2.3.4
AAAATrỏ tên miền đến IPv6web.example.com2001:db8::1
CNAMETạo bí danh cho tên miền khácwwwwebapp.azurewebsites.net
MXCấu hình mail server@mail.example.com
TXTXác thực domain (SPF, DKIM)@v=spf1 include:_spf.google.com
NSNameserver 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 DNSPrivate DNS
Phạm viInternet toàn cầuChỉ trong VNet
Truy cậpAi cũng truy cập đượcChỉ các VM trong VNet
Ví dụwww.example.comdatabase.internal.local
Use caseWebsite, API publicDatabase, 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:

  1. Link Private Zone với VNet
  2. Bật Enable auto registration
  3. Tạo VM mới tên web-server-01
  4. 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: