Hôm nay mình mới làm xong một bài lab về Access Policy trên Cisco ACI, thấy cũng đáng để ngồi viết lại vì lúc mới đọc tài liệu thấy hơi ngợp, nhưng làm xong rồi thì thấy logic của nó khá dễ chịu. Bài này chia sẻ lại quá trình mình đi qua, không phải để giảng bài đâu, chỉ là ghi chú lại cho bản thân và cho ai đang loay hoay giống mình lúc đầu.
Bắt đầu từ VLAN Pool
Việc đầu tiên là vào Fabric → Access Policies → Pools → VLAN, chuột phải tạo VLAN Pool mới. Nghĩ đơn giản thì nó giống như một cái "kho" VLAN, mình cấp phát dải nào cho domain nào thì domain đó chỉ được dùng trong dải ấy thôi.
Có một bảng ví dụ khá hay để hình dung việc chia VLAN theo mục đích sử dụng thực tế:
Trong môi trường thật thì người ta còn chia nhỏ hơn nữa — riêng cho firewall, riêng cho VMM production, non-production, rồi cả voice, L3 core, L3 partner... đủ cả. Nhưng trong lab thì mình làm cho gọn, tạo một pool tên Phy-Domain-Test, chọn Static, rồi thêm một Encap Block cho dải VLAN cần dùng là xong.
Sau VLAN Pool là Physical Domain — về cơ bản nó là cái gắn VLAN Pool với "loại hạ tầng vật lý" mà mình định connect vào. Rồi tới AAEP (Attachable Access Entity Profile), cái này lúc đầu mình khá bối rối vì tên dài và khó hình dung, nhưng hiểu nôm na nó là cầu nối giữa Domain và Interface — nhiều interface có thể trỏ chung vào một AAEP để dùng chung domain.
Nói chung cứ nhớ chuỗi này là ổn: VLAN Pool → Physical Domain → AAEP → Policy Group → Interface. Nắm được cái chuỗi này rồi thì phần sau đỡ rối hẳn.
Cắm một server đơn — standalone port
Phần tiếp theo là kịch bản dễ nhất: một server, một dây, cắm vào một port trên leaf switch. Mình phải tạo thêm vài policy nhỏ trước khi gộp lại — Link Level Policy để set tốc độ (mình chọn 10 Gbps), rồi CDP Interface Policy để switch nhận diện thiết bị lân cận cho dễ debug sau này.
Xong hết mấy cái policy lẻ đó rồi mới gom vào một Leaf Access Port Policy Group, kèm theo AAEP đã tạo lúc nãy. Sau đó tạo Leaf Interface Profile để chỉ đích danh cổng vật lý nào sẽ dùng Policy Group này, cuối cùng là Leaf Profile để chọn switch ID cụ thể.
Lúc làm tới đây mình mới thấm cái hay của ACI: Policy Group định nghĩa "làm gì", còn Profile định nghĩa "áp vào đâu". Tách riêng như vậy nghĩa là một Policy Group có thể tái sử dụng cho cả chục port khác nhau mà không cần cấu hình lại từ đầu mỗi lần.
Đến phần vui hơn: vPC cho high availability
Task này mô phỏng tình huống một cụm server cần chạy dự phòng qua 2 leaf switch — trong bài lab lấy ví dụ là cụm Multiplayer Gaming Server, chắc để dễ hình dung là loại tải cần uptime cao. Điều làm mình bất ngờ nhất là ACI không cần kéo dây peer-link vật lý giữa 2 switch như vPC kiểu Nexus truyền thống, vì bản thân fabric đã lo phần đó rồi.
Quy trình na ná Task 2 nhưng có thêm vài bước: tạo Port Channel Policy (chọn LACP active/passive hay static tùy nhu cầu), rồi tạo vPC Interface Policy Group — cái này gộp chung AAEP, CDP, Link Level và Port Channel Policy vào một rổ. Sau đó thêm VPC Member Port Policy Groups cho từng port thành viên, và quay lại Interface Profile để tạo Access Port Selector mới, trỏ đúng vào Policy Group kiểu vPC vừa tạo.
Điểm khác biệt chính so với standalone chỉ nằm ở chỗ Policy Group giờ là loại "vPC" chứ không phải "Access" thường — còn phần domain/AAEP thì gần như giữ nguyên logic cũ.
Và cuối cùng, cho đỡ mỏi tay: Quick Start Wizard
Sau khi đã làm tay từng bước ở trên, ACI còn có một wizard tên Configure Interface, PC, and VPC, gom hết mấy chục bước ở trên lại chỉ còn vài cú click. Mình chọn Advanced để có nhiều tùy chọn hơn, chọn switch ID, tạo mới Switch Policy Group ngay trong lúc thao tác, rồi đặt tên Switch Profile và lưu lại — xong, không cần đi qua từng màn hình riêng lẻ như trước.
Cái này chắc hợp khi cần triển khai gấp cho nhiều switch/port cùng lúc. Nhưng thú thật, nếu bỏ qua phần làm tay ở trên mà nhảy thẳng vào wizard luôn thì chắc mình chẳng hiểu gì cả — vì wizard nó giấu hết cái logic bên dưới đi, chỉ tiện khi mình đã biết nó đang làm gì.
Vài điều đọng lại
Làm xong bài lab này mình nhận ra cái khó nhất của ACI không phải là thao tác — đa số chỉ là click chuột phải, điền tên, chọn cái này gắn vào cái kia. Cái khó là phải đổi cách tư duy: quen với việc gõ lệnh trực tiếp vào port rồi giờ phải nghĩ theo kiểu định nghĩa policy trước, gán sau. Ban đầu hơi ngược, nhưng nghĩ kỹ thì đúng là cách này tránh được cảnh sửa tay từng switch khi hệ thống lớn lên.
AAEP là cái mình thấy quan trọng nhất trong cả bài, vì gần như bất kỳ Policy Group nào — standalone hay vPC — cũng đều phải trỏ về AAEP để biết domain nào, VLAN Pool nào được phép đi qua interface đó. Bỏ qua bước này là kẹt ngay.
Nếu ai đang mới học ACI như mình, lời khuyên thật lòng là đừng vội bấm wizard cho nhanh. Cứ làm tay từng bước một lần cho thấm, hiểu được cái chuỗi VLAN Pool → Domain → AAEP → Policy Group → Profile rồi hẵng dùng wizard sau, lúc đó dùng mới thấy nó tiện chứ không phải chỉ thấy nó nhanh.

