Bỏ qua tới nội dung
MẠNG MÁY TÍNHGIẢI THÍCH

Control Plane và Data Plane khác nhau thế nào? Giải thích từ router đến Kubernetes

Control Plane quyết định đường đi, Data Plane chuyển từng gói tin. Hiểu vì sao hai tầng này luôn tách riêng ở router, SDN, Kubernetes, Istio và đám mây AWS.

BBeernary31/10/2026 · 12 PHÚT ĐỌC
COVER.BMP
Control Plane và Data Plane khác nhau thế nào? Giải thích từ router đến Kubernetes
▲ Control Plane như cảnh sát giao thông ra quyết định, Data Plane như dòng xe thực thi

Bạn đọc tài liệu về router, Kubernetes hay AWS và lần nào cũng gặp hai cụm từ Control Plane và Data Plane. Nghe na ná nhau, lại hay đi chung một câu, nên rất dễ lướt qua mà không hiểu thật sự chúng khác nhau ở đâu. Bài này giải thích từ gốc: hai tầng đó làm việc gì, vì sao người ta cố tình tách chúng ra, và cách tách này xuất hiện ở router, SDN, Kubernetes, service mesh lẫn điện toán đám mây ra sao.

Ngã tư đông xe dạy ta điều gì?

Hãy hình dung một ngã tư giờ tan tầm. Anh cảnh sát giao thông đứng giữa, nhìn dòng xe từ bốn phía rồi quyết định hướng nào được đi, hướng nào phải dừng. Anh không tự chở ai qua đường cả. Việc di chuyển là của hàng nghìn xe máy, ô tô: chúng chỉ cần nhìn hiệu lệnh rồi chạy.

Cảnh sát giao thông đứng giữa ngã tư điều phối dòng xe máy và ô tô

Hệ thống mạng vận hành đúng theo kiểu đó:

  • Control Plane (tầng điều khiển) là anh cảnh sát: quan sát, tính toán, ra quyết định.
  • Data Plane (tầng dữ liệu, còn gọi là forwarding plane) là dòng xe: làm theo quyết định, với số lượng khổng lồ và tốc độ cao.

Điểm mấu chốt nằm ở tỉ lệ. Một người ra quyết định cho hàng nghìn lượt xe. Nếu mỗi chiếc xe phải dừng lại hỏi ý kiến và chờ anh cảnh sát suy nghĩ, ngã tư sẽ tắc ngay. Vì vậy quyết định được đưa ra trước, còn việc thực thi chỉ cần tra và làm.

Còn một tầng thứ ba

Nhiều tài liệu nhắc thêm Management Plane (tầng quản trị): nơi con người cấu hình thiết bị qua SSH, giao diện web, SNMP hay API. Có thể hiểu đây là "sở giao thông" đặt ra luật, Control Plane là cảnh sát áp dụng luật vào tình huống cụ thể, còn Data Plane là dòng xe.

Control Plane: tầng ra quyết định làm gì?

Control Plane trả lời một câu hỏi duy nhất: gói tin đi tới đích X thì nên đi đường nào? Để trả lời, nó phải:

  1. Thu thập thông tin về mạng: cổng nào đang sống, đường nào đứt, mạng nào nằm sau thiết bị hàng xóm.
  2. Trao đổi thông tin đó với các thiết bị khác bằng giao thức định tuyến.
  3. Tính toán đường đi tốt nhất theo một tiêu chí (ngắn nhất, rẻ nhất, theo chính sách).
  4. Ghi kết quả vào một cái bảng để tầng dưới dùng.

Công việc này cần logic phức tạp, cần bộ nhớ và CPU đa năng, nhưng không cần làm cho từng gói tin. Nó chỉ chạy lại khi mạng thay đổi: thêm một tuyến mới, một sợi cáp bị rút, một router hàng xóm khởi động lại.

Data Plane: tầng thực thi chạy nhanh đến đâu?

Data Plane thì ngược lại. Mỗi gói tin đi tới, nó làm đúng ba bước: đọc địa chỉ đích, tra bảng, đẩy ra cổng tương ứng. Không suy nghĩ, không hỏi lại ai, không tính toán đường đi.

