Bài 2. Địa chỉ IP và Subnetting Nâng Cao: Thiết Kế 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:

  1. Chọn mạng gốc: 192.168.1.0/24 (256 địa chỉ).
  2. 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

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:

  1. Mạng gốc: 192.168.1.0/24 (256 địa chỉ).
  2. Yêu cầu: 3 subnet, mỗi subnet tối đa 60 host.
  3. 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
  4. 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!

Điều hướng chuỗi bài viết<< Bài 1. Networking trong DevOps: Hiểu Biết Nền Tảng để Thành Công
>> Bài 3. Giao thức TCP và UDP: Cách Dữ Liệu Di Chuyển trong DevOps
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Có thể bạn quan tâm