Bắt đầu từ VLAN Pool
Việc đầu tiên là vào Fabric → Access Policies → Pools → VLAN, chuột phải tạo VLAN Pool mới. Nghĩ đơn giản thì nó giống như một cái "kho" VLAN, mình cấp phát dải nào cho domain nào thì domain đó chỉ được dùng trong dải ấy thôi.
Có một bảng ví dụ khá hay để hình dung việc chia VLAN theo mục đích sử dụng thực tế:
| Domain | Dải VLAN | Allocation Mode | Dùng cho |
| Physical-Domain | 1–1000 | Static | Bare metal, firewall, appliance |
| VMM-Domain | 2001–3000 | Dynamic | Máy ảo |
| L3-Domain | 3091–3100 | Static | L3Out |
Sau VLAN Pool là Physical Domain — về cơ bản nó là cái gắn VLAN Pool với "loại hạ tầng vật lý" mà mình định connect vào. Rồi tới AAEP (Attachable Access Entity Profile), cái này lúc đầu mình khá bối rối vì tên dài và khó hình dung, nhưng hiểu nôm na nó là cầu nối giữa Domain và Interface — nhiều interface có thể trỏ chung vào một AAEP để dùng chung domain.
Nói chung cứ nhớ chuỗi này là ổn: VLAN Pool → Physical Domain → AAEP → Policy Group → Interface. Nắm được cái chuỗi này rồi thì phần sau đỡ rối hẳn.
Cắm một server đơn — standalone port
Phần tiếp theo là kịch bản dễ nhất: một server, một dây, cắm vào một port trên leaf switch. Mình phải tạo thêm vài policy nhỏ trước khi gộp lại — Link Level Policy để set tốc độ (mình chọn 10 Gbps), rồi CDP Interface Policy để switch nhận diện thiết bị lân cận cho dễ debug sau này.
Xong hết mấy cái policy lẻ đó rồi mới gom vào một Leaf Access Port Policy Group, kèm theo AAEP đã tạo lúc nãy. Sau đó tạo Leaf Interface Profile để chỉ đích danh cổng vật lý nào sẽ dùng Policy Group này, cuối cùng là Leaf Profile để chọn switch ID cụ thể.
Lúc làm tới đây mình mới thấm cái hay của ACI: Policy Group định nghĩa "làm gì", còn Profile định nghĩa "áp vào đâu". Tách riêng như vậy nghĩa là một Policy Group có thể tái sử dụng cho cả chục port khác nhau mà không cần cấu hình lại từ đầu mỗi lần.
Đến phần vui hơn: vPC cho high availability
Task này mô phỏng tình huống một cụm server cần chạy dự phòng qua 2 leaf switch — trong bài lab lấy ví dụ là cụm Multiplayer Gaming Server, chắc để dễ hình dung là loại tải cần uptime cao. Điều làm mình bất ngờ nhất là ACI không cần kéo dây peer-link vật lý giữa 2 switch như vPC kiểu Nexus truyền thống, vì bản thân fabric đã lo phần đó rồi.
Quy trình na ná Task 2 nhưng có thêm vài bước: tạo Port Channel Policy (chọn LACP active/passive hay static tùy nhu cầu), rồi tạo vPC Interface Policy Group — cái này gộp chung AAEP, CDP, Link Level và Port Channel Policy vào một rổ. Sau đó thêm VPC Member Port Policy Groups cho từng port thành viên, và quay lại Interface Profile để tạo Access Port Selector mới, trỏ đúng vào Policy Group kiểu vPC vừa tạo.
Điểm khác biệt chính so với standalone chỉ nằm ở chỗ Policy Group giờ là loại "vPC" chứ không phải "Access" thường — còn phần domain/AAEP thì gần như giữ nguyên logic cũ.
Và cuối cùng, cho đỡ mỏi tay: Quick Start Wizard
Sau khi đã làm tay từng bước ở trên, ACI còn có một wizard tên Configure Interface, PC, and VPC, gom hết mấy chục bước ở trên lại chỉ còn vài cú click. Mình chọn Advanced để có nhiều tùy chọn hơn, chọn switch ID, tạo mới Switch Policy Group ngay trong lúc thao tác, rồi đặt tên Switch Profile và lưu lại — xong, không cần đi qua từng màn hình riêng lẻ như trước.
Cái này chắc hợp khi cần triển khai gấp cho nhiều switch/port cùng lúc. Nhưng thú thật, nếu bỏ qua phần làm tay ở trên mà nhảy thẳng vào wizard luôn thì chắc mình chẳng hiểu gì cả — vì wizard nó giấu hết cái logic bên dưới đi, chỉ tiện khi mình đã biết nó đang làm gì.
Vài điều đọng lại
Làm xong bài lab này mình nhận ra cái khó nhất của ACI không phải là thao tác — đa số chỉ là click chuột phải, điền tên, chọn cái này gắn vào cái kia. Cái khó là phải đổi cách tư duy: quen với việc gõ lệnh trực tiếp vào port rồi giờ phải nghĩ theo kiểu định nghĩa policy trước, gán sau. Ban đầu hơi ngược, nhưng nghĩ kỹ thì đúng là cách này tránh được cảnh sửa tay từng switch khi hệ thống lớn lên.
AAEP là cái mình thấy quan trọng nhất trong cả bài, vì gần như bất kỳ Policy Group nào — standalone hay vPC — cũng đều phải trỏ về AAEP để biết domain nào, VLAN Pool nào được phép đi qua interface đó. Bỏ qua bước này là kẹt ngay.
Nếu ai đang mới học ACI như mình, lời khuyên thật lòng là đừng vội bấm wizard cho nhanh. Cứ làm tay từng bước một lần cho thấm, hiểu được cái chuỗi VLAN Pool → Domain → AAEP → Policy Group → Profile rồi hẵng dùng wizard sau, lúc đó dùng mới thấy nó tiện chứ không phải chỉ thấy nó nhanh.
Comment