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

Giới thiệu về Azure Virtual Network (VNet)

Trong bài viết này, chúng ta sẽ tìm hiểu về Azure Virtual Network (VNet) và làm 1 ví dụ nhỏ sử dụng VNet để các Virtual Machine giao tiếp với nhau

Azure Virtual Network (VNet) là gì?

Azure Virtual Network (VNet) là thành phần cốt lõi, giúp bạn xây dựng mạng riêng của mình ngay trong đám mây Azure. Nó tương tự như một mạng nội bộ (LAN) trong data center của bạn, nhưng mang lại những lợi ích vượt trội từ nền tảng Azure như:

  • Khả năng mở rộng dễ dàng (scalability)
  • Tính sẵn sàng cao (availability)
  • Mức độ cách ly và bảo mật tối ưu (isolation)

Nói cách khác, VNet tạo điều kiện cho các tài nguyên Azure (như máy ảo, App Service, Azure SQL, v.v...) có thể giao tiếp an toàn với nhau, với internet, hoặc với hệ thống on-premises thông qua VPN hoặc Azure ExpressRoute.

Những tình huống sử dụng phổ biến với VNet:

  • Giao tiếp giữa các tài nguyên Azure (VM, App Service, Function, Database...)
  • Kết nối từ Azure tới internet
  • Kết nối từ Azure về hạ tầng on-premises
  • Filter và routing network traffic
  • Tích hợp với các dịch vụ Azure khác một cách an toàn

Ví dụ

Trong ví dụ này, chúng ta sẽ tạo 1 Virtual Network (vnet1) làm cầu nối để kết nối 2 máy ảo vm1 và vm2 lại với nhau


Tạo 1 Virtual network

Sign in vào Azure Portal (https://portal.azure.com)

Tìm kiếm Virtual networks -> Create

Điền các thông tin cơ bản sau:

  • Resource group: rg_<your-resource-group-name>
  • Instance details:
    • Name: vnet1
    • Region: East US


Ở tab IP addresses, bạn delete address space có sẵn và bấm vào link Add IPv4 address space, điền thông tin sau:

  • Address space type : Chọn IPv4
  • Starting address : 10.0.0.0
  • Address space size : /16

Giải thích về địa chỉ 10.0.0.0/16

Một địa chỉ IPv4 gồm 4 nhóm số (octets), mỗi nhóm là 8 bit.
Ví dụ: 
10.0.0.0 = 00001010.00000000.00000000.00000000 (32 bit)

Cấu trúc CIDR (Classless Inter-Domain Routing)

Address space size /16:
  • 16 bit đầu tiên là phần mạng (network)
  • 16 bit sau là phần máy (host)
→ Vậy:
  • 10.0.0.0/16 cố định 2 nhóm đầu là 10.0,
  • 2 nhóm sau (0.0 đến 255.255) là phần thay đổi → dùng để đánh số IP cho máy.
Chúng ta có bảng minh họa sau cho dễ nhớ (tí nữa bạn cần để setup subnet)
CIDR Dải IP tương ứng Số IP khả dụng
/8 10.0.0.0 – 10.255.255.255 ~16 triệu
/16 10.0.0.0 – 10.0.255.255 65,536
/24 10.0.1.0 – 10.0.1.255 256

Add a subnet

Bạn điền thông tin sau:
  • IP address space : 10.0.0.0/16
  • Subnet templete : chọn default
  • Name : để default
  • Subnet Address range: 10.0.1.0/24
  • NAT gateway: để mặc định
  • Service gateway: để mặc định
Bấm Save



Bấm Review + create -> Create để hoàn thành.

Tạo 2 virtual machine

Phần setup 2 Virtual machine này khá giống, nên mình chỉ hướng dẫn tạo Virtual machine 1
Mở Virtual machines -> +Create a Virtual machine, thêm thông tin sau vào Basics tab
  • Resource group : Chọn rg_eastus_<your-resource-group-name>
  • Instance details :
  • Virtual Machine Name : gõ vm1 (virtual machine name)
  • Region : chọn (US) East US
  • Availability Options : để mặc định
  • Image : chọn Windows Server 2022 Datacenter : Azure Edition - Gen2 
  • Azure Spot instance : để mặc định.
  • Size : Click all sizes sau đó chọn B2s
Administrator Account :
  • Username : Enter a username
  • Password : Enter a password
  • Confirm password : Re-enter password
Inbound Port rules : 
  • Public inbound ports : Select Allow selected ports
  • Select inbound ports : Select HTTP, SSH and RDP
Tab Disk, chọn OS disk type: chọn Standard SSD
Ở tab Networking, Virtual network, chọn vnet1

Tab Monitoring, Boot diagnostic: chọn Disable

Cuối cùng, bạn bấm Review + Create -> Create để hoàn thành.

Tương tự với Virtual machine 2, với name = vm2

Test connection

Chúng ta sẽ sử dụng ICMP connection để kết nối Virtual machine với nhau.

ICMP là gì?

ICMP (Internet Control Message Protocol) là một giao thức mạng nằm trong tầng Internet của mô hình TCP/IP.
ICMP không dùng để truyền dữ liệu, mà dùng để:
  • Kiểm tra kết nối mạng
  • Báo lỗi khi có sự cố trong truyền thông giữa hai thiết bị mạng
Khi bạn gõ
ping 10.0.1.4
Là bạn đang gửi ICMP Echo Request, và máy bên kia sẽ trả về ICMP Echo Reply nếu nhận được.

Tạo connection giữa VM1 và VM2

Cần thực hiện 2 bước:
  • Azure-level (Network Security Group – NSG) 
  • OS-level (trong chính Windows của VM2) ➜ Đó chính là phần “Enable ICMP rules trong Windows Defender Firewall”

Trên Azure, Network Security Group (NSG) giống như firewall bảo vệ VM. Mặc định, ICMP bị chặn để tránh lạm dụng (ví dụ như tấn công DDoS bằng ping). Dù 2 VM trong cùng VNet có thể kết nối qua TCP/UDP, nhưng ping vẫn bị chặn nếu không mở ICMP.

Trên vm2 -> chọn Networking -> Network settings 


Click chọn Inbound port rule và điền thông tin như sau:
  • Protocol : chọn ICMP
  • Name : gõ ICMP


Sau đó bấm Add

Để thực hiện remote Windows, bạn cần file RDP. Bạn vào từng Virtual machine, chọn Connect -> Connect -> Native RDP -> Download RDP File (nếu bạn đang xài Windows :)

Trên Windows vm2, bạn cần thực hiện enable ICMP rules để vm1 có thể ping tới vm2.

Remote vào vm2 với username/password đã setup ở trên, search với từ khóa: Windows Defender Firewall with Advanced Security

Chọn Inbound Rules, enable 2 ICMP rules



Bạn mở vm1, mở Windows Powershell, thực hiện ping
ping vm2
Quan sát kết quả trả về. Nếu bạn thấy phản hồi kiểu Reply from 10.0.1.5: bytes=32 time=1ms, là đã thành công 100%.

Hi vọng với demo nhỏ này sẽ giúp bạn hiểu thêm về VNet.

Chúc các bạn thành công

Nhatkyhoctap blog



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.