Cisco ACI คืออะไร? สอน Application Centric Infrastructure สำหรับ Data Center 2026

Cisco ACI คืออะไร?

Cisco ACI (Application Centric Infrastructure) คือโซลูชัน Software-Defined Networking (SDN) สำหรับ Data Center ที่พัฒนาโดย Cisco โดยเปลี่ยนแนวคิดการจัดการ Network จากแบบ Device-centric (ตั้งค่า Switch ทีละตัว) มาเป็น Application-centric (กำหนด Policy ตาม Application แล้ว ACI จะตั้งค่า Network ให้อัตโนมัติ) ACI เปิดตัวครั้งแรกในปี 2013 และในปี 2026 ได้พัฒนาเป็นเวอร์ชัน 6.x ที่รองรับ Multi-site, Multi-cloud, Kubernetes integration และ AI-driven automation

ACI ถูกออกแบบมาเพื่อแก้ปัญหาของ Traditional Data Center Networking ที่มี Complexity สูง การเปลี่ยนแปลง Network ต้องใช้เวลานาน (weeks ถึง months), Error-prone จากการตั้งค่ามือ, Inconsistent policies ระหว่าง Switch ต่างตัว, ไม่มี Visibility ว่า Application ใช้ Network อย่างไร และ Troubleshooting ยาก เพราะต้องตรวจสอบทุก Device

ACI Architecture — Spine-Leaf Topology

ACI ใช้ Spine-Leaf topology ซึ่งเป็นมาตรฐานสำหรับ Modern Data Center แทน Traditional 3-tier (Core, Distribution, Access) ทุก Leaf switch เชื่อมต่อกับทุก Spine switch ทำให้ Traffic ข้ามระหว่าง Server ใดๆ ผ่านแค่ 2 hops (Leaf → Spine → Leaf) ได้ Latency ที่ต่ำและคาดเดาได้

Spine Switches: เป็น Backbone ของ Fabric ทำหน้าที่ Forward traffic ระหว่าง Leaf switches ไม่มี Server/Endpoint เชื่อมต่อโดยตรง ใช้ Cisco Nexus 9500 series (Fixed หรือ Modular)

Leaf Switches: เป็นจุดเชื่อมต่อกับ Server, Storage, Firewall, Load Balancer และ External network (WAN/Internet) ทุก Endpoint ต้องเชื่อมต่อผ่าน Leaf เสมอ ใช้ Cisco Nexus 9300 series

APIC (Application Policy Infrastructure Controller): คือ Brain ของ ACI Fabric เป็น Centralized management point ที่ทำหน้าที่ Policy management (สร้าง, แก้ไข, ลบ Policy), Fabric provisioning (ตั้งค่า Switches อัตโนมัติ), Health monitoring (ดูสถานะ Fabric ทั้งหมด), Troubleshooting (Visibility ลึกถึง Packet level) และ API gateway (REST API สำหรับ Automation) APIC ทำงานเป็น Cluster (แนะนำ 3 APIC) เพื่อ High Availability ถ้า APIC ทั้งหมดล่ม Fabric ยังทำงานได้ (ข้อมูล Policy ถูก Push ไปที่ Switch แล้ว) แต่จะไม่สามารถเปลี่ยน Policy ได้

ACI Object Model — แนวคิดหลัก

ACI ใช้ Object Model ที่เป็นลำดับชั้น (Hierarchical) ทุกอย่างถูกกำหนดเป็น Managed Objects (MO) ที่มีความสัมพันธ์กัน:

Tenant

Tenant คือ Logical container ระดับสูงสุดสำหรับแบ่งแยก Policy ขององค์กร แผนก หรือ Application ได้ เปรียบเหมือน Virtual Data Center แต่ละ Tenant มี Network, Security policy, L4-L7 services ของตัวเอง ไม่เห็นข้อมูลของ Tenant อื่น ตัวอย่าง: Tenant-Production, Tenant-Dev, Tenant-CustomerA

VRF (Virtual Routing and Forwarding)

VRF คือ Routing domain ภายใน Tenant หนึ่ง Tenant มีได้หลาย VRF แต่ละ VRF มี Routing table แยกกัน ทำให้ใช้ IP ซ้ำกันได้ (IP overlap) เปรียบเหมือน Virtual Router