Nghe đơn giản, nhưng cái khó là khối lượng. Một cổng 100 Gbps nhận hàng chục triệu gói tin mỗi giây, và một switch trung tâm dữ liệu có hàng chục cổng như thế. Không CPU đa năng nào kịp xử lý từng gói ở tốc độ đó. Vì vậy trên thiết bị mạng chuyên nghiệp, Data Plane được giao cho ASIC (chip chuyên dụng chỉ làm một việc) cùng loại bộ nhớ đặc biệt như TCAM, cho phép tra một địa chỉ trong toàn bộ bảng chỉ trong một chu kỳ.

Cận cảnh chip chuyển mạch Broadcom trên bo mạch của một switch Ethernet

Bảng so sánh nhanh hai tầng:

Tiêu chí Control Plane Data Plane
Vai trò Quyết định đường đi Chuyển gói tin theo quyết định
Chạy khi nào Khi mạng thay đổi Với từng gói tin
Phần cứng CPU đa năng, RAM ASIC, TCAM, NPU chuyên dụng
Tốc độ phản ứng Mili giây đến vài giây Micro giây, thậm chí nano giây
Độ phức tạp logic Cao (thuật toán, giao thức) Thấp (tra bảng, đẩy đi)
Ví von Bộ não Cơ bắp

Bên trong một chiếc router, hai tầng phối hợp ra sao?

Router là nơi dễ thấy rõ nhất sự phân tầng này.

Router lõi Cisco ASR 9000 trong tủ rack với các card đường truyền cắm cáp quang

Phía Control Plane chạy các giao thức định tuyến:

  • OSPF dùng trong một tổ chức: mỗi router quảng bá trạng thái các đường nối của mình, cả vùng cùng dựng chung một "bản đồ" rồi tự tính đường ngắn nhất.
  • BGP dùng giữa các nhà mạng trên Internet: các hệ thống tự trị (AS) báo cho nhau "tôi đi tới được dải IP này", kèm theo các thuộc tính để chọn đường theo chính sách.

Kết quả của mọi giao thức được gom vào RIB (Routing Information Base, bảng định tuyến). Từ RIB, router chọn ra tuyến tốt nhất cho mỗi đích rồi nạp xuống FIB (Forwarding Information Base, bảng chuyển tiếp), nằm ngay trong phần cứng chuyển mạch. Data Plane chỉ nhìn FIB.

Trên router Cisco hay Juniper, bạn có thể thấy hai bảng này tách bạch bằng hai lệnh khác nhau:

bash
# Cisco IOS: bảng định tuyến (RIB) do Control Plane tính
show ip route
# Bảng chuyển tiếp CEF (FIB) mà Data Plane dùng
show ip cef

# Trên máy Linux cũng có khái niệm tương tự
ip route show

Ở dòng router lớn, sự tách biệt còn mang tính vật lý: Control Plane chạy trên card điều khiển (route processor), còn Data Plane nằm trên từng card đường truyền (line card). Card điều khiển hỏng thì các line card vẫn có bản FIB của riêng mình.

Ghi nhớ nhanh

RIB là "mọi con đường mình biết", FIB là "con đường mình sẽ đi". Control Plane quản RIB, Data Plane chỉ đọc FIB.

Vì sao phải tách hai tầng ra?

Lý do thứ nhất là tốc độ. Hai tầng có nhịp làm việc chênh nhau hàng triệu lần. Khi một sợi cáp đứt, Control Plane có thể mất từ vài chục mili giây tới vài giây (với BGP trên Internet có khi lâu hơn) để hội tụ lại. Trong lúc đó Data Plane vẫn phải xử lý hàng trăm triệu gói tin mỗi giây. Ghép chung hai việc vào một chỗ thì việc chậm sẽ kéo việc nhanh xuống.

Lý do thứ hai là chịu lỗi. Nếu Control Plane bị treo hoặc đang khởi động lại, Data Plane vẫn tiếp tục chuyển gói theo bảng cũ. Kỹ thuật này có tên Non-Stop Forwarding hay Graceful Restart trên router: phần mềm định tuyến khởi động lại, nhưng lưu lượng không rớt. Bảng cũ có thể hơi lỗi thời, nhưng mạng không sập ngay lập tức.

Lý do thứ ba là khả năng mở rộng và tiến hoá độc lập. Muốn thêm tính năng định tuyến mới, chỉ cần cập nhật phần mềm Control Plane. Muốn tăng băng thông, thay chip Data Plane đời mới. Hai bên nói chuyện qua một "hợp đồng" rõ ràng là cái bảng.

