Bài viết này do AI tạo ra, có thể mắc sai sót.
Mở bài
Video Every Networking Concept Explained In 20 Minutes giải thích networking theo một cách rất thực tế: đi theo hành trình phát triển của một website đặt vé du lịch giả định tên TravelBody.
- Ban đầu hệ thống chỉ có một server
- Sau đó dần mở rộng thành nhiều subnet, nhiều server, cloud VPC, container, Kubernetes
- Mỗi khái niệm xuất hiện vì hệ thống gặp một vấn đề thật
Cách kể này giúp người học hiểu networking không phải là một mớ thuật ngữ rời rạc mà là giải pháp cho các vấn đề cụ thể.
Video đang nói gì?
Video mô tả quá trình một ứng dụng web tăng trưởng từ đơn giản đến phức tạp:
Giai đoạn 1 - Server đơn:
- Cần IP address để định danh server
- Cần DNS để người dùng không phải nhớ số IP
- Cần port để phân biệt nhiều ứng dụng trên cùng server
Giai đoạn 2 - Bảo mật và phân tách:
- Cần network segmentation để tách database khỏi web server
- Cần subnet để chia mạng thành các vùng riêng
- Cần routing để các subnet giao tiếp với nhau
- Cần firewall để kiểm soát traffic giữa các vùng
- Cần NAT để private server truy cập internet
Giai đoạn 3 - Chuyển lên cloud:
- VPC thay thế mạng vật lý
- Security group và network ACL thay thế firewall vật lý
- Load balancer phân phối traffic đến nhiều server
- CDN đưa nội dung tĩnh đến gần người dùng
Giai đoạn 4 - Container và Kubernetes:
- Docker network cho phép container giao tiếp
- Kubernetes Pod là đơn vị chạy nhỏ nhất, có IP riêng nhưng không ổn định
- Kubernetes Service cung cấp IP và DNS name ổn định cho pod
- Kubernetes Ingress là cửa vào từ internet vào cluster
Bài học chính: Công cụ thay đổi, nguyên lý vẫn giữ nguyên. Dù chạy trên server vật lý, cloud, Docker hay Kubernetes, hệ thống vẫn cần định danh thiết bị, định tuyến traffic, chia tách vùng mạng, kiểm soát truy cập và cung cấp điểm truy cập ổn định.
Giải thích bản chất
IP address:
- Địa chỉ định danh thiết bị trên mạng
- Nếu internet giống hệ thống giao thư, IP là địa chỉ nhà
- Server của TravelBody cần một public IP để thiết bị khác trên internet gửi request đến
- Người dùng không cần nhớ IP vì đã có DNS
DNS:
- Biến tên miền dễ nhớ thành IP
- Khi người dùng gõ
travelbody.com, trình duyệt hỏi DNS để biết tên miền này trỏ tới IP nào
- DNS giống danh bạ trong điện thoại: bạn bấm tên người, điện thoại tự tìm số thật ở phía sau
Port:
- Giải quyết vấn đề một server chạy nhiều ứng dụng cùng lúc
- Website có thể nghe ở port 80 hoặc 443, MySQL ở port 3306, payment service ở port 9090
- IP đưa traffic đến đúng server, port đưa traffic đến đúng ứng dụng trong server đó
Network segmentation:
- Xuất hiện khi hệ thống cần an toàn hơn
- Không nên để website, database và payment service nằm chung một chỗ
- Nếu hacker chiếm được web server, họ không nên tự động chạm được database
- Vì vậy mạng được chia thành các vùng riêng
Subnet:
- Cách chia mạng thành các phần nhỏ hơn
- Ví dụ: public subnet chứa web server, application subnet chứa backend, database subnet chứa database
- Cách chia này giống bệnh viện có nhiều khoa khác nhau: sản khoa, phẫu thuật, hồi sức; mỗi khu có chức năng và mức bảo vệ riêng
Routing:
- Cơ chế đưa traffic đi đúng đường giữa các subnet hoặc giữa mạng nội bộ và internet
- Router nhìn vào bảng định tuyến để quyết định gói tin nên đi đâu
- Video ví routing như GPS cho dữ liệu mạng
Firewall:
- Kiểm soát traffic được phép đi qua
- Không phải subnet nào cũng được nói chuyện với subnet nào
- Web server có thể được phép gọi application server, application server được phép gọi database, nhưng internet không được gọi thẳng database
- Firewall bảo vệ bằng rule theo IP, port và hướng traffic
NAT:
- Cho phép máy trong private network truy cập internet mà không lộ trực tiếp private IP
- Khi backend cần gọi API bên ngoài hoặc tải bản cập nhật, NAT gateway đổi địa chỉ private thành public IP dùng chung rồi chuyển response ngược lại đúng máy
VPC:
- Mạng riêng ảo trên cloud
- Trên AWS, Azure hoặc Google Cloud, bạn không cắm router vật lý nữa, nhưng vẫn tạo được mạng riêng, subnet, route table, firewall rule, internet gateway, NAT gateway
- VPC chính là phiên bản cloud của mạng nội bộ có kiểm soát
Security group và network ACL:
- Các lớp bảo vệ trong cloud
- Security group thường gắn với instance/server và có tính stateful
- Network ACL thường gắn với subnet và hoạt động stateless, nghĩa là inbound và outbound phải khai báo rõ
Load balancer:
- Được dùng khi một server không đủ chịu tải
- Thay vì người dùng truy cập trực tiếp từng server, họ truy cập load balancer
- Load balancer phân phối request đến các server khỏe mạnh phía sau
- Nếu một server chết, nó ngừng gửi traffic đến server đó
Proxy và reverse proxy:
- Lớp trung gian
- Forward proxy đứng phía client, thay client đi ra internet
- Reverse proxy đứng phía server, nhận request từ internet rồi chuyển đến backend
- Nginx, HAProxy hoặc cloud load balancer thường đóng vai trò reverse proxy
CDN:
- Đưa nội dung tĩnh như ảnh, CSS, JavaScript đến các edge server gần người dùng
- Nếu server gốc ở Mỹ nhưng người dùng ở Việt Nam, CDN có thể phục vụ file từ Singapore hoặc Hong Kong, giảm độ trễ và giảm tải cho origin server
Container networking:
- Xuất hiện khi ứng dụng được đóng gói bằng Docker
- Mỗi container có môi trường riêng và có thể có IP riêng trong một network ảo
- Docker bridge network cho phép các container trên cùng host giao tiếp với nhau mà không cần lộ toàn bộ ra ngoài internet
Kubernetes Pod:
- Đơn vị chạy nhỏ nhất trong Kubernetes
- Một pod có thể chứa một hoặc vài container liên quan chặt chẽ với nhau
- Mỗi pod có IP riêng, các container trong cùng pod chia sẻ network namespace, nên có thể gọi nhau qua localhost
Pod IP:
- Không ổn định
- Kubernetes có thể xóa pod, tạo pod mới, di chuyển pod sang node khác khi deploy, scale hoặc khi pod lỗi
- Vì vậy không nên để service khác gọi trực tiếp vào IP của pod
Kubernetes Service:
- Giải quyết vấn đề pod thay đổi IP
- Service cung cấp một IP và DNS name ổn định
- Website pod chỉ cần gọi
database-service, còn Kubernetes tự chuyển traffic đến pod database khỏe mạnh phía sau
- Video ví service như số điện thoại của một phòng ban: người trực có thể đổi, nhưng số phòng ban vẫn giữ nguyên
Kubernetes Ingress:
- Cửa vào cho traffic từ ngoài internet vào cluster
- Ingress đọc rule theo domain hoặc path, rồi chuyển request đến đúng service bên trong
- Ví dụ:
travelbody.com vào website service, /api/booking vào booking service, /api/payment vào payment service
Sơ đồ minh hoạ

Sơ đồ khái quát: người dùng truy cập qua DNS, vào load balancer hoặc ingress, sau đó traffic được route đến web service, application service và database trong các subnet hoặc service nội bộ được bảo vệ.
Áp dụng thực tế
Với website nhỏ:
- Cần hiểu IP, domain, DNS, port 80/443 và firewall cơ bản
- Đây là lớp nền khi deploy một website trên VPS hoặc server riêng
Với website có database:
- Nên tách web server và database
- Database không nên public ra internet
- Chỉ application server được phép gọi database qua port cần thiết
Với hệ thống cloud:
- Nên thiết kế VPC gồm public subnet và private subnet
- Public subnet chứa load balancer hoặc web gateway
- Private subnet chứa backend và database
- NAT gateway cho phép private server đi ra internet khi cần, nhưng internet không gọi ngược trực tiếp vào được
Với hệ thống nhiều service:
- Dùng reverse proxy hoặc API gateway để gom entrypoint
- Route request theo domain/path
- Terminate TLS và áp dụng rate limit, logging, auth
Với Docker:
- Không nên expose mọi container ra host
- Đặt các container cùng nhóm trong Docker network
- Chỉ expose cổng cần public, ví dụ reverse proxy public port 80/443 còn database chỉ nằm trong internal network
Với Kubernetes:
- Không gọi pod bằng IP trực tiếp
- Dùng Service để có tên ổn định
- Dùng Ingress để expose HTTP/HTTPS ra ngoài
- Dùng NetworkPolicy nếu cần giới hạn service nào được nói chuyện với service nào
Khi troubleshoot:
- DNS có resolve đúng không?
- IP có reachable không?
- Port có mở không?
- Route có đúng không?
- Firewall/security group có chặn không?
- Load balancer health check có pass không?
- Service trong Kubernetes có endpoint không?
- Pod có healthy không?
Kết luận
Điểm hay của video là nó không bắt người xem học thuộc khái niệm. Nó cho thấy networking sinh ra từ nhu cầu thật của hệ thống:
- Khi cần tìm server → IP và DNS
- Khi nhiều ứng dụng chạy chung server → port
- Khi cần bảo mật → subnet, routing và firewall
- Khi chuyển lên cloud → VPC, security group, NAT gateway
- Khi dùng container và Kubernetes → pod, service và ingress
Bài học quan trọng nhất: Công nghệ thay đổi, nguyên lý vẫn giữ nguyên. Server vật lý, cloud instance, Docker container hay Kubernetes pod đều cần định danh, định tuyến, phân quyền truy cập và cơ chế ổn định để nhận traffic. Nắm chắc các nền tảng này sẽ giúp lập trình viên, DevOps và cloud engineer triển khai, mở rộng và debug hệ thống tốt hơn.
Nguồn tham khảo
Xem video gốc