Bài 07 · Capstone — Dự án cuối

Triển khai hệ thống doanh nghiệp hoàn chỉnh

Gắn tất cả Bài 01–06 thành 1 hệ thống production cho doanh nghiệp vừa & lớn: cụm Hyper-V chạy workload thật — Windows + Linux, dịch vụ public (DMZ) & internal — phân vùng mạng, sizing, runbook & go-live.

Về trang tổng Hyper-V

Kiến trúc tổng thể doanh nghiệp

Nền tảng là cụm Hyper-V HA (Bài 02) + lưu trữ chia sẻ (Bài 03). Bên trên là các tầng dịch vụ tách biệt bằng VLAN: tầng Edge/DMZ phơi ra Internet, tầng App & Data chỉ nội bộ, và mạng Management/Storage riêng.

flowchart TB NET(["🌐 Internet"]) --> FW["🛡️ Firewall / Perimeter
(FortiGate / pfSense)"] FW --> DMZ subgraph CLUSTER["⚙️ Cụm Hyper-V HA (H-NODE01 + H-NODE02 + ...)"] subgraph DMZ["🔶 DMZ · VLAN 40 (public)"] RP["RPROXY01
NGINX reverse proxy"] WEBP["WEB-PUB
website công ty"] end subgraph APP["🟦 App · VLAN 20 (internal)"] APPS["APP01 / WEB01
Win .NET · Linux"] RDS["RDS01
Remote Desktop"] end subgraph DATA["🟪 Data · VLAN 20 (internal)"] DC["H-DC/H-DC02
AD·DNS·DHCP"] SQLDB["SQL01 · PG01
CSDL"] FSV["FS01
File/DFS"] end end RP --> APPS APPS --> SQLDB APPS --> DC MGMT["🖥️ WAC · SCVMM · Backup · Monitoring
VLAN 10 Management"] -. quản lý .-> CLUSTER style DMZ fill:#7c2d12,color:#fff style APP fill:#1e3a8a,color:#fff style DATA fill:#581c87,color:#fff style MGMT fill:#0e7490,color:#fff

Thiết kế mạng & phân vùng VLAN

Tách lưu lượng bằng VLAN để cô lập tầng — DMZ không nói chuyện trực tiếp với Data, public không chạm host. Sơ đồ IP mẫu doanh nghiệp:

VLANSubnet (mẫu)Mục đíchPhơi Internet?
10 · Management10.100.10.0/24Host, WAC, SCVMM, iDRAC/iLO, backupKhông
20 · Server-Internal10.100.20.0/24AD/DNS, SQL, App, File serverKhông
30 · Client10.100.30.0/24Máy trạm người dùngKhông
40 · DMZ10.100.40.0/24Reverse proxy, web public, mail GWQua firewall
50 · Storage (iSCSI)10.100.50.0/24Lưu lượng SAN/S2DKhông
60 · Live Migration10.100.60.0/24Di chuyển VM giữa nodeKhông
# Gán VLAN cho card mạng của VM (VLAN access mode) Set-VMNetworkAdapterVlan -VMName WEB01 -Access -VlanId 20 Set-VMNetworkAdapterVlan -VMName RPROXY01 -Access -VlanId 40

Cách GUI: Hyper-V Manager → VM Settings → Network Adapter → tick "Enable virtual LAN identification" → nhập VLAN ID (20 cho server, 40 cho DMZ).

LAB demo dùng 1 dải 10.100.100.0/24 cho gọn; production nên tách VLAN như bảng trên. Switch vật lý phải cấu hình trunk các VLAN xuống cổng host.

Danh mục máy ảo (Windows + Linux)

VMOSVai tròVLANPublic?
H-DC / H-DC02Windows ServerAD DS · DNS · DHCP (2 bản dự phòng)20Không
FS01Windows ServerFile Server · DFS · quyền NTFS20Không
SQL01Windows ServerSQL Server (CSDL nội bộ)20Không
PG01Linux (Ubuntu)PostgreSQL (CSDL app)20Không
APP01Win / LinuxApp server (.NET / Node / Java)20Không
RDS01Windows ServerRemote Desktop / VDI nhân viên20Không
DOCKER01LinuxDocker host (microservices)20Không
RPROXY01Linux (NGINX)Reverse proxy / TLS / WAF40 DMZCó (443)
WEB-PUBLinux / WinWebsite công ty (sau proxy)40 DMZGián tiếp
MAILGWLinuxMail relay / SMTP gateway40 DMZCó (25/465)
MON01LinuxZabbix / Grafana / Prometheus10Không
BACKUP01WindowsVeeam / Windows Server Backup10Không

Tất cả VM trên đều là HA (nằm trên CSV của cụm) — 1 host chết, chúng tự failover. H-DC/H-DC02 đặt anti-affinity để luôn ở 2 node khác nhau (xem Bài 06).

Sizing phần cứng (vừa & lớn)

Hạng mụcDoanh nghiệp vừa (~50–150 user)Doanh nghiệp lớn (300–1000+ user)
Số host2–3 node4–8+ node (có thể Cluster Sets)
CPU / host2× 16–24 core2× 32–64 core
RAM / host256–512 GB512 GB – 1 TB+
Lưu trữS2D/SAN 10–20 TB (SSD)SAN/S2D NVMe 50–100 TB+ tiered
Mạng10 GbE (tách VLAN)25/100 GbE + RDMA (SET)
Quản lýWAC (miễn phí)WAC + SCVMM + Azure Arc
DRHyper-V Replica sang site 2Storage Replica + site DR + ASR

Chạy máy ảo Linux trên Hyper-V

  • Dùng Gen2 cho distro đời mới (Ubuntu, RHEL/Rocky, Debian, SUSE) — UEFI, boot nhanh.
  • Secure Boot: phải đổi template sang Microsoft UEFI Certificate Authority (không phải template Windows) thì Linux mới boot.
  • Integration Services (LIS) đã tích hợp sẵn trong kernel Linux hiện đại — không cần cài thêm.
  • Cân nhắc tắt Dynamic Memory cho DB Linux (một số workload không hỗ trợ tốt) — đặt RAM tĩnh.
# Tạo VM Ubuntu Gen2, Secure Boot dùng CA của Microsoft cho Linux New-VM -Name WEB01 -Generation 2 -MemoryStartupBytes 2GB ` -NewVHDPath "C:\ClusterStorage\Volume1\WEB01\disk.vhdx" -NewVHDSizeBytes 40GB -SwitchName "vSwitch-LAN" Set-VMFirmware -VMName WEB01 -SecureBootTemplate MicrosoftUEFICertificateAuthority Add-VMDvdDrive -VMName WEB01 -Path "C:\ISO\ubuntu-24.04.iso" Set-VMNetworkAdapterVlan -VMName WEB01 -Access -VlanId 20

Cách GUI: Hyper-V Manager → New → Virtual Machine → Generation 2 → VHDX trên C:\ClusterStorage\Volume1 → chọn vSwitch. QUAN TRỌNG: VM Settings → Security → Secure Boot → Template: "Microsoft UEFI Certificate Authority" (nếu không Linux không boot). Gắn ISO ở SCSI Controller → DVD.

Phơi dịch vụ ra Internet an toàn

Nguyên tắc vàng: không bao giờ phơi VM nội bộ hay host trực tiếp. Mọi truy cập public đi qua chuỗi: Firewall → Reverse Proxy (DMZ) → dịch vụ nội bộ.

# Luồng public (ví dụ website https://app.congty.com) Internet → Firewall NAT 443 → RPROXY01 (DMZ, VLAN40) → WEB01 (Internal, VLAN20)
  • Firewall port-forward/NAT 443 → chỉ tới IP reverse proxy trong DMZ.
  • Reverse proxy (NGINX/IIS ARR) kết thúc TLS + bật WAF + rate-limit, rồi proxy nội bộ.
  • Firewall chặn DMZ khởi tạo kết nối vào VLAN Data (chỉ cho cổng cần thiết).
  • Chứng chỉ TLS (Let's Encrypt / CA nội bộ), HSTS, chỉ TLS 1.2+.

Firewall vành đai có thể chạy ngay trên cụm — xem Bài 08 · Phụ lục: FortiGate-VM trên Hyper-V (VIP NAT 443, UTM, FGCP HA).

Runbook triển khai end-to-end

Giai đoạnViệcTham chiếu
1. Nền tảngCài WS trên host, BIOS ảo hoá, role Hyper-VBài 01
2. Mạng & VLANvSwitch SET, trunk VLAN, tách Mgmt/Storage/LM#network
3. Cụm + StorageFailover Cluster, CSV (S2D/SAN), witnessBài 02 · 03
4. Lõi dịch vụH-DC/H-DC02 (AD/DNS/DHCP), File, CSDL#vm-inventory
5. WorkloadApp, RDS, Docker, VM Linux#linux
6. DMZ & PublicReverse proxy, firewall NAT, TLS#public
7. Bảo mậtHardening host/VM, RBAC, vTPM, BitLockerBài 04
8. Backup & DRReplica, 3-2-1, Storage Replica site 2Bài 05
9. Giám sátMonitoring, alert, CAU patchingBài 05
10. Go-liveTest HA, DR drill, bàn giao#golive

🧪 LAB Capstone — Đưa 1 web app Linux ra Internet

Mục tiêu: trên cụm, dựng WEB01 (Ubuntu, nội bộ VLAN20) chạy NGINX, và RPROXY01 (DMZ VLAN40) reverse proxy; firewall NAT 443 → người ngoài truy cập được, host & WEB01 không lộ.

1

Tạo 2 VM Linux HA trên CSV + gán VLAN

# WEB01 nội bộ (VLAN20), RPROXY01 ở DMZ (VLAN40) — Gen2 Secure Boot CA Microsoft foreach ($n in "WEB01","RPROXY01") { New-VM -Name $n -Generation 2 -MemoryStartupBytes 2GB ` -NewVHDPath "C:\ClusterStorage\Volume1\$n\disk.vhdx" -NewVHDSizeBytes 40GB -SwitchName "vSwitch-LAN" Set-VMFirmware -VMName $n -SecureBootTemplate MicrosoftUEFICertificateAuthority Add-ClusterVirtualMachineRole -VirtualMachine $n } Set-VMNetworkAdapterVlan -VMName WEB01 -Access -VlanId 20 Set-VMNetworkAdapterVlan -VMName RPROXY01 -Access -VlanId 40

Cách GUI: Hyper-V Manager → New VM (Gen2) cho WEB01 & RPROXY01 trên CSV → Security → Secure Boot template "Microsoft UEFI Certificate Authority" → Network Adapter → VLAN ID 20 (WEB01) / 40 (RPROXY01). Failover Cluster Manager → Roles → Configure Role → Virtual Machine để bật HA.

2

Trong WEB01 (Ubuntu): cài web nội bộ

# SSH vào WEB01 (10.100.20.10) sudo apt update && sudo apt install -y nginx echo "HoaTranLab Capstone OK" | sudo tee /var/www/html/index.html
3

Trong RPROXY01 (DMZ): reverse proxy + TLS

# /etc/nginx/sites-available/app.conf server { listen 443 ssl; server_name app.congty.com; ssl_certificate /etc/ssl/app.crt; ssl_certificate_key /etc/ssl/app.key; location / { proxy_pass http://10.100.20.10; } }
4

Firewall: NAT 443 → chỉ tới RPROXY01

Trên FortiGate/pfSense: tạo Virtual IP / port-forward WAN:443 → 10.100.40.10:443; chặn DMZ→VLAN20 trừ cổng 80 tới WEB01.

Kiểm chứng: từ ngoài Internet mở https://app.congty.com → thấy trang "Capstone OK" (phục vụ bởi WEB01 qua RPROXY01). Tắt 1 host → web vẫn chạy (HA). Host & WEB01 không có IP public.

Checklist Go-live doanh nghiệp

Hạ tầng & HA

  • Validate cluster PASS · witness OK
  • Test failover: rút điện 1 host, VM tự lên
  • Live Migration 0 downtime cho mọi VM
  • CAU patching chạy thử 1 vòng

Bảo mật & DR

  • Hardening host/VM, RBAC, không Domain Admin
  • Backup 3-2-1 + test restore thật
  • Replica/Storage Replica sang site 2 · DR drill
  • Public chỉ qua DMZ + WAF + TLS

Vận hành

  • Monitoring + alert (host, VM, dịch vụ)
  • DC/CSDL có 2 bản · anti-affinity
  • Tài liệu IP, VLAN, sơ đồ, runbook bàn giao

Hoàn thành

Bạn đã có 1 hệ thống ảo hoá doanh nghiệp HA, bảo mật, có DR & giám sát, chạy đủ Windows + Linux, dịch vụ public & internal — sẵn sàng production. 🎉