Control Plane được phép chậm nhưng phải đúng. Data Plane phải nhanh, và chỉ cần làm đúng theo bảng.

SDN: khi Control Plane rời khỏi thiết bị

Nếu hai tầng đã tách bên trong một router, sao không tách luôn ra khỏi router? Đó là ý tưởng của SDN (Software-Defined Networking, mạng định nghĩa bằng phần mềm), phổ biến từ khoảng năm 2008 với giao thức OpenFlow do nhóm nghiên cứu ở Đại học Stanford đề xuất.

Trong mô hình SDN, Control Plane được gom về một bộ điều khiển trung tâm (controller). Bộ điều khiển nhìn thấy toàn bộ mạng, tự tính đường rồi đẩy luật chuyển tiếp xuống hàng trăm switch. Các switch chỉ còn giữ Data Plane: nhận luật, tra luật, chuyển gói.

Dãy máy chủ trong trung tâm dữ liệu phát sáng xanh, nơi SDN được dùng để điều khiển mạng tập trung

Cái lợi là quản trị tập trung: thay vì đăng nhập từng switch để sửa cấu hình, bạn đổi chính sách ở một chỗ. Các trung tâm dữ liệu cỡ lớn dùng cách này để điều phối mạng nội bộ khổng lồ. Cái giá là bộ điều khiển trở thành điểm quan trọng bậc nhất, nên thường được chạy thành cụm nhiều máy để dự phòng.

Kubernetes và service mesh mượn ý tưởng này thế nào?

Khái niệm Control Plane và Data Plane đã vượt ra khỏi thế giới router để trở thành một mẫu kiến trúc chung.

Kubernetes

Diễn giả trình bày về Kubernetes tại một hội thảo Google Cloud, phía sau là logo bánh lái Kubernetes

Control Plane của một cụm Kubernetes gồm:

  • kube-apiserver: cửa ngõ duy nhất, mọi lệnh kubectl đều đi qua đây.
  • etcd: kho lưu trạng thái mong muốn của cả cụm.
  • kube-scheduler: quyết định Pod nào chạy trên máy nào.
  • kube-controller-manager: liên tục so trạng thái thực với trạng thái mong muốn rồi điều chỉnh.

Data Plane là các worker node, với kubelet, container runtime và kube-proxy, nơi ứng dụng thật sự chạy và phục vụ người dùng. Bạn có thể tự kiểm tra:

bash
# Xem các thành phần Control Plane (thường nằm trong namespace kube-system)
kubectl get pods -n kube-system
# Xem các node và vai trò của chúng
kubectl get nodes -o wide

Một hệ quả thú vị: nếu API server tạm thời không phản hồi, các Pod đang chạy vẫn tiếp tục phục vụ request. Bạn chỉ mất khả năng triển khai mới, co giãn hay tự chữa lỗi cho tới khi Control Plane hồi phục.

Service mesh (Istio)

Với Istio, Data Plane là các proxy Envoy đứng cạnh từng dịch vụ (sidecar), chặn mọi request vào ra để mã hoá, đo đạc, thử lại hay chia tải. Control Plane là istiod, phát cấu hình định tuyến và cấp chứng chỉ bảo mật xuống cho các proxy đó. Request của người dùng không bao giờ đi qua istiod, chỉ đi qua Envoy.

Đám mây và bảo mật: tách tầng để sống sót

Các nhà cung cấp đám mây như AWS thiết kế dịch vụ theo đúng nguyên tắc này và nói rõ trong tài liệu kiến trúc của họ. Lệnh tạo, sửa, xoá máy chủ, cơ sở dữ liệu hay load balancer đi qua Control Plane (các API quản trị). Còn lưu lượng thật của ứng dụng (request web, truy vấn cơ sở dữ liệu, gói tin trong VPC) chạy trên Data Plane, tách biệt hoàn toàn.

Hàng tủ rack chứa máy chủ trong trung tâm dữ liệu, minh hoạ hạ tầng đám mây

Hệ quả thực tế: khi Control Plane của một vùng gặp sự cố, bạn có thể không tạo được máy mới hay không đổi được cấu hình, nhưng website đang chạy vẫn sống bình thường. AWS gọi tính chất này là static stability (ổn định tĩnh): Data Plane được thiết kế để tiếp tục hoạt động với trạng thái đã có, không cần hỏi Control Plane trong lúc chạy.

