
Policy-Based Routing/Redirect (PBR) คือเทคนิคบังคับเส้นทางทราฟฟิกตาม Policy แทนที่จะยึดตามเส้นทางปกติจาก routing table เพียงอย่างเดียว เราจึงเลือกให้เฉพาะทราฟฟิกที่ตรงเงื่อนไขเช่น Protocol/Port/Source-Destination ถูกส่งไปตรวจสอบหรือประมวลผลผ่านอุปกรณ์ความปลอดภัยเช่น Firewall ได้
โดยบน ACI, PBR จะทำงานร่วมกับ Contract/Filter เพื่อจับทราฟฟิกระดับ L3/L4 และ Service Graph เพื่อ Redirect เฉพาะทราฟฟิกที่ตรงเงื่อนไขไปยัง next-hop ของอุปกรณ์บริการ เช่น Firewall พร้อมทั้งยังมีความสามารถในการทำ Health-check, Load-sharing, และ Failover ที่สวิตช์ ACI จัดการให้โดยตรง
ในบทความนี้จะพาไปดูการตั้งค่า PBR แบบ One-arm ตั้งค่าตั้งแต่การสร้าง L4-L7 Device ,Interfaces/Encap vlan, การสร้าง Service Graph และ Redirect Policy ไปจนถึงกำหนด Contract/Filter และ Apply Service Graph ระหว่าง Consumer/Provider สามารถดูขั้นตอนและวิธีการจากบทความด้านล่างได้เลยครับ
การ Config PBR บน Cisco ACI
1. สร้าง Vlan pool ที่ใช้เชื่อมต่อกับ Firewall
2. สร้าง Physical Domain และผูกกับ AAEP จากนั้น Apply บน Interface ที่ไปยัง Firewall
3. สร้าง Bridge Domains เชื่อมต่อกับ Firewall โดยไปยัง Tenants > Networking > Bridge Domains สร้าง Bridge Domains และใส่ Subnet ที่เชื่อมต่อ Firewall
4. สร้าง Contract และ Filters โดยในส่วนนี้สามารถข้ามไปได้โดยไปสร้างในขั้นตอน Apply L4-L7 Service Graph Template ได้เช่นกัน โดยการสร้างไปยัง Tenants >Contract โดยดำเนินการสร้าง Contract และ Contract Subject ตามปกติและสร้าง Filter ในส่วนของ Filter ให้สร้างจับทราฟฟิกที่จะถูก Redirect ต้องระบุ EtherType = IP ไม่งั้นฮาร์ดแวร์จะไม่สามารถผูกเงื่อนไข L3/L4 (เช่น TCP/UDP/ICMP และพอร์ต) เพื่อสั่ง Redirect ไปที่ Firewall ได้
5. สร้าง Service Device โดยไปยัง Tenants > Service > L4-L7 > Devices > Create L4-L7 Devices โดยใส่ข้อมูลที่ระบบต้องการ
Name:ชื่อ logical device
Service Type:Firewall
Device Type:Physical
Physical Domain:Physical Domain ที่ผูก VLAN pool/AAEP/Leaf ports ที่อุปกรณ์เสียบอยู่ เพื่อให้ APIC สามารถ “ติดแท็ก VLAN (Encap)” ลงพอร์ตนั้นได้
Function Type:เลือกเป็นGoTo = one-arm / Policy-Based Redirect (PBR) → ทราฟฟิกถูกรีไดเรกต์ไปที่ FW แล้ว “กลับเข้าระบบเดิม” โดยไม่ต้องวาง FW inline (ใช้คู่กับ Redirect Policy)
Devices:ใส่ Name ที่ต้องการเช่นชื่อ Firewall และเลือก Interface ที่ต่อกับ Firewall
Cluster Interfaces:ใช้กำหนดพอร์ต/Encap vlan ลง Port จากนั้นกด Submit
6. สร้าง Service Graph Templates ไปยัง Tenants > Service >L4-L7 > Service Graph Templates > Create L4-L7 Service Graph Templates ใส่ Service Graph Name ที่ต้องการแล้วลาก Devices Cluster ที่สร้างไว้ก่อนหน้าจากทางซ้ายมือมาไว้ในระหว่าง EPG Consumer และ Provider ด้านขวามือ PBR-ServiceDeviceCluster Information ใส่โหมดการทำงานของ Firewall ในที่นี้เป็น Firewall: Routed และคลิกเลือกที่ Route Redirect (✓) จากนั้นกด Submit ได้เลยครับ
7.สร้าง L4-L7 Policy-Based Redirect โดยไปที่ Tenants > Policies > L4-L7 Policy-Based Redirect โดยมีข้อมูลที่จำเป็นต้องใส่มี Name Destination Type:เลือกเป็น L3 รีไดเรกต์ไป IP next-hop , Hashing Algorithm ตาม default Source IP, Destination IP and Protocol number ได้เลย และสร้าง L3 Destination ใส่ IP และ MAC Address ของ Firewall ที่เชื่อมต่อกับ ACI ได้เลยโดยเป็น IP Subnet เดียวกันกับที่ตั้งค่าบน Bridge Domains เชื่อมต่อกับ Firewall
8.Apply Service Graph Templates ไปยัง Tenants > Service >L4-L7 > Service Graph Templates > เลือก Service Graph Templates ที่สร้างไว้แล้วกด Apply L4-L7 Service Graph Templates
ทำการใส่ข้อมูล Consumer EPG และ Provider EPG และ Contract โดยจะใช้จากที่สร้างไว้ตอนต้นหรือถ้าไม่ได้สร้างไว้สามารถเลือกเป็น New Contract ได้เลยแล้วกด Next
Consumer Connector ทำการเลือก BD เป็น BD ที่สร้างไว้เชื่อมต่อกับ Firewall แล้วเลือก Redirect Policy ที่สร้างไว้ Cluster Interface ที่ได้ทำการตั้งค่าไว้
Provider Connector ทำการเลือก BD,Redirect Policy,Cluster Interface เหมือน Consumer จากนั้นกด Finish เป็นอันเสร็จ
เมื่อไปดู Topology บน Contract ก็จะเห็นเป็นดังรูป
และเมื่อทำการ Trace route ไปจาก Consumer EPG ไปยัง Provider ก็จะเห็นว่า traffic มีการวิ่งผ่าน Firewall
ถ้าเกิดติดปัญหาอาจจะลองตรวจสอบ Config บน Firewall ก่อนว่าขา Connect กับ ACI เจอกันไหมและมี Route กับ Policy ที่ Permit ให้ Subnet จาก EPG ทั้ง 2 เจอกันแล้วหรือไม่
อ้างอิง: FortiOS Cisco ACI Administration Guide
อ้างอิง: How to Configure ACI Service Graph – PBR FW (Part 1)