Chuyển đến nội dung chính

Azure Private DNS là gì?

Trước đây mình từng làm một bài lab về Azure Container App, trong đó có phần cấu hình Azure Private DNS. Thấy khá thú vị và hữu ích, nên mình quyết định tổng hợp lại và chia sẻ cùng mọi người.

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.4
Web 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;"
}

Tham khảo

DNS là gì? Nguyên tắc và cách cấu hình DNS trong hệ thống

What is Azure Private DNS? 

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.