Trước khi đi sâu vào Private DNS, chúng ta cần nắm rõ DNS là gì, và DNS đóng vai trò gì trong việc phân giải tên miền — từ đó mới thấy được vì sao Private DNS lại quan trọng trong môi trường Azure nội bộ (VNet).
DNS là gì?
DNS (Domain Name System) là hệ thống phân giải tên miền cho phép thiết lập tương ứng giữa địa chỉ IP và tên miền trên internet. Khi người dùng nhập địa chỉ trang web trên trình duyệt, DNS sẽ tìm địa chỉ IP của máy chủ chứa trang web và trả về kết quả hiển thị tương ứng của trang web cần tìm. Do đó, thay vì phải ghi nhớ địa chỉ IP phức tạp, người dùng có thể dễ dàng truy cập các trang web thông qua tên miền. Ngoài ra, DNS cũng giúp tăng tính linh hoạt và quản lý hiệu quả hơn cho hệ thống mạng, cung cấp tính bảo mật và tăng tốc độ truy cập internet.
Chức năng của DNS là gì?
DNS là hệ thống quản lý (Management System) và chuyển đổi tên miền thành địa chỉ IP tương ứng. Cụ thể, DNS thực hiện các nhiệm vụ sau:
- Chuyển đổi tên miền thành địa chỉ IP: DNS giúp chuyển đổi tên miền dễ đọc (ví dụ: www.example.com) thành địa chỉ IP (ví dụ: 192.168.1.1) để thiết bị có thể xác định được vị trí chính xác của máy chủ trên mạng.
- Quản lý các bản ghi DNS: DNS lưu trữ thông tin trong các bản ghi DNS, bao gồm các loại bản ghi như A (địa chỉ IPv4), AAAA (địa chỉ IPv6), CNAME (tên miền chấp nhận mệnh đề), MX (máy chủ thư điện tử) và nhiều loại khác.
- Phân giải ngược: DNS cũng có khả năng phân giải ngược, chuyển đổi địa chỉ IP thành tên miền. Tuy nhiên, chức năng này ít được sử dụng hơn so với chuyển đổi tên miền thành địa chỉ IP.
Azure Private DNS
Azure Private DNS giúp bạn quản lý và phân giải tên miền trong nội bộ Virtual Network một cách an toàn và ổn định, mà không cần tự cấu hình hệ thống DNS riêng. Với Private DNS Zones, bạn có thể sử dụng tên miền tùy chỉnh thay vì các tên miền mặc định do Azure cung cấp — điều này giúp bạn dễ dàng thiết kế kiến trúc mạng theo quy ước đặt tên riêng của tổ chức.
Private DNS hỗ trợ phân giải tên cho:
- Các máy ảo (VM) trong cùng VNet
- Các dịch vụ trong nhiều VNet được kết nối với nhau (qua peering)
Ví dụ
Tạo 1 Virtual Network (VNet) chứa 3 subnet, 1 app container ASP.NET Core, 1 SQL Server, 1 Application Gateway
Web Application chứa connection string để kết nối vào SQL Server. Trong Connection String chứa SQL Server address
Giả sử bạn đã setup các resource trên Azure Portal. Lúc này Private Endpoint cho SQL Server là 10.0.1.4
Domain Azure SQL nội bộ là:
mydb.privatelink.database.windows.net → 10.0.1.4Web App không phân giải được domain này, vì không có bản ghi DNS nội bộ.
Bạn buộc phải gán trực tiếp IP vào connection string:
"ConnectionStrings": {
"DefaultConnection": "Server=10.0.1.4;Database=MyDb;User ID=sa;Password=nhatkyhoctap;"
}IP nội bộ có thể thay đổi nếu bạn xóa và tạo lại Private Endpoint.
Private DNS
Bạn tạo Private DNS Zone:
privatelink.database.windows.net
Gắn zone vào VNet vnet-prod (VNet Link)
Azure tự động tạo bản ghi:
mydb.privatelink.database.windows.net → 10.0.1.4
Trong appsettings hoặc connection string
"ConnectionStrings": {
"DefaultConnection": "Server=mydb.database.windows.net;Database=MyDb;User ID=admin;Password=yourpass;"
}
Nhận xét
Đăng nhận xét