BD (Bridge Domain)

Bridge Domain คือ L2 broadcast domain เปรียบเหมือน VLAN แต่ยืดหยุ่นกว่ามาก BD สัมพันธ์กับ VRF (1 BD → 1 VRF) มี Subnet gateway อยู่ใน BD สามารถกำหนด Options ต่างๆ เช่น ARP flooding, Unicast routing, L2 unknown unicast

EPG (End Point Group)

EPG คือแนวคิดที่สำคัญที่สุดใน ACI ทำหน้าที่จัดกลุ่ม Endpoints (VMs, Containers, Physical servers, IP devices) ที่มี Policy เหมือนกันเข้าด้วยกัน EPG ไม่ได้จำกัดอยู่แค่ VLAN หรือ Subnet เดียว สามารถมี Endpoints จากหลาย VLAN, หลาย Subnet, หลาย Leaf switch ได้

ตัวอย่างการจัดกลุ่ม: EPG-WebServers (รวม Web server ทั้งหมด ไม่ว่าจะอยู่ที่ Leaf ตัวไหน), EPG-AppServers (รวม Application server), EPG-DBServers (รวม Database server), EPG-Monitoring (รวม Monitoring tools)

Contract

Contract คือกฎที่กำหนดว่า EPG ไหนสามารถสื่อสารกับ EPG ไหนได้ และด้วย Protocol/Port อะไร ถ้าไม่มี Contract Endpoint ต่าง EPG จะไม่สามารถสื่อสารกันได้เลย (Whitelist model — default deny) Contract ประกอบด้วย Subject (กลุ่มของ Filters) และ Filter (กำหนด Protocol, Port, Direction)

# ตัวอย่าง Contract: Web → App (HTTP/HTTPS)
Tenant: Production
  Contract: Web-to-App
    Subject: HTTP-Traffic
      Filter: HTTP
        Entry: tcp dst port 80 (permit)
        Entry: tcp dst port 443 (permit)

  EPG-WebServers → Consumer of Contract "Web-to-App"
  EPG-AppServers → Provider of Contract "Web-to-App"

# ผลลัพธ์: Web servers สามารถเข้าถึง App servers ที่ port 80, 443 ได้
# App servers ไม่สามารถ initiate connection ไปหา Web servers ได้

ACI Fabric Initialization

การตั้งค่า ACI Fabric ครั้งแรก มีขั้นตอนหลักดังนี้:

ขั้นตอนที่ 1: Physical Setup — ติดตั้ง APIC (3 เครื่อง), Spine switches, Leaf switches, เชื่อมสาย Spine-Leaf (ทุก Leaf → ทุก Spine), เชื่อมสาย APIC → Leaf (คนละ Leaf)

ขั้นตอนที่ 2: APIC Bootstrap — เข้า Console ของ APIC ตัวแรก กำหนด Fabric name, Controller ID (1), TEP pool (10.0.0.0/16 default), Infrastructure VLAN (default 4093), OOB management IP