Sai lầm hay gặp

Nhiều hệ thống tự phá vỡ sự tách biệt này mà không biết, ví dụ kịch bản khôi phục thảm hoạ phụ thuộc vào việc tạo mới tài nguyên đúng lúc sự cố. Khi đó bạn đang đặt cược vào Control Plane, chính thứ dễ quá tải nhất khi cả vùng gặp vấn đề. Hãy chuẩn bị sẵn tài nguyên dự phòng thay vì trông vào lệnh tạo mới.

Về bảo mật, Control Plane là mục tiêu giá trị nhất. Chiếm được Data Plane của một node, kẻ tấn công thấy được lưu lượng đi qua node đó. Chiếm được Control Plane, họ điều khiển được cả hệ thống: đổi đường đi của gói tin, chạy container tuỳ ý, cấp chứng chỉ giả. Vì thế Control Plane luôn được đặt trong mạng quản trị riêng, giới hạn truy cập chặt và giám sát kỹ.

Phòng điều hành mạng (NOC) với màn hình lớn hiển thị bản đồ đường truyền

Một số việc nên làm:

  • [ ]Không để API server Kubernetes hay giao diện quản trị router mở ra Internet.
  • [ ]Bật xác thực cho giao thức định tuyến (OSPF authentication, mật khẩu phiên BGP) để tránh bị chèn tuyến giả.
  • [ ]Trên router, dùng CoPP (Control Plane Policing) để giới hạn lưu lượng gửi lên CPU, tránh bị đánh sập bằng gói tin rác.
  • [ ]Phân quyền tối thiểu (RBAC) cho người và dịch vụ gọi vào Control Plane.

Tóm tắt nhanh

  • Control Plane là bộ não: thu thập thông tin, tính đường đi, ghi kết quả vào bảng. Chậm hơn nhưng thông minh.
  • Data Plane là cơ bắp: tra bảng và chuyển từng gói tin bằng phần cứng chuyên dụng. Cực nhanh nhưng chỉ làm theo lệnh.
  • Tách hai tầng giúp hệ thống nhanh hơn, chịu lỗi tốt hơn và nâng cấp từng phần độc lập.
  • Mẫu kiến trúc này có mặt ở router (RIB và FIB), SDN, Kubernetes, Istio và các dịch vụ đám mây.
  • Control Plane là mục tiêu tấn công giá trị nhất, cần được cô lập và bảo vệ chặt nhất.

Câu hỏi thường gặp

Management Plane khác gì Control Plane?

Management Plane là nơi con người cấu hình và giám sát thiết bị (SSH, giao diện web, SNMP, API). Control Plane là phần tự động chạy các giao thức và tính toán đường đi dựa trên cấu hình đó.

Control Plane chết thì mạng có sập không?

Không sập ngay. Data Plane vẫn chuyển gói theo bảng đã có. Nhưng nếu mạng thay đổi trong lúc đó (cáp đứt, thiết bị mới), bảng sẽ không được cập nhật nên lưu lượng có thể đi sai hoặc rớt dần.

Máy tính cá nhân có Control Plane và Data Plane không?

Có, ở mức đơn giản. Hệ điều hành giữ một bảng định tuyến (xem bằng ip route hay route print), do bạn hoặc DHCP cấu hình. Nhân hệ điều hành dùng bảng đó để gửi từng gói tin, tương tự vai trò Data Plane.

Học khái niệm này để làm gì?

Nó giúp bạn đọc hiểu tài liệu kiến trúc, đoán được hệ thống sẽ phản ứng ra sao khi một thành phần hỏng, và thiết kế dịch vụ chịu lỗi tốt hơn: giữ đường đi của dữ liệu thật càng ít phụ thuộc vào tầng điều khiển càng tốt.

BVIẾT BỞIBeernary

ĐỌC TIẾP_

BÌNH LUẬN (0)

LOGIN.EXE
> ĐĂNG NHẬP ĐỂ BÌNH LUẬNDùng tài khoản Google, không cần tạo mật khẩu. Tên và ảnh đại diện Google sẽ hiện cạnh bình luận.

> CHƯA CÓ BÌNH LUẬN. HÃY LÀ NGƯỜI ĐẦU TIÊN_