Kiến thức cần đọc trước buổi học AWS VPC
Đọc trước 6 chủ đề dưới đây (khoảng 45–60 phút) để theo kịp phần VPC tối nay. Mục tiêu: tự tính được một dải CIDR có bao nhiêu IP và tự chia được một VPC thành các subnet.
| # | Chủ đề | Vì sao cần cho bài VPC | Thời gian |
|---|---|---|---|
| 1 | Địa chỉ IPv4 và nhị phân | Nền tảng để hiểu CIDR | 10 phút |
| 2 | Public IP và Private IP | Phân biệt public subnet / private subnet | 5 phút |
| 3 | CIDR và subnet mask | Khai báo dải IP khi tạo VPC, subnet | 15 phút |
| 4 | Chia subnet | Thiết kế subnet theo AZ, public/private | 15 phút |
| 5 | Routing, gateway, NAT, port, stateful/stateless | Hiểu Route table, IGW, NAT GW, SG, NACL | 10 phút |
| 6 | Bài tập tự kiểm tra | Biết mình đã nắm chưa | 5 phút |
1. Địa chỉ IPv4
Một địa chỉ IPv4 dài 32 bit, viết thành 4 nhóm (octet) 8 bit, mỗi octet có giá trị 0–255. Ví dụ: 10.0.1.25.
10 .0 .1 .25
00001010 .00000000 .00000001 .00011001
Cần nhớ bảng giá trị của 8 bit trong một octet:
| Bit | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|
| Giá trị | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Ví dụ: 25 = 16 + 8 + 1 → 00011001.
Một địa chỉ IP gồm hai phần: phần mạng (network) cho biết thiết bị thuộc mạng nào, và phần host định danh từng máy trong mạng đó. CIDR (phần 3) chính là cách nói phần mạng dài bao nhiêu bit.
2. Public IP và Private IP
Public IP là địa chỉ duy nhất trên Internet, đi ra Internet được. Private IP chỉ dùng trong mạng nội bộ, không định tuyến được trên Internet. VPC luôn dùng dải private.
Ba dải private theo chuẩn RFC 1918:
| Dải | CIDR | Ghi chú |
|---|---|---|
| 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | Hay dùng nhất cho VPC |
| 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | Default VPC của AWS dùng 172.31.0.0/16 |
| 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | Thường gặp ở mạng gia đình |
Muốn máy có private IP đi ra Internet thì cần NAT (dịch địa chỉ private sang public). Đây là lý do có Internet Gateway và NAT Gateway trong bài học.
3. CIDR và subnet mask
CIDR viết dạng IP/n, trong đó n là số bit phần mạng (cố định), còn lại 32 − n bit là phần host (thay đổi được). Số IP trong dải = 2^(32 − n).
Ví dụ 10.0.0.0/16: 16 bit đầu cố định (10.0), 16 bit sau tự do → 2^16 = 65.536 IP, từ 10.0.0.0 đến 10.0.255.255.
| CIDR | Subnet mask | Số IP | Gặp ở đâu trong AWS |
|---|---|---|---|
| /8 | 255.0.0.0 | 16.777.216 | Dải private 10.0.0.0/8 |
| /16 | 255.255.0.0 | 65.536 | VPC lớn nhất cho phép |
| /20 | 255.255.240.0 | 4.096 | Subnet mặc định của default VPC |
| /24 | 255.255.255.0 | 256 | Subnet phổ biến |
| /28 | 255.255.255.240 | 16 | VPC/subnet nhỏ nhất cho phép |
| /32 | 255.255.255.255 | 1 | Một IP duy nhất (hay dùng trong Security Group) |
| 0.0.0.0/0 | 0.0.0.0 | Tất cả | "Mọi địa chỉ" — route ra Internet |
Mẹo nhớ: n càng lớn, dải càng nhỏ. Mỗi khi n tăng 1, số IP giảm một nửa.
4. Chia subnet
Chia subnet là lấy một dải lớn rồi cắt thành các dải nhỏ hơn, không chồng lấn nhau. Cách làm: mượn thêm bit từ phần host. Mượn k bit → được 2^k subnet, mỗi subnet nhỏ đi 2^k lần.
Ví dụ thực tế trong AWS: VPC 10.0.0.0/16, cần 2 Availability Zone, mỗi AZ có 1 public subnet và 1 private subnet → cắt thành các subnet /24 (mượn 8 bit, tối đa 256 subnet):
| Subnet | CIDR | Dải IP | Loại |
|---|---|---|---|
| public-a | 10.0.1.0/24 | 10.0.1.0 – 10.0.1.255 | Public, AZ a |
| public-b | 10.0.2.0/24 | 10.0.2.0 – 10.0.2.255 | Public, AZ b |
| private-a | 10.0.11.0/24 | 10.0.11.0 – 10.0.11.255 | Private, AZ a |
| private-b | 10.0.12.0/24 | 10.0.12.0 – 10.0.12.255 | Private, AZ b |
Ví dụ chia đều: 10.0.0.0/24 (256 IP) chia làm 4 → mượn 2 bit → 4 subnet /26, mỗi subnet 64 IP: 10.0.0.0/26, 10.0.0.64/26, 10.0.0.128/26, 10.0.0.192/26.
AWS giữ lại 5 IP trong mỗi subnet (ví dụ với 10.0.1.0/24):
10.0.1.0— địa chỉ mạng10.0.1.1— VPC router10.0.1.2— DNS server của AWS10.0.1.3— dự phòng cho tương lai10.0.1.255— địa chỉ broadcast (AWS không hỗ trợ broadcast nhưng vẫn giữ)
→ Subnet /24 chỉ dùng được 256 − 5 = 251 IP. Đây là câu hỏi rất hay gặp trong đề SAA.
Hai quy tắc khác cần nhớ: các subnet trong cùng VPC không được chồng lấn; và hai VPC muốn peering với nhau thì dải CIDR cũng không được trùng nhau.
5. Routing, gateway, NAT, port và stateful/stateless
Routing (định tuyến): bảng định tuyến (route table) gồm các dòng "đích → đi qua đâu". Gói tin được so với dòng cụ thể nhất (CIDR có n lớn nhất). Ví dụ:
| Destination | Target | Ý nghĩa |
|---|---|---|
| 10.0.0.0/16 | local | Đi lại trong nội bộ VPC |
| 0.0.0.0/0 | Internet Gateway | Mọi địa chỉ còn lại → ra Internet |
Gateway: "cửa ngõ" nối mạng này với mạng khác. Trong AWS: Internet Gateway nối VPC với Internet; NAT Gateway cho máy trong private subnet đi ra Internet nhưng Internet không chủ động vào được.
Port và protocol: IP chỉ ra máy nào, port chỉ ra dịch vụ nào trên máy đó. Giao thức chính: TCP (tin cậy), UDP (nhanh), ICMP (ping). Các port hay dùng:
| Port | Dịch vụ |
|---|---|
| 22 | SSH |
| 80 / 443 | HTTP / HTTPS |
| 3389 | RDP (Windows) |
| 3306 / 5432 | MySQL / PostgreSQL |
| 1024–65535 | Ephemeral port (port tạm phía client) |
Stateful và stateless — chìa khóa để phân biệt Security Group và NACL:
- Stateful (Security Group): cho phép chiều đi thì chiều trả lời tự động được cho phép.
- Stateless (NACL): mỗi chiều xét riêng; phải mở cả inbound lẫn outbound, kể cả dải ephemeral port 1024–65535 cho lưu lượng trả về.
DNS: dịch tên miền (ví dụ s3.amazonaws.com) sang IP. Cần hiểu để học VPC Endpoint.
6. Bài tập tự kiểm tra
Tự làm trước, sau đó xem đáp án bên dưới.
- Dải
10.0.0.0/20có bao nhiêu IP? Nếu là một subnet trong AWS thì dùng được bao nhiêu IP? - Chia
192.168.1.0/24thành 4 subnet bằng nhau. Viết CIDR của từng subnet. - IP
10.0.5.20có nằm trong dải10.0.0.0/22không? - VPC A dùng
10.0.0.0/16, VPC B dùng10.0.128.0/17. Hai VPC này peering được không? - Subnet nhỏ nhất AWS cho phép là bao nhiêu và dùng được mấy IP?
- Route table có hai dòng:
10.0.0.0/16 → localvà0.0.0.0/0 → IGW. Gói tin tới10.0.3.5đi theo dòng nào? Gói tin tới8.8.8.8thì sao?
Đáp án
- 2^(32−20) = 4.096 IP; trong AWS dùng được 4.096 − 5 = 4.091 IP.
- Mượn 2 bit → /26:
192.168.1.0/26,192.168.1.64/26,192.168.1.128/26,192.168.1.192/26. - Không.
/22gồm 1.024 IP, từ 10.0.0.0 đến 10.0.3.255. - Không. Dải của B nằm trọn trong dải của A (chồng lấn CIDR).
/28: 16 IP, dùng được 16 − 5 = 11 IP.10.0.3.5→ dòng local (khớp cụ thể hơn).8.8.8.8→ dòng 0.0.0.0/0, đi ra Internet Gateway.
Công cụ hỗ trợ khi luyện tập: tìm "subnet calculator" hoặc "CIDR calculator" trên mạng để kiểm tra kết quả.