ขั้นตอนที่ 3: Fabric Discovery — APIC จะ Discover Spine และ Leaf switches อัตโนมัติผ่าน LLDP เข้า APIC GUI (https://apic-ip) ไปที่ Fabric > Inventory > Fabric Membership จะเห็น Switches ที่ Unregistered อนุมัติ (Register) แต่ละ Switch กำหนด Node ID และ Name

ขั้นตอนที่ 4: Configure Access Policies — กำหนด Interface policies (Speed, LLDP, CDP), VLAN pools, Physical/VMM domains, AEP (Attachable Entity Profile), Interface profiles

APIC GUI Walkthrough

APIC GUI มี Tabs หลักดังนี้:

System: ดูสถานะ APIC cluster, Firmware management, Configuration export/import, Schedulers

Tenants: จัดการ Tenants, VRFs, BDs, EPGs, Contracts ทั้งหมด นี่คือ Tab ที่ใช้บ่อยที่สุด

Fabric: จัดการ Access policies (VLAN, Interface profiles), Inventory (Switch status), Policies (BGP, DNS, NTP, SNMP)

Virtual Networking: จัดการ VMM Domains (VMware vCenter, Microsoft SCVMM, Kubernetes) ที่ Integrate กับ ACI

L4-L7 Services: กำหนด Service Graphs สำหรับ Firewall, Load Balancer insertion

Operations: ดู Health score, Faults, Events, Audit logs, EP tracker

Apps: ติดตั้ง Apps เพิ่มเติมจาก Cisco ACI App Center

Micro-segmentation ด้วย EPG

Micro-segmentation คือการแบ่ง Security zone ให้เล็กลงถึงระดับ Application หรือ Workload แทนที่จะแบ่งแค่ระดับ VLAN/Subnet ACI ทำ Micro-segmentation ได้ง่ายด้วย EPG:

# Traditional: VLAN-based segmentation
VLAN 10 → All Web servers → 1 Firewall rule set
VLAN 20 → All App servers → 1 Firewall rule set
# ปัญหา: Server ใน VLAN เดียวกันสื่อสารกันได้หมด (East-West traffic ไม่ถูก filter)

# ACI: EPG-based micro-segmentation
Tenant: Production
  EPG-WebFrontend → Web UI servers
  EPG-APIGateway → API Gateway servers
  EPG-OrderService → Order microservice
  EPG-PaymentService → Payment microservice
  EPG-Database → Database servers

  Contracts:
    WebFrontend → APIGateway (HTTPS 443)
    APIGateway → OrderService (gRPC 50051)
    APIGateway → PaymentService (gRPC 50052)
    OrderService → Database (MySQL 3306)
    PaymentService → Database (MySQL 3306)
    # WebFrontend ไม่สามารถเข้าถึง Database ได้โดยตรง!
    # OrderService ไม่สามารถเข้าถึง PaymentService ได้!

USG (uSeg / Microsegment EPG) เป็นฟีเจอร์ที่ทำให้ จัดกลุ่ม Endpoint ตาม Attribute ได้ เช่น IP address, MAC address, VM name, OS type โดยไม่ต้องพึ่ง VLAN ทำให้ Micro-segmentation ละเอียดขึ้นไปอีก

Service Graphs — Firewall & Load Balancer Insertion

Service Graph คือวิธีที่ ACI ใช้แทรก L4-L7 Services (Firewall, Load Balancer, WAF, IPS) เข้าไปใน Traffic path โดยไม่ต้องเปลี่ยน Network topology ACI จะ Redirect traffic ไปผ่าน Service device อัตโนมัติ

# Service Graph: Web → Firewall → Load Balancer → App
# ขั้นตอน:
# 1. Register L4-L7 Device (Firewall, LB) ใน ACI
# 2. สร้าง Service Graph Template
# 3. กำหนด Function (Firewall = GoTo, LB = GoTo)
# 4. Apply Service Graph กับ Contract ระหว่าง EPG
# 5. ACI จะ:
#    - สร้าง Shadow EPGs สำหรับ Service device
#    - Redirect traffic: EPG-Web → Firewall → LB → EPG-App
#    - ตั้งค่า VLAN, IP, Routes ให้อัตโนมัติ

Supported Devices:
- Firewall: Palo Alto, Cisco ASA/FTD, Fortinet, Check Point
- Load Balancer: F5 BIG-IP, Citrix ADC, AVI Networks
- WAF: Imperva, F5 ASM
- IPS/IDS: Cisco Firepower, Palo Alto Threat Prevention

ACI Multi-Site

ACI Multi-Site ใช้ Cisco Nexus Dashboard (เดิมชื่อ Multi-Site Orchestrator / MSO) เพื่อจัดการ ACI Fabrics หลายแห่งจากที่เดียว เหมาะสำหรับองค์กรที่มี Data Center หลาย Location:

Multi-Site: เชื่อม ACI Fabrics ที่อยู่คนละ Data Center (เช่น Bangkok DC + Singapore DC) แต่ละ Site มี APIC cluster ของตัวเอง Nexus Dashboard จัดการ Policy consistency ระหว่าง Sites รองรับ Stretched Tenant, Stretched EPG (Endpoint อยู่คนละ Site แต่ใน EPG เดียวกัน)

ACI Anywhere: ขยาย ACI Policy ไปยัง Remote sites (Mini ACI, Virtual ACI), Cloud (AWS, Azure ด้วย Cloud APIC), และ Edge locations ทำให้มี Consistent policy ตั้งแต่ Data Center ไปจนถึง Cloud

ACI + VMware Integration

ACI integrate กับ VMware vCenter/vSphere ผ่าน VMM Domain (Virtual Machine Manager Domain) ทำให้:

ACI สร้าง Port Group บน vDS (vSphere Distributed Switch) อัตโนมัติเมื่อสร้าง EPG, VM ที่ย้ายด้วย vMotion จะยังคง Policy เดิม (Policy follows VM), vCenter Admin เห็น EPG เป็น Port Group ปกติ ไม่ต้องเรียนรู้ ACI, ACI เห็น VM ทุกตัวใน vCenter (Endpoint Tracker), Microsegmentation ทำได้ถึงระดับ VM

# ขั้นตอน Integration:
# 1. สร้าง VMM Domain ใน ACI (Tenants > Networking > VMM Domains)
# 2. กำหนด vCenter credentials (IP, Username, Password)
# 3. กำหนด VLAN Pool สำหรับ DVS
# 4. ACI จะสร้าง DVS บน vCenter อัตโนมัติ
# 5. สร้าง EPG แล้ว Associate กับ VMM Domain
# 6. ACI สร้าง Port Group ชื่อ Tenant|AP|EPG บน DVS
# 7. vCenter Admin assign VM ไปที่ Port Group นั้น

ACI + Kubernetes

Cisco ACI CNI Plugin (Container Networking Interface) ทำให้ Kubernetes Pods ใช้ ACI Policy ได้เหมือน VM หรือ Physical server:

Kubernetes Pods ถูก Map เข้า EPG ใน ACI, Contract ระหว่าง EPG ใช้กับ Pod traffic ได้, Network Policy ของ Kubernetes ถูก Translate เป็น ACI Contract, Pod-to-VM, Pod-to-Physical traffic ใช้ Policy เดียวกัน, ทำ Microsegmentation ถึงระดับ Pod/Namespace

# ACI CNI Plugin Architecture:
# - acc-provision: สร้าง ACI objects สำหรับ K8s cluster
# - aci-containers-controller: Sync K8s resources → ACI
# - aci-containers-host-agent: Manage OVS bridge on nodes
# - opflex-agent: Push Policy จาก ACI ไปที่ Node

# ติดตั้ง:
# 1. สร้าง ACI objects (Tenant, VRF, BD, EPG) สำหรับ K8s
acc-provision -a -c acc-provision-config.yaml -f k8s-flavor -u admin -p password

# 2. Deploy ACI CNI บน Kubernetes cluster
kubectl apply -f aci-containers.yaml

# 3. Kubernetes Namespace → EPG mapping
# Namespace "production" → EPG "kube-production"
# Namespace "staging" → EPG "kube-staging"

ACI vs NSX — เปรียบเทียบ

คุณสมบัติ Cisco ACI VMware NSX
Architecture Hardware-based (Nexus 9000) Software-based (Overlay on any hardware)
Controller APIC (Physical appliance) NSX Manager (VM)
Topology Spine-Leaf (fixed) Any topology (overlay)
Hardware Lock-in Cisco Nexus 9000 only Any x86 hardware
Microsegmentation EPG + Contracts Distributed Firewall rules
Multi-tenancy Tenant model (strong isolation) Projects / VPC
L4-L7 Services Service Graph (redirect traffic) NSX Gateway Firewall + Partner SVM
Multi-cloud ACI Anywhere (AWS, Azure) NSX Cloud (AWS, Azure)
Kubernetes ACI CNI Plugin NCP (NSX Container Plugin) / Antrea
Strengths Hardware performance, Unified physical+virtual policy Flexibility, No hardware lock-in, Strong microsegmentation
Cost สูง (Nexus hardware + ACI license) สูง (NSX license per CPU)
Best For Cisco-centric DC, High-performance needs Multi-vendor DC, VM-heavy environments

ACI Automation — Ansible, Terraform, Python

Ansible

# playbook: create_tenant.yml
- name: Create ACI Tenant
  hosts: apic
  connection: local
  gather_facts: no
  collections:
    - cisco.aci

  tasks:
    - name: Create Tenant
      aci_tenant:
        host: "{{ apic_host }}"
        username: "{{ apic_user }}"
        password: "{{ apic_pass }}"
        validate_certs: no
        tenant: Production
        description: "Production Tenant"
        state: present

    - name: Create VRF
      aci_vrf:
        host: "{{ apic_host }}"
        username: "{{ apic_user }}"
        password: "{{ apic_pass }}"
        validate_certs: no
        tenant: Production
        vrf: Prod-VRF
        state: present

    - name: Create Bridge Domain
      aci_bd:
        host: "{{ apic_host }}"
        username: "{{ apic_user }}"
        password: "{{ apic_pass }}"
        validate_certs: no
        tenant: Production
        bd: Web-BD
        vrf: Prod-VRF
        state: present

    - name: Create EPG
      aci_epg:
        host: "{{ apic_host }}"
        username: "{{ apic_user }}"
        password: "{{ apic_pass }}"
        validate_certs: no
        tenant: Production
        ap: Production-AP
        epg: Web-EPG
        bd: Web-BD
        state: present

Terraform

# main.tf
terraform {
  required_providers {
    aci = {
      source = "CiscoDevNet/aci"
      version = "~> 2.0"
    }
  }
}

provider "aci" {
  username = var.apic_user
  password = var.apic_pass
  url      = var.apic_url
  insecure = true
}

resource "aci_tenant" "production" {
  name        = "Production"
  description = "Production Tenant managed by Terraform"
}

resource "aci_vrf" "prod_vrf" {
  tenant_dn   = aci_tenant.production.id
  name        = "Prod-VRF"
}

resource "aci_bridge_domain" "web_bd" {
  tenant_dn          = aci_tenant.production.id
  name               = "Web-BD"
  relation_fv_rs_ctx = aci_vrf.prod_vrf.id
}

resource "aci_application_profile" "prod_ap" {
  tenant_dn = aci_tenant.production.id
  name      = "Production-AP"
}

resource "aci_application_epg" "web_epg" {
  application_profile_dn = aci_application_profile.prod_ap.id
  name                   = "Web-EPG"
  relation_fv_rs_bd      = aci_bridge_domain.web_bd.id
}

Python (Cobra SDK / REST API)

# Python REST API Example
import requests
import json

APIC_URL = "https://apic.example.com"
USERNAME = "admin"
PASSWORD = "password"

# Login
login_url = f"{APIC_URL}/api/aaaLogin.json"
login_data = {"aaaUser": {"attributes": {"name": USERNAME, "pwd": PASSWORD}}}
session = requests.Session()
resp = session.post(login_url, json=login_data, verify=False)
token = resp.json()["imdata"][0]["aaaLogin"]["attributes"]["token"]
session.headers.update({"Cookie": f"APIC-cookie={token}"})

# Create Tenant
tenant_url = f"{APIC_URL}/api/mo/uni.json"
tenant_data = {
    "fvTenant": {
        "attributes": {"name": "PythonTenant", "descr": "Created by Python"},
        "children": [
            {"fvCtx": {"attributes": {"name": "Python-VRF"}}},
            {"fvBD": {
                "attributes": {"name": "Python-BD"},
                "children": [
                    {"fvRsCtx": {"attributes": {"tnFvCtxName": "Python-VRF"}}},
                    {"fvSubnet": {"attributes": {"ip": "10.10.10.1/24", "scope": "public"}}}
                ]
            }}
        ]
    }
}
resp = session.post(tenant_url, json=tenant_data, verify=False)
print(f"Create Tenant: {resp.status_code}")

ACI Troubleshooting

ACI มีเครื่องมือ Troubleshooting ที่ทรงพลังหลายตัว:

Health Score: ทุก Object ใน ACI มี Health Score (0-100) ที่คำนวณจาก Faults ทั้งหมดที่เกี่ยวข้อง ช่วยระบุปัญหาได้เร็ว ดูได้ที่ Dashboard หรือ Tenant/EPG level

Endpoint Tracker: ติดตาม Endpoint ทุกตัวใน Fabric ว่าอยู่ที่ Leaf/Port/VLAN/EPG ไหน ย้ายไปที่ไหน เมื่อไหร่ เข้าถึงได้ที่ Operations > EP Tracker

Atomic Counters: นับ Packets ระหว่าง EPG คู่ใดๆ แสดง Source EPG, Destination EPG, Packet count, Byte count, Drop count ช่วยวิเคราะห์ว่า Traffic ถูก Drop ที่ไหน

SPAN/ERSPAN: Mirror traffic จาก Port/EPG ไปยัง Packet analyzer (Wireshark) เพื่อ Deep packet inspection

Troubleshooting Wizard: APIC GUI มี Troubleshooting wizard ที่ช่วย Trace path ระหว่าง 2 endpoints แสดงว่า Traffic ผ่าน Switch/Port/Policy อะไรบ้าง ช่วยระบุ Configuration error ได้

ACI Certifications

Cisco มี Certifications ที่เกี่ยวข้องกับ ACI:

Certification Level รายละเอียด
CCNA Associate พื้นฐาน Network (มีเนื้อหา SDN/ACI เล็กน้อย)
CCNP Data Center Professional 300-620 DCACI (Implementing Cisco ACI) เป็น 1 ใน Concentration exams
CCIE Data Center Expert Lab exam ที่ต้อง Configure ACI Fabric จริง
Cisco DevNet Associate/Professional Associate/Professional ACI Automation ด้วย Python, Ansible, Terraform

แนวทางเรียน ACI: เริ่มจาก Cisco ACI Simulator (ACISIM) บน VMware หรือ Cisco dCloud (free lab) ศึกษา ACI Object Model ให้เข้าใจ (Tenant, VRF, BD, EPG, Contract) ฝึก Lab ตั้งค่าจริงบน Simulator ศึกษา Automation ด้วย Ansible/Python สอบ 300-620 DCACI สำหรับ CCNP Data Center

สรุป

Cisco ACI เปลี่ยนแนวคิดการจัดการ Data Center Network จาก Device-centric มาเป็น Application-centric ด้วย Spine-Leaf architecture ที่ให้ Performance สูง, EPG-based microsegmentation ที่ Security ดี, Service Graph ที่แทรก Firewall/LB ได้ง่าย, Multi-site/Multi-cloud ที่ขยายได้ทั่วโลก และ Automation ด้วย Ansible/Terraform/Python ที่จัดการ Network เป็น Code ได้

ACI เหมาะกับองค์กรที่มี Data Center ขนาดกลางถึงใหญ่ ต้องการ Centralized management, Strong microsegmentation, และ Automation capabilities แม้ต้นทุนจะสูง (Nexus 9000 hardware + ACI license) แต่สำหรับองค์กรที่ใช้ Cisco เป็นหลัก ACI ให้ ROI ที่ดีจากการลดเวลา Provisioning, ลด Human error, และเพิ่ม Security visibility อย่างมาก

.

.
.
.

จัดส่งรวดเร็วส่งด่วนทั่วประเทศ
รับประกันสินค้าเคลมง่าย มีใบรับประกัน
ผ่อนชำระได้บัตรเครดิต 0% สูงสุด 10 เดือน
สะสมแต้ม รับส่วนลดส่วนลดและคะแนนสะสม

© 2026 SiamLancard — จำหน่ายการ์ดแลน อุปกรณ์ Server และเครื่องพิมพ์ใบเสร็จ

SiamLancard
#ffffff
Free Forex EA — XM Signal · SiamCafe Blog · SiamLancard · Siam2R · iCafeFX
Partner Sites: iCafe Forex | SiamCafe | SiamLancard | Siam2R | XM Signal | iCafe Cloud
iCafeForex.com - สอนเทรด Forex | SiamCafe.net
Shopping cart
Partner Sites: iCafeForex | SiamCafe | Siam2R | XMSignal