Danh sách bài viết trong series Networking cho DevOps
- Bài 1. Networking trong DevOps: Hiểu Biết Nền Tảng để Thành Công
- Bài 2. Địa chỉ IP và Subnetting Nâng Cao: Thiết Kế Mạng Hiệu Quả trong DevOps
- Bài 3. Giao thức TCP và UDP: Cách Dữ Liệu Di Chuyển trong DevOps
- Bài 4. DNS và Phân Giải Tên: Bí Mật Kết Nối Tên Miền trong DevOps
- Bài 5. Routing và Switching Cơ Bản: Hiểu Cách Dữ Liệu Tìm Đường trong DevOps
- Bài 6. NAT và Firewall trong Mạng: Kiểm Soát Lưu Lượng trong DevOps
- Bài 7. VLAN và Thiết Kế Mạng Phân Đoạn: Cô Lập Lưu Lượng Hiệu Quả trong DevOps
- Bài 8. Phân Tích Lưu Lượng Mạng trong DevOps: Hiểu Gói Tin để Debug Hiệu Quả
- Bài 9: Bảo Mật Mạng Chuyên Sâu: Bảo Vệ Hệ Thống DevOps Trước Mối Đe Dọa
- Bài 10. Thiết Kế Mạng cho Hệ Thống DevOps: Tối Ưu Hiệu Năng và Độ Tin Cậy
- Bài 11. SDN trong DevOps: Tự Động Hóa Mạng cho Hệ Thống Phân Tán
- Bài 12. QoS trong DevOps: Tối Ưu Hiệu Năng Mạng với Quality of Service
- Bài 13. Network Automation trong DevOps: Tự Động Hóa Mạng với Ansible và Python
- Bài 14. Zero Trust Networking trong DevOps: Bảo Mật Hệ Thống Không Tin Ai
- Bài 15. Network Troubleshooting Nâng Cao: Debug Mạng Hiệu Quả trong DevOps
Địa chỉ IP và Subnetting Nâng Cao: Thiết Kế Mạng Hiệu Quả trong DevOps
Bạn đã bao giờ gặp khó khăn khi thiết kế mạng cho một hệ thống DevOps với hàng trăm máy? Hay tự hỏi làm sao để tối ưu băng thông trong pipeline CI/CD? Subnetting trong DevOps là câu trả lời. Trong bài thứ hai của series, chúng ta sẽ đi sâu vào địa chỉ IP, cách chia subnet nâng cao, và CIDR – những kỹ năng cốt lõi để thiết kế mạng hiệu quả.
Địa chỉ IP: Nền Tảng của Mọi Kết Nối
IP Là Gì và Tại Sao Quan Trọng?
Địa chỉ IP (Internet Protocol) là định danh duy nhất cho thiết bị trong mạng, giống như địa chỉ nhà của bạn. Nó quyết định cách dữ liệu di chuyển giữa server, client, và cloud.
- IPv4: 32-bit, dạng thập phân (ví dụ:
192.168.1.10
), giới hạn ~4.3 tỷ địa chỉ. - IPv6: 128-bit, dạng hexa (ví dụ:
2001:0db8::1
), gần như vô hạn, đang dần phổ biến.
Trong DevOps: IP giúp định tuyến lưu lượng giữa runner CI/CD, database, và load balancer. Hiểu IP là bước đầu để làm chủ mạng.
IP Công Cộng vs IP Riêng
- IP công cộng: Dùng trên Internet, được cấp bởi ISP (ví dụ:
8.8.8.8
– DNS Google). - IP riêng: Dùng trong mạng nội bộ, không định tuyến được qua Internet:
10.0.0.0 - 10.255.255.255
(10.0.0.0/8).172.16.0.0 - 172.31.255.255
(172.16.0.0/12).192.168.0.0 - 192.168.255.255
(192.168.0.0/16).
Ứng dụng: Trong hệ thống DevOps, IP riêng thường dùng cho mạng nội bộ (VPC, LAN), kết hợp NAT để ra Internet.
Subnetting: Nghệ Thuật Chia Mạng
Subnetting Là Gì?
Subnetting là quá trình chia một mạng lớn thành các mạng con (subnet) nhỏ hơn. Điều này giúp:
- Tăng hiệu quả sử dụng IP.
- Giảm xung đột mạng (broadcast domain nhỏ hơn).
- Tăng bảo mật (cô lập lưu lượng).
Ví dụ thực tế: Một team DevOps cần mạng cho 3 microservices (web, API, DB). Thay vì dùng 192.168.1.0/24
cho tất cả, họ chia thành 3 subnet riêng biệt.
Cách Tính Subnet Thủ Công
Subnetting dựa trên subnet mask – dãy bit xác định phần mạng và phần host trong địa chỉ IP.
- Subnet mask dạng thập phân:
255.255.255.0
(24 bit cho mạng, 8 bit cho host). - Số host: 2^(số bit host) – 2 (trừ địa chỉ mạng và broadcast).
Bước tính toán:
- Chọn mạng gốc:
192.168.1.0/24
(256 địa chỉ). - Chia thành 4 subnet:
- Mượn 2 bit từ host → mask mới:
/26
(255.255.255.192
). - Số host mỗi subnet: 2^6 – 2 = 62.
- Các subnet:
192.168.1.0 - 192.168.1.63
192.168.1.64 - 192.168.1.127
192.168.1.128 - 192.168.1.191
192.168.1.192 - 192.168.1.255
- Mượn 2 bit từ host → mask mới:
Công thức nhanh:
- Số subnet = 2^(số bit mượn).
- Số host/subnet = 2^(số bit host còn lại) – 2.
CIDR Là Gì? Cách Hiện Đại để Chia Mạng
CIDR (Classless Inter-Domain Routing) thay thế subnetting truyền thống (Class A, B, C) bằng ký hiệu /n
linh hoạt hơn.
- Ý nghĩa:
/24
= 24 bit cho mạng, 8 bit cho host. - Ví dụ:
10.0.0.0/16
= 65,536 địa chỉ, có thể chia thành nhiều subnet nhỏ hơn.
So sánh: | Class | Dải IP | Mask | Số host |
---|---|---|---|---|
Class A | 10.0.0.0/8 | 255.0.0.0 | 16M | |
Class B | 172.16.0.0/16 | 255.255.0.0 | 65K | |
Class C | 192.168.1.0/24 | 255.255.255.0 | 254 | |
CIDR | 192.168.1.0/26 | 255.255.255.192 | 62 |
Ứng dụng trong DevOps: CIDR giúp thiết kế mạng cloud (VPC) linh hoạt, ví dụ: chia 10.0.0.0/16
thành subnet cho production, staging, và testing.
Thực Hành: Chia Subnet cho Hệ Thống DevOps
Hãy thử thiết kế mạng cho 3 microservices:
- Mạng gốc:
192.168.1.0/24
(256 địa chỉ). - Yêu cầu: 3 subnet, mỗi subnet tối đa 60 host.
- Tính toán:
- Mượn 2 bit →
/26
, mỗi subnet 64 địa chỉ (62 host). - Subnet:
- Web:
192.168.1.0 - 192.168.1.63
- API:
192.168.1.64 - 192.168.1.127
- DB:
192.168.1.128 - 192.168.1.191
- Web:
- Mượn 2 bit →
- Kiểm tra: Dùng
ipcalc 192.168.1.0/26
(Linux) hoặc calculator online.
Debug tip: Nếu subnet overlap (trùng dải), kiểm tra lại mask và bước nhảy (64 trong ví dụ).
Kết Luận
Subnetting trong DevOps không chỉ là lý thuyết – nó là kỹ năng thực tế để thiết kế mạng hiệu quả, giảm lãng phí IP, và tăng bảo mật. Hiểu địa chỉ IP, cách chia subnet, và CIDR là gì giúp bạn sẵn sàng cho các hệ thống lớn. Bài tiếp theo, chúng ta sẽ khám phá giao thức TCP và UDP chuyên sâu – cách chúng vận chuyển dữ liệu trong DevOps.
Bài tập nhỏ:
- Chia
10.0.0.0/16
thành 4 subnet bằng nhau. Mỗi subnet có bao nhiêu host? - Dùng
ipcalc
hoặc tính tay để kiểm tra.
Tiếp tục theo dõi series để làm chủ thiết kế mạng trong DevOps!