07.vpcRouting IGW bastionHost
🌐 VPC Routing, Internet Gateway & Bastion Host trên AWS (Lý thuyết nền tảng cho thi cert & đi làm)¶
PHẦN 1: VPC Router - Bộ định tuyến trong VPC¶
1. VPC Router là gì?¶
- Thiết bị định tuyến có sẵn trong mọi VPC (Default & Custom), hoạt động ở tất cả AZ trong VPC.
- Highly available by design – không cần lo về availability, AWS quản lý hoàn toàn.
- Có network interface ở mọi subnet với IP là
Network+1
(địa chỉ thứ 2 của subnet). - Nhiệm vụ: Di chuyển traffic giữa các subnet trong VPC hoặc ra ngoài (nếu được cấu hình).
2. Route Table - Bảng định tuyến¶
- Route table = "bản đồ chỉ đường" cho VPC router, quy định traffic đi đâu khi rời subnet.
- Mỗi subnet phải có 1 route table (Main route table mặc định hoặc custom).
- 1 route table có thể gán cho nhiều subnet, nhưng 1 subnet chỉ có 1 route table.
3. Cấu trúc Route trong Route Table¶
Route components:
Destination: 10.16.0.0/16 # IP/network đích
Target: local # Đi đâu (local/IGW/NAT/...)
Route matching priority:
/32 > /24 > /16 > /8 > /0 # Càng cụ thể càng ưu tiên
Except: Local routes luôn ưu tiên tuyệt đối
4. Local Routes (Luôn có, không sửa được)¶
- Tự động có trong mọi route table, match với VPC CIDR.
- IPv4:
10.16.0.0/16 → local
- IPv6:
2600:1f14:xxx::/56 → local
(nếu VPC có IPv6) - Ý nghĩa: Traffic trong VPC được route trực tiếp, không qua gateway.
PHẦN 2: Internet Gateway (IGW) - Cửa ngõ ra Internet¶
1. Internet Gateway là gì?¶
- Managed gateway kết nối VPC với AWS Public Zone & Internet.
- Regionally resilient – 1 IGW phủ tất cả AZ trong region, không cần 1 IGW/AZ.
- Relationship 1:1 với VPC – 1 VPC tối đa 1 IGW, 1 IGW chỉ attach 1 VPC.
2. Cách IGW hoạt động¶
🔄 IGW Process:
1. Tạo IGW → Attach vào VPC
2. Tạo custom route table cho public subnet
3. Add default route (0.0.0.0/0) → IGW target
4. Associate route table với subnet cần public
5. Enable auto-assign public IPv4 cho subnet
3. Public Subnet vs Private Subnet¶
📊 Comparison:
Public Subnet:
✅ Có route 0.0.0.0/0 → IGW
✅ Auto-assign public IPv4 enabled
✅ Resources có thể truy cập Internet 2-way
Private Subnet:
❌ Không có route ra IGW (hoặc có qua NAT)
❌ Auto-assign public IPv4 disabled
❌ Resources chỉ có private IP, không truy cập Internet trực tiếp
PHẦN 3: IPv4 Public Address - Cách thức hoạt động thực tế¶
1. Điều quan trọng: Public IP không "chạm" vào EC2!¶
❌ Sai lầm thường gặp:
"EC2 instance được gán trực tiếp public IP"
✅ Thực tế:
- EC2 chỉ biết private IP (VD: 10.16.16.20)
- Public IP (VD: 43.250.192.20) được IGW quản lý
- IGW giữ mapping: private IP ↔ public IP
2. Flow dữ liệu qua IGW¶
🔄 Outbound (EC2 → Internet):
1. EC2 tạo packet: src=10.16.16.20, dst=Linux_Update_Server
2. Packet đến IGW qua default route
3. IGW thay đổi: src=43.250.192.20 (public IP)
4. Forward packet ra Internet
🔄 Inbound (Internet → EC2):
1. Server reply packet: src=Server, dst=43.250.192.20
2. IGW nhận packet, check mapping
3. IGW thay đổi: dst=10.16.16.20 (private IP)
4. Forward packet vào VPC đến EC2
3. IPv6 khác hoàn toàn IPv4¶
- IPv6 addresses trên AWS đều publicly routable (không có private/public concept).
- EC2 được config trực tiếp với IPv6 address (khác IPv4).
- IGW chỉ pass-through traffic, không làm NAT/translation.
PHẦN 4: Bastion Host (Jump Box) - Trạm trung gian¶
1. Bastion Host là gì?¶
- EC2 instance ở public subnet, làm "cửa ngõ" vào VPC private.
- Chức năng: SSH vào bastion → SSH tiếp vào các instance private.
- Use case: Quản lý VPC highly secure, không cho kết nối trực tiếp từ Internet.
2. Kiến trúc Bastion Host¶
🏗️ Architecture:
Internet → Bastion (Public Subnet) → Private Instances
Security:
- Chỉ mở port 22 (SSH) từ IP cụ thể
- Integrate với identity server (LDAP/AD)
- Key-based authentication
- Audit mọi connection
3. Bastion vs Modern Alternatives¶
📊 Comparison:
Bastion Host (Traditional):
✅ Đơn giản, dễ hiểu
❌ Single point of failure
❌ Phải maintain OS, security patches
❌ Complex key management
Modern Alternatives:
✅ AWS Systems Manager Session Manager
✅ AWS EC2 Instance Connect
✅ AWS SSM (không cần bastion)
PHẦN 5: Checklist & kiến thức thi cert/đi làm¶
Route Table Rules (Cực hay ra đề thi)¶
- [x] Mỗi subnet bắt buộc có 1 route table
- [x] Route table có thể gán nhiều subnet
- [x] Local routes luôn ưu tiên, không sửa được
- [x] Prefix cao hơn = ưu tiên cao hơn (/32 > /24 > /16 > /0)
Internet Gateway Rules¶
- [x] 1 VPC tối đa 1 IGW, 1 IGW chỉ attach 1 VPC
- [x] IGW là regionally resilient (không cần 1 IGW/AZ)
- [x] Public subnet = có route 0.0.0.0/0 → IGW + auto-assign public IP
IPv4 Public Addressing¶
- [x] Public IP không config trực tiếp trên EC2 OS
- [x] IGW làm NAT: private IP ↔ public IP
- [x] EC2 chỉ biết private IP, không biết public IP
IPv6 Addressing¶
- [x] IPv6 addresses đều publicly routable
- [x] EC2 được config trực tiếp với IPv6
- [x] IGW pass-through, không làm NAT
PHẦN 6: Câu hỏi phỏng vấn/exam thường gặp¶
- "Tại sao EC2 instance trong public subnet không truy cập Internet được?"
- Check route table có default route ra IGW không
- Check subnet có auto-assign public IP không
-
Check Security Group/NACL có block không
-
"Có thể assign public IP trực tiếp vào EC2 OS không?"
- Không! IPv4 public chỉ có ở IGW mapping
-
IPv6 thì có, được assign trực tiếp
-
"1 VPC có thể có bao nhiêu IGW?"
-
Tối đa 1 IGW/VPC, relationship 1:1
-
"Subnet nào được gọi là public subnet?"
- Có route 0.0.0.0/0 → IGW + auto-assign public IP enabled
PHẦN 7: Demo chuẩn bị (Bài sau sẽ thực hành)¶
Sẽ implement: 1. ✅ Tạo & attach IGW vào VPC 2. ✅ Tạo custom route table cho web tier 3. ✅ Add default routes (IPv4 & IPv6) → IGW 4. ✅ Associate route table với web subnets 5. ✅ Enable auto-assign public IP cho web subnets 6. ✅ Launch bastion host & test SSH connection
Kết quả: VPC sẽ có public subnets thật sự, kết nối Internet 2-way, ready cho production!
Đọc lại bài này trước mỗi lần thiết kế network architecture hoặc chuẩn bị đi thi AWS Solutions Architect!