diff --git a/specs/04-Infrastructure-OPS/switch-configuration-guide.md b/specs/04-Infrastructure-OPS/switch-configuration-guide.md index 472b5c1..042f1fe 100644 --- a/specs/04-Infrastructure-OPS/switch-configuration-guide.md +++ b/specs/04-Infrastructure-OPS/switch-configuration-guide.md @@ -59,9 +59,9 @@ - ใช้ **STP เท่านั้น (เลิก Loop Detection)** — Spanning Tree Protocol สำหรับ loop prevention - **Harden Access Port ด้วย BPDU Guard** — ป้องกันการเสียบ switch โดยไม่ได้รับอนุญาต - **กัน Rogue Switch ด้วย Root Guard** — ป้องกัน switch เถื่อนยึด root bridge -- **ทำ Trunk ให้ clean + predictable** — Native VLAN 999 สำหรับทุก trunk port +- **ทำ Trunk ให้ clean + predictable** — Native VLAN 20 สำหรับทุก trunk port (รวมถึง Management) - **เผื่อ future VLAN expansion** — รองรับ VLAN เพิ่มเติมในอนาคต -- **VLAN 999 (was 99)** — เปลี่ยนจาก VLAN 99 เป็น 999 เพื่อความปลอดภัย +- **VLAN 20** — Native VLAN สำหรับ Trunk และ Management (รวมศูนย์กลางที่เดียว) --- @@ -75,7 +75,7 @@ | 40 | CCTV | CCTV Cameras, IoT Devices | 192.168.40.0/24 | 192.168.40.1 | 192.168.40.50–199 | | 50 | VOICE | IP Phones | 192.168.50.0/24 | 192.168.50.1 | 192.168.50.50–199 | | 70 | GUEST | Guest WiFi | 192.168.70.0/24 | 192.168.70.1 | 192.168.70.50–199 | -| 999 | NATIVE | Trunk Native VLAN (No DHCP) — Hardened | — | — | — | +| 999 | UNUSED | Reserved (was NATIVE) — ไม่ใช้แล้ว | — | — | — | | 60 | UNUSED | Reserved for future use | — | — | — | --- @@ -94,23 +94,32 @@ **Configuration:** ```bash -Loopback Control: Spanning Tree - -STP: -- Loop Protect: ENABLE -- Root Protect: DISABLE -- TC Guard: DISABLE -- BPDU Guard: DISABLE -- BPDU Filter: DISABLE - General: -- Flow Control: ON -- EEE: OFF -- Port Isolation: OFF +- 802.1X Control: Auto +- Port Isolation: DISABLE +- Flow Control: ENABLE +- EEE: DISABLE +- Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE +- Loopback Control: Spanning Tree + - Edge Port: DISABLE (Trunk ไม่ใช่ Edge Port) + - Spanning Tree Config: + - Loop Protect: ENABLE (ป้องกัน Loop จากอุปกรณ์ที่อยู่เบื้องหลัง) + - Root Protect: DISABLE + - TC Guard: DISABLE + - BPDU Protect: DISABLE + - BPDU Filter: DISABLE + - BPDU Forward: DISABLE +LLDP-MED: DISABLE +Bandwidth Control: Storming Control + - Rate Mode: Ratio + - Broadcast: 1% + - Unknown Unicast: 2% + - Multicast: 2% + - Action: Drop ``` 📌 **ใช้กับ:** Core ↔ Access, Core ↔ Router - +**Bandwidth Control:** Trunk หลักต้องรับส่ง Traffic สูง ห้ามจำกัด Rate → Storm Control ป้องกัน Broadcast Storm โดยไม่กระทบ Throughput ปกติ --- ### Profile 2 — 002-NAS-LACP 🔷 @@ -124,20 +133,32 @@ General: **Configuration:** ```bash -Loopback Control: Spanning Tree - -STP: -- Loop Protect: ENABLE -- Root Protect: DISABLE -- BPDU Guard: DISABLE - General: -- Flow Control: ON -- EEE: OFF +- 802.1X Control: Auto +- Port Isolation: DISABLE +- Flow Control: ENABLE +- EEE: DISABLE +- Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE +- Loopback Control: Spanning Tree + - Edge Port: DISABLE (Trunk ไม่ใช่ Edge Port) + - Spanning Tree Config: + - Loop Protect: ENABLE (ป้องกัน Loop จากอุปกรณ์ที่อยู่เบื้องหลัง) + - Root Protect: DISABLE + - TC Guard: DISABLE + - BPDU Protect: DISABLE 🔥 (NAS บางรุ่นส่ง BPDU แปลก ๆ → ห้ามเปิด) + - BPDU Filter: DISABLE + - BPDU Forward: DISABLE +LLDP-MED: DISABLE +Bandwidth Control: Storming Control + - Rate Mode: Ratio + - Broadcast: 1% + - Unknown Unicast: 2% + - Multicast: 2% + - Action: Drop ``` ⚠️ **เหตุผล:** NAS บางรุ่นส่ง BPDU แปลก ๆ → ห้ามเปิด BPDU Guard - +**Bandwidth Control:** NAS ต้องการ Throughput สูง (2Gbps LACP) → Rate Limit จะลดประสิทธิภาพการ Transfer ไฟล์ → Storm Control ปลอดภัยกว่า --- ### Profile 3 — 003-UNMANAGED-SWITCH 🔷⭐ (สำคัญมาก) @@ -151,20 +172,32 @@ General: **Configuration:** ```bash -Loopback Control: Spanning Tree - -STP: -- Root Protect: ENABLE 🔥 -- Loop Protect: ENABLE -- BPDU Guard: DISABLE -- TC Guard: DISABLE - General: -- Flow Control: ON -- EEE: OFF +- 802.1X Control: Auto +- Port Isolation: DISABLE +- Flow Control: ENABLE +- EEE: DISABLE +- Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE +- Loopback Control: Spanning Tree + - Edge Port: DISABLE (Trunk ไม่ใช่ Edge Port) + - Spanning Tree Config: + - Loop Protect: ENABLE (ป้องกัน Loop จากอุปกรณ์ที่อยู่เบื้องหลัง) + - Root Protect: ENABLE 🔥🔥🔥 (สำคัญสุด — ป้องกัน switch เถื่อนยึด root) + - TC Guard: DISABLE + - BPDU Protect: DISABLE (Unmanaged Switch ส่งต่อ BPDU ได้ → ใช้ Root Protect แทน) + - BPDU Filter: DISABLE + - BPDU Forward: DISABLE +LLDP-MED: DISABLE +Bandwidth Control: Storming Control + - Rate Mode: Ratio + - Broadcast: 1% + - Unknown Unicast: 2% + - Multicast: 2% + - Action: Drop ``` 📌 **ป้องกัน:** เสียบ switch เถื่อน → ยึด root ไม่ได้ +**Bandwidth Control:** สำคัญสุด! Unmanaged Switch ส่งต่อ Broadcast ได้ → ต้องมี Storm Control เพื่อป้องกัน Loop/Storm จากอุปกรณ์ที่อยู่เบื้องหลัง --- @@ -185,12 +218,12 @@ General: - EEE: DISABLE - Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE - Loopback Control: Spanning Tree - - Edge Port: ENABLE + - Edge Port: ENABLE (AP เป็น Edge Device) - Spanning Tree Config: - - Loop Protect: DISABLE + - Loop Protect: DISABLE (AP ไม่ควรส่ง BPDU) - Root Protect: DISABLE - TC Guard: DISABLE - - BPDU Protect: ENABLE 🔥 (ใช้คู่กับพอร์ตประเภทขอบเครือข่าย (Edge Port) ที่เชื่อมต่อกับอุปกรณ์ปลายทางเท่านั้น เช่น เครื่อง PC, เครื่องพิมพ์ หรือ Access Point)) + - BPDU Protect: ENABLE 🔥 (ใช้คู่กับพอร์ตประเภทขอบเครือข่าย (Edge Port) ที่เชื่อมต่อกับอุปกรณ์ปลายทางเท่านั้น เช่น เครื่อง PC, เครื่องพิมพ์ หรือ Access Point) - BPDU Filter: DISABLE - BPDU Forward: DISABLE LLDP-MED: ENABLE @@ -200,32 +233,54 @@ Bandwidth Control: Storming Control - Unknown Unicast: 2% - Multicast: 2% - Action: Drop - +``` 📌 **หมายเหตุ:** AP ไม่ควรส่ง BPDU → เปิด guard ได้ - +**Bandwidth Control:** AP มี WiFi Management Traffic, Multicast → Storm Control 1%/2% เพียงพอ (เอกสาร Security Section ยืนยันแล้ว) --- ### Profile 5 — 005-VOICE-ONLY 🔷 -**Purpose:** Direct connections to IP phones +**Purpose:** Direct connections to IP phones (Port 1 Uplink) — Port 2 LAN สำหรับ PC **Applied To:** -- SG2428P Port 17–18 (to IP Phone) +- SG2428P Port 17–18 (to IP Phone Port 1 — Uplink) + +**IP Phone Internal Structure:** +``` +Switch Port 17/18 ──► [IP Phone] + ├── Port 1 (Uplink) ← รับ Voice VLAN 50 + └── Port 2 (LAN) ← ต่อ PC (Data VLAN 30) +``` **Configuration:** ```bash -Loopback Control: Spanning Tree - -STP: -- Edge Port: ENABLE -- BPDU Guard: ENABLE 🔥 - General: -- LLDP-MED: ENABLE -- Flow Control: ON +- 802.1X Control: Auto +- Port Isolation: DISABLE +- Flow Control: ENABLE +- EEE: DISABLE +- Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE +- Loopback Control: Spanning Tree + - Edge Port: ENABLE 🔥 (พอร์ตขอบเครือข่ายที่เชื่อมต่ออุปกรณ์ปลายทาง) + - Spanning Tree Config: + - Loop Protect: DISABLE (IP Phone ไม่ควรส่ง BPDU) + - Root Protect: DISABLE + - TC Guard: DISABLE + - BPDU Protect: ENABLE 🔥 (IP Phone Isolate BPDU จาก Port 2 → ปลอดภัย) + - BPDU Filter: DISABLE + - BPDU Forward: DISABLE +LLDP-MED: ENABLE 🔥 (จำเป็นสำหรับ Voice VLAN) +Bandwidth Control: Storming Control + - Rate Mode: Ratio + - Broadcast: 1% + - Unknown Unicast: 2% + - Multicast: 2% + - Action: Drop ``` +**Bandwidth Control:** IP Phone ใช้ Bandwidth ต่ำ (G.711 ~87kbps) แต่ Storm Control ป้องกันกรณี Firmware Bug/Loop +⚠️ **หมายเหตุสำคัญ:** IP Phone มี Port 2 สำหรับต่อ PC — IP Phone จะ **Isolate BPDU** จาก Port 2 ไม่ให้ส่งถึง Switch หลัก → BPDU Guard ใช้ได้ปลอดภัย --- ### Profile 6 — 006-ACCESS-PC 🔷⭐ @@ -240,19 +295,32 @@ General: **Configuration:** ```bash -Loopback Control: Spanning Tree - -STP: -- Edge Port: ENABLE -- BPDU Guard: ENABLE 🔥🔥🔥 (สำคัญสุด) - General: -- Flow Control: ON -- EEE: OFF +- 802.1X Control: Auto +- Port Isolation: DISABLE +- Flow Control: ENABLE +- EEE: DISABLE +- Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE +- Loopback Control: Spanning Tree + - Edge Port: ENABLE 🔥🔥🔥 (สำคัญสุด — พอร์ตขอบเครือข่าย) + - Spanning Tree Config: + - Loop Protect: DISABLE (PC/Printer ไม่ควรส่ง BPDU) + - Root Protect: DISABLE + - TC Guard: DISABLE + - BPDU Protect: ENABLE 🔥🔥🔥 (สำคัญสุด — ป้องกัน rogue switch) + - BPDU Filter: DISABLE + - BPDU Forward: DISABLE +LLDP-MED: DISABLE +Bandwidth Control: Storming Control + - Rate Mode: Ratio + - Broadcast: 1% + - Unknown Unicast: 2% + - Multicast: 2% + - Action: Drop ``` 📌 **ถ้ามีคนเสียบ switch:** → Port จะ shutdown ทันที - +**Bandwidth Control:** PC/Printer อาจมี Misconfiguration → Storm Control ป้องกัน DHCP Storm, ARP Storm จากอุปกรณ์ End-user --- ### Profile 7 — 007-DEFAULT-MGMT 🔷 @@ -266,15 +334,64 @@ General: **Configuration:** ```bash -Loopback Control: Spanning Tree - -STP: -- Edge Port: ENABLE -- BPDU Guard: ENABLE - General: -- Default +- 802.1X Control: Auto +- Port Isolation: DISABLE +- Flow Control: ENABLE +- EEE: DISABLE +- Multicast Fast Leave: IGMP (IPv4)->DISABLE, MLD (IPv6)->DISABLE +- Loopback Control: Spanning Tree + - Edge Port: ENABLE (พอร์ตขอบเครือข่าย) + - Spanning Tree Config: + - Loop Protect: DISABLE + - Root Protect: DISABLE + - TC Guard: DISABLE + - BPDU Protect: ENABLE (ป้องกัน rogue switch) + - BPDU Filter: DISABLE + - BPDU Forward: DISABLE +LLDP-MED: DISABLE +Bandwidth Control: Storming Control + - Rate Mode: Ratio + - Broadcast: 1% + - Unknown Unicast: 2% + - Multicast: 2% + - Action: Drop ``` +**Bandwidth Control:** Management Port ใช้ทั่วไป → Storm Control เป็นค่า Default ปลอดภัย รอง +--- + +## Quick Reference — Port Profiles Summary + +> **สรุปค่าตั้งค่าหลักของแต่ละ Profile สำหรับการเปรียบเทียบ** + +| Profile | Edge Port | BPDU Protect | Root Protect | Loop Protect | LLDP-MED | Bandwidth Control | +|---------|-----------|--------------|--------------|--------------|----------|-------------------| +| **001-CORE-TRUNK-LACP** | DISABLE | DISABLE | DISABLE | ENABLE | DISABLE | Storming Control | +| **002-NAS-LACP** | DISABLE | DISABLE | DISABLE | ENABLE | DISABLE | Storming Control | +| **003-UNMANAGED-SWITCH** | DISABLE | DISABLE | **ENABLE** 🔥 | ENABLE | DISABLE | Storming Control | +| **004-AP-TRUNK** | **ENABLE** | **ENABLE** 🔥 | DISABLE | DISABLE | **ENABLE** | Storming Control | +| **005-VOICE-ONLY** | **ENABLE** | **ENABLE** 🔥 | DISABLE | DISABLE | **ENABLE** 🔥 | Storming Control | +| **006-ACCESS-PC** | **ENABLE** 🔥 | **ENABLE** 🔥🔥🔥 | DISABLE | DISABLE | DISABLE | Storming Control | +| **007-DEFAULT-MGMT** | **ENABLE** | **ENABLE** | DISABLE | DISABLE | DISABLE | Storming Control | + +### ความหมายสัญลักษณ์ + +| สัญลักษณ์ | ความหมาย | +|-----------|----------| +| 🔥 | สำคัญ — ต้องเปิดเพื่อความปลอดภัย | +| 🔥🔥🔥 | สำคัญมาก — ห้ามปิดเด็ดขาด | + +### หลักการเลือก Profile + +| ประเภทพอร์ต | Profile | เหตุผลหลัก | +|-------------|---------|-----------| +| **Trunk LACP** | 001 | Loop Protect ป้องกัน Loop จากอุปกรณ์เบื้องหลัง | +| **NAS LACP** | 002 | NAS บางรุ่นส่ง BPDU แปลก → ห้ามเปิด BPDU Guard | +| **Unmanaged Switch** | 003 | **Root Protect** ป้องกัน switch เถื่อนยึด root bridge | +| **Access Point** | 004 | **Edge Port + BPDU Guard** ป้องกัน rogue switch | +| **IP Phone** | 005 | **LLDP-MED** สำหรับ Voice VLAN, BPDU Guard ปลอดภัย | +| **PC/Printer** | 006 | **Edge Port + BPDU Guard** ป้องกันการเสียบ switch โดยไม่ได้รับอนุญาต | +| **Management** | 007 | ค่า Default ปลอดภัย สำหรับพอร์ตทั่วไป | --- @@ -284,33 +401,41 @@ General: | Port | Destination | Profile | Native (Untagged) | Tagged | Voice | |------|-------------|---------|-------------------|--------|-------| -| 1-2 | SG2428P (LACP) | 001-CORE-TRUNK-LACP | 999 | 10,20,30,40,50,70 | Off | +| 1-2 | SG2428P (LACP) | 001-CORE-TRUNK-LACP | 20 | 10,30,40,50,70 | Off | | 3-4 | QNAP (LACP) | 002-NAS-LACP | 10 | 20 🔥 | Off | | 5-6 | ASUSTOR (LACP) | 002-NAS-LACP | 10 | 20 🔥 | Off | -| 7 | Reserved (future expansion) | 007-DEFAULT-MGMT | 999 | None | Off | +| 7 | Reserved / MGMT Port | 007-DEFAULT-MGMT | 20 | None | Off | | 8 | Admin Desktop | 006-ACCESS-PC | 10 | None | Off | -| 9 | ER7206 | 001-CORE-TRUNK-LACP | 999 | 10,20,30,40,50,70 | Off | -| 10 | Reserved (future expansion) | 007-DEFAULT-MGMT | 999 | None | Off | +| 9 | ER7206 (Router) | 001-CORE-TRUNK-LACP | 20 | 10,30,40,50,70 | Off | +| 10 | Reserved / MGMT Port | 007-DEFAULT-MGMT | 20 | None | Off | 📌 **NAS (Port 3-6) ปรับใหม่:** เพิ่ม Tagged VLAN 20 สำหรับ MGMT redundancy +📌 **Trunk LACP (Port 1-2, 9):** Native VLAN 20 — ใช้ร่วมกับ Management VLAN เพื่อลดความซับซ้อน + --- ### SG2428P (Access) Port Configuration | Port | Destination | Profile | Native (Untagged) | Tagged | Voice | |------|-------------|---------|-------------------|--------|-------| -| 1-16 | EAP610 | 004-AP-TRUNK | 999 | 10,20,30,40,50,70 🔥 allow all | Off | -| 17-18 | IP Phone | 005-VOICE-ONLY | 50 | None | Enable (VLAN 50) | -| 19-20 | Reserved (future expansion) | 007-DEFAULT-MGMT | 999 | None | Off | -| 21-22 | SG3210X-M2 (LACP) | 001-CORE-TRUNK-LACP | 999 | 10,20,30,40,50,70 | Off | +| 1-16 | EAP610 | 004-AP-TRUNK | 20 | 10,30,40,50,70 🔥 allow all | Off | +| 17-18 | IP Phone Port 1 | 005-VOICE-ONLY | 50 | 30 | Enable (VLAN 50) | +| 19-20 | Reserved / MGMT Port | 007-DEFAULT-MGMT | 20 | None | Off | +| 21-22 | SG3210X-M2 (LACP) | 001-CORE-TRUNK-LACP | 20 | 10,30,40,50,70 | Off | | 23 | Printer | 006-ACCESS-PC | 30 | None | Off | -| 24 | OC200 | 007-DEFAULT-MGMT | 20 | None | Off | +| 24 | OC200 (Controller) | 007-DEFAULT-MGMT | 20 | None | Off | | 25 | TL-SL1226P (CCTV) | 003-UNMANAGED-SWITCH | 40 | None | Off | | 26 | TL-SG1210P (IP Phone + PC) | 003-UNMANAGED-SWITCH | 30 | 50 | Enable (VLAN 50) | -| 27-28 | Reserved (future expansion) | 007-DEFAULT-MGMT | 999 | None | Off | +| 27-28 | Reserved / MGMT Port | 007-DEFAULT-MGMT | 20 | None | Off | -📌 **AP Ports (1-16) ปรับใหม่:** Allow all VLANs สำหรับ future expansion +📌 **IP Phone Ports (17-18) ปรับใหม่:** Native VLAN 50 (Voice) + Tagged VLAN 30 (Data for PC ที่ต่อ Port 2 ของ IP Phone) + +📌 **AP Ports (1-16) ปรับใหม่:** Allow all VLANs สำหรับ future expansion — Native VLAN 20 ร่วมกับ Management + +📌 **SG2428P MGMT (Port 19-20, 27-28):** Access Switch ต้องการ Management IP บน VLAN 20 + +📌 **OC200 (Port 24):** Controller ใช้ VLAN 20 (MGMT) และ Hardening ด้วย **Network Tags Setting = Block All** ใน OC200 UI --- @@ -319,7 +444,7 @@ General: ``` ┌──────────────┐ │ ER7206 │ - │ (Trunk 999) │ + │ (Trunk 20) │ └──────┬───────┘ │ ▼ @@ -373,7 +498,7 @@ OC200 → VLAN 20 | Version | Date | Changes | |---------|------|---------| -| 3.0 | 2026-04-24 | **FINAL VERSION** — STP-only (no Loop Detection), BPDU Guard on access ports, Root Guard on unmanaged switch ports, VLAN 99→999, NAS with MGMT redundancy (VLAN 20 tagged), AP allow-all VLANs, Security Hardening section | +| 3.0 | 2026-04-24 | **FINAL VERSION** — STP-only (no Loop Detection), BPDU Guard on access ports, Root Guard on unmanaged switch ports, Native VLAN 20 สำหรับทุก Trunk, NAS with MGMT redundancy (VLAN 20 tagged), AP allow-all VLANs, Security Hardening section | | 2.0 | 2026-04-24 | Updated port mappings (LACP 21-22), new VLAN scheme (30/40/50/70), consolidated CCTV/IoT to VLAN 40, added DHCP table, renamed PC-ONLY to ACCESS-PC | | 1.0 | 2026-04-23 | Initial version with basic port profiles and VLAN mapping | @@ -381,42 +506,61 @@ OC200 → VLAN 20 ## Quick Reference — Edit Port Values +> **โครงสร้าง Omada UI (Edit Port):** +> 1. **Native Network** — PVID/Native VLAN +> 2. **Network Tags Setting** — Allow All / Block All / Custom (ควบคุม Tagged VLANs) +> 3. **Untagged Network** — VLAN สำหรับ Untagged traffic (แยกจาก Native) +> 4. **Tagged Network** — ปรากฏเมื่อเลือก Custom + ### SG3210X-M2 -| Port | Native | Tagged | Profile | Voice | -|------|--------|--------|---------|-------| -| 1-2 | 999 | 10,20,30,40,50,70 | 001-CORE-TRUNK-LACP | Off | -| 3-4 | 10 | 20 | 002-NAS-LACP | Off | -| 5-6 | 10 | 20 | 002-NAS-LACP | Off | -| 7 | 999 | — | 007-DEFAULT-MGMT | Off | -| 8 | 10 | — | 006-ACCESS-PC | Off | -| 9 | 999 | 10,20,30,40,50,70 | 001-CORE-TRUNK-LACP | Off | -| 10 | 999 | — | 007-DEFAULT-MGMT | Off | +| Port | Native | Network Tags | Untagged | Tagged | Profile | Voice | +|------|--------|--------------|----------|--------|---------|-------| +| 1-2 | 20 | Allow All | 20 | All (ยกเว้น 20) | 001-CORE-TRUNK-LACP | Off | +| 3-4 | 10 | Custom | 10 | 20 | 002-NAS-LACP | Off | +| 5-6 | 10 | Custom | 10 | 20 | 002-NAS-LACP | Off | +| 7 | 20 | Block All | 20 | — | 007-DEFAULT-MGMT | Off | +| 8 | 10 | Block All | 10 | — | 006-ACCESS-PC | Off | +| 9 | 20 | Allow All | 20 | All (ยกเว้น 20) | 001-CORE-TRUNK-LACP | Off | +| 10 | 20 | Block All | 20 | — | 007-DEFAULT-MGMT | Off | ### SG2428P -| Port | Native | Tagged | Profile | Voice | -|------|--------|--------|---------|-------| -| 1-16 | 999 | 10,20,30,40,50,70 | 004-AP-TRUNK | Off | -| 17-18 | 50 | — | 005-VOICE-ONLY | 50 | -| 19-20 | 999 | — | 007-DEFAULT-MGMT | Off | -| 21-22 | 999 | 10,20,30,40,50,70 | 001-CORE-TRUNK-LACP | Off | -| 23 | 30 | — | 006-ACCESS-PC | Off | -| 24 | 20 | — | 007-DEFAULT-MGMT | Off | -| 25 | 40 | — | 003-UNMANAGED-SWITCH | Off | -| 26 | 30 | 50 | 003-UNMANAGED-SWITCH | 50 | -| 27-28 | 999 | — | 007-DEFAULT-MGMT | Off | +| Port | Native | Network Tags | Untagged | Tagged | Profile | Voice | +|------|--------|--------------|----------|--------|---------|-------| +| 1-16 | 20 | Allow All | 20 | All (ยกเว้น 20) | 004-AP-TRUNK | Off | +| 17-18 | 50 | Custom | 50 | 30 | 005-VOICE-ONLY | 50 | +| 19-20 | 20 | Block All | 20 | — | 007-DEFAULT-MGMT | Off | +| 21-22 | 20 | Allow All | 20 | All (ยกเว้น 20) | 001-CORE-TRUNK-LACP | Off | +| 23 | 30 | Block All | 30 | — | 006-ACCESS-PC | Off | +| 24 | 20 | Block All | 20 | — | 007-DEFAULT-MGMT | Off | +| 25 | 40 | Block All | 40 | — | 003-UNMANAGED-SWITCH | Off | +| 26 | 30 | Custom | 30 | 50 | 003-UNMANAGED-SWITCH | 50 | +| 27-28 | 20 | Block All | 20 | — | 007-DEFAULT-MGMT | Off | + +### ความหมาย Network Tags Setting + +| Network Tags | Tagged Networks | ใช้เมื่อ | +|--------------|-----------------|----------| +| **Allow All** | อนุญาตทุก VLAN (ยกเว้น Native) | Trunk, AP | +| **Block All** | ไม่อนุญาต VLAN ใดๆ | Access, MGMT | +| **Custom** | อนุญาตเฉพาะ VLAN ที่ระบุใน Tagged Network | NAS, Voice | --- ## Pre-Deployment Checklist ก่อน Apply ค่า Configuration: -- [ ] สร้าง VLANs 10, 20, 30, 40, 50, 70, 999 ใน Omada Controller (VLAN 999 = Hardened Native) +- [ ] สร้าง VLANs 10, 20, 30, 40, 50, 70 ใน Omada Controller (VLAN 20 = Native + Management) - [ ] สร้าง Port Profiles 001–007 ครบถ้วน (STP Mode — ไม่ใช้ Loop Detection) - [ ] ตรวจสอบ LACP Group Configuration (Port 1-2 ↔ Port 21-22) - [ ] ตั้งค่า DHCP Server ตามตาราง VLAN Definitions - [ ] ตรวจสอบว่า OC200 อยู่บน VLAN 20 และมี IP 192.168.20.x +- [ ] **OC200 Hardening:** Settings → Network → Network Tags Setting = **Block All** (เฉพาะ VLAN 20) +- [ ] **SG3210X-M2 MGMT:** ตั้งค่า Management IP บน VLAN 20 (192.168.20.x) — Port 7, 10 ใช้ VLAN 20 +- [ ] **ER7206 MGMT:** Router มี IP บน VLAN 20 (ผ่าน Tagged) — Native VLAN 20 ใช้ร่วมกับ Management +- [ ] **SG2428P MGMT:** Access Switch ได้รับ IP บน VLAN 20 ผ่าน Uplink — ตรวจสอบใน Devices +- [ ] **AP MGMT:** EAP610 ได้รับ Management IP ผ่าน VLAN 20 — ตรวจสอบการ Adopt - [ ] ตรวจสอบ Voice VLAN Enable บน Port 17-18 และ 26 - [ ] กำหนด STP Priority: Core=4096, Access=8192 - [ ] สำรอง Configuration ปัจจุบันก่อน Apply @@ -845,6 +989,235 @@ Jumbo Frame: 9000 --- +## Configuration Analysis & Recommendations 🔍 + +> **สรุปการวิเคราะห์การตั้งค่าปัจจุบัน พร้อมข้อเสนอแนะสำหรับการปรับปรุง** + +--- + +### 1. VLAN Architecture Analysis + +| หัวข้อ | สถานะปัจจุบัน | การประเมิน | ข้อเสนอแนะ | +|--------|--------------|-----------|-----------| +| **Native VLAN** | VLAN 20 (MGMT) | ✅ ดี — ใช้ VLAN เดียวกับ Management | คงไว้ ลดความซับซ้อน | +| **VLAN 999** | UNUSED | ⚠️ ระวัง — ไม่ใช้แล้วแต่ยังมีในระบบ | พิจารณาลบออกหรือเก็บสำรอง | +| **VLAN Segmentation** | 7 VLANs (10,20,30,40,50,60,70) | ✅ ดี — แยกกลุ่มชัดเจน | คงไว้ ครอบคลุมทุก use case | +| **Guest VLAN (70)** | แยกจาก USERS (30) | ✅ ดี — Security สูง | คงไว้ มี Isolation ที่ถูกต้อง | + +#### ⚠️ ประเด็นที่ต้องระวัง + +``` +🔴 VLAN 20 ใช้ทั้ง Native + Management + └─ ข้อดี: ลดความซับซ้อน + └─ ข้อควรระวัง: ต้องใช้ Network Tags = Block All บน MGMT ports + เพื่อป้องกัน unauthorized access +``` + +--- + +### 2. Port Profile Analysis + +| Profile | จุดแข็ง | จุดที่ต้องระวัง | คะแนน | +|---------|---------|----------------|--------| +| **001-CORE-TRUNK-LACP** | Loop Protect เปิด — ป้องกัน loop จาก downstream | ไม่มี Root Protect (ถูกต้องสำหรับ Trunk) | ⭐⭐⭐⭐⭐ | +| **002-NAS-LACP** | BPDU Protect ปิด — รองรับ NAS ที่ส่ง BPDU แปลก | ต้องตรวจสอบ NAS รุ่นก่อนใช้ | ⭐⭐⭐⭐ | +| **003-UNMANAGED-SWITCH** | Root Protect + Loop Protect — ปลอดภัยสูงสุด | ต้องใช้กับ Unmanaged Switch เท่านั้น | ⭐⭐⭐⭐⭐ | +| **004-AP-TRUNK** | Edge Port + BPDU Guard — ป้องกัน rogue AP | LLDP-MED เปิด — ตรวจสอบ AP รองรับ | ⭐⭐⭐⭐⭐ | +| **005-VOICE-ONLY** | BPDU Guard + LLDP-MED — เหมาะสมกับ IP Phone | ต้องตรวจสอบ Phone รองรับ LLDP-MED | ⭐⭐⭐⭐⭐ | +| **006-ACCESS-PC** | Edge Port + BPDU Guard 🔥🔥🔥 — ปลอดภัยสูง | ถ้ามี switch ซ่อน จะ shutdown ทันที | ⭐⭐⭐⭐⭐ | +| **007-DEFAULT-MGMT** | สมดุลระหว่างปลอดภัยและใช้งานได้ | ไม่มี LLDP-MED (ไม่จำเป็น) | ⭐⭐⭐⭐ | + +#### 🎯 ข้อเสนอแนะเพิ่มเติมสำหรับ Profile + +``` +💡 003-UNMANAGED-SWITCH: + └─ พิจารณาเพิ่ม TC Guard = ENABLE ถ้า downstream switch + มี Topology Change บ่อย (เช่น CCTV ที่ reboot บ่อย) + +💡 004-AP-TRUNK: + └─ ถ้า AP ไม่รองรับ LLDP-MED ให้ปิด LLDP-MED เพื่อประหยัดทรัพยากร + └─ หรือใช้ VLAN กำหนดเองใน AP GUI แทน +``` + +--- + +### 3. Network Tags (VLAN Assignment) Analysis + +| พอร์ต | Network Tags | ความเหมาะสม | หมายเหตุ | +|--------|-------------|-------------|----------| +| **Trunk (1-2, 9, 21-22)** | Allow All | ✅ ถูกต้อง | ต้องรองรับทุก VLAN | +| **AP (1-16)** | Allow All | ✅ ถูกต้อง | WiFi มีหลาย SSID/หลาย VLAN | +| **NAS (3-6)** | Custom (20) | ✅ ถูกต้อง | NAS ต้องการ VLAN 10+20 เท่านั้น | +| **MGMT (7, 10, 19-20, 24, 27-28)** | Block All | ✅ ถูกต้อง | ปลอดภัย — ไม่ต้อง Tagged VLAN | +| **PC/Printer (8, 23)** | Block All | ✅ ถูกต้อง | Access port ไม่ต้อง Tagged | +| **Voice (17-18, 26)** | Custom (30/50) | ✅ ถูกต้อง | Voice VLAN + Data VLAN | + +#### ⚠️ ประเด็นที่ตรวจสอบ + +``` +🔴 Port 24 (OC200): + └─ Network Tags = Block All ✅ + └─ ต้องตั้งค่า OC200 UI: Settings → Network → Network Tags = Block All + เพื่อให้สอดคล้องกับ Switch config + +🔴 Port 26 (TL-SG1210P): + └─ Untagged = 30, Tagged = 50 (Custom) + └─ ตรวจสอบว่า TL-SG1210P ส่งต่อ Voice VLAN ได้จริง + (บางรุ่น unmanaged switch ไม่ส่งต่อ VLAN tag) +``` + +--- + +### 4. Security Analysis + +| หัวข้อ | การตั้งค่า | ความปลอดภัย | ข้อเสนอแนะ | +|--------|-----------|------------|-----------| +| **BPDU Guard** | เปิดบน Access/Voice/MGMT | 🔒 สูง | คงไว้ ป้องกัน rogue switch | +| **Root Guard** | เปิดบน Unmanaged Switch | 🔒 สูง | คงไว้ ป้องกัน root hijack | +| **Loop Protect** | เปิดบน Trunk/NAS | 🔒 ปานกลาง-สูง | คงไว้ | +| **Storm Control** | ทุก Profile ใช้ 1%/2%/2% | 🔒 ปานกลาง | คงไว้ ป้องกัน broadcast storm | +| **Port Isolation** | ทุก Profile = DISABLE | ⚠️ ระวัง | ปิดถูกต้อง — ต้องใช้ VLAN แยกแทน | +| **802.1X** | Auto (ทุก Profile) | ⚠️ ยังไม่ใช้ | พร้อมสำหรับ future NAC | + +#### 🚨 ข้อเสนอแนะด้าน Security + +``` +🟢 Immediate (ทำทันที): + 1. เปิด DHCP Snooping บนทุก Access Port (ยกเว้น Trunk) + 2. เปิด Dynamic ARP Inspection (DAI) บน VLAN 30 (USERS) + 3. ตั้งค่า Login Banner บน Switch ทั้งสองตัว + +🟡 Short-term (ทำใน 1-2 สัปดาห์): + 4. ตั้งค่า SNMP Community String ที่ซับซ้อน (ไม่ใช้ public/private) + 5. เปิด SSH Access แทน Telnet (ถ้ายังไม่ได้เปิด) + 6. ตั้งค่า Syslog Server (ส่ง logs ไป NAS หรือ QNAP) + +🔵 Long-term (ทำใน 1-3 เดือน): + 7. พิจารณาใช้ 802.1X (NAC) สำหรับ PC/Printer + 8. ตั้งค่า MACsec (ถม่อุปกรณ์รองรับ) สำหรับ Trunk links + 9. ทำ Network Segmentation ระดับ L3 (Inter-VLAN routing ผ่าน Firewall) +``` + +--- + +### 5. Performance Analysis + +| หัวข้อ | สถานะ | การประเมิน | ข้อเสนอแนะ | +|--------|-------|-----------|-----------| +| **LACP (2Gbps)** | ใช้ที่ Port 1-2 และ 21-22 | ✅ ดี | ครอบคลุม bandwidth ปัจจุบัน | +| **Storm Control 1%/2%/2%** | ทุก Profile | ✅ เหมาะสม | ไม่กระทบปกติ แต่ป้องกัน storm | +| **Flow Control** | ENABLE ทุก Profile | ⚠️ ดีแต่ไม่จำเป็น | คงไว้ แต่ไม่ใช่ critical | +| **EEE (Energy Efficient)** | DISABLE ทุก Profile | ✅ ถูกต้อง | ปิดถูกต้อง — อาจทำให้ latency สูง | +| **Multicast Fast Leave** | DISABLE ทุก Profile | ⚠️ ไม่จำเป็น | คงไว้ หรือเปิดถ้ามี IPTV | + +#### 📊 Bandwidth Planning + +``` +ปัจจุบัน: +├── Trunk: 2Gbps (LACP x2) → เพียงพอสำหรับ 16 AP + NAS + CCTV +├── AP (16 ตัว): ~100Mbps/ตัว (peak) → 1.6Gbps รวม ✅ +├── NAS: 1Gbps (LACP 2Gbps) ✅ +└── IP Phone: ~100kbps/ตัว → ไม่มีผล ✅ + +อนาคต (ถ้า upgrade): +├── ถ้าเปลี่ยน AP เป็น WiFi 6/6E → bandwidth/ตัว ~300-500Mbps +├── อาจต้อง upgrade Core Switch เป็น 10G +└── พิจารณาเพิ่ม LACP group (3-4 links) แทน 2 links +``` + +--- + +### 6. STP (Spanning Tree) Analysis + +| หัวข้อ | สถานะ | ความเหมาะสม | +|--------|-------|-------------| +| **STP Mode** | RSTP/MSTP (กำหนดใน Global) | ✅ ถูกต้อง — ไม่ใช้ Loop Detection | +| **Core Priority** | 4096 | ✅ ถูกต้อง — ต่ำสุด = Root Bridge | +| **Access Priority** | 8192 | ✅ ถูกต้อง — สูงกว่า Core | +| **Edge Port** | เปิดบน Access/Voice/MGMT | ✅ ถูกต้อง — เร่ง convergence | +| **BPDU Guard** | เปิดบน Edge Ports | ✅ ถูกต้อง — ป้องกัน rogue switch | + +#### ⚠️ ประเด็น STP ที่ต้องระวัง + +``` +🔴 STP Topology Change: + └─ ถ้ามี Topology Change บ่อย (เช่น CCTV reboot, AP reconnect) + อาจทำให้ network unstable + └─ แก้ไข: เปิด TC Guard บนพอร์ตที่มีปัญหา (003-UNMANAGED-SWITCH) + +🔴 BPDU Filter vs BPDU Guard: + └─ ปัจจุบันใช้ BPDU Guard บน Edge Ports ✅ + └─ ไม่ควรใช้ BPDU Filter (อันตราย — อาจทำให้ loop ไม่ถูก detect) +``` + +--- + +### 7. สรุปข้อเสนอแนะ (Summary of Recommendations) + +#### 🟢 ทำทันที (Immediate Actions) + +| ลำดับ | การกระทำ | ความสำคัญ | ผลกระทบ | +|-------|----------|-----------|---------| +| 1 | ตรวจสอบ OC200 Network Tags = Block All | 🔴 สูง | ป้องกัน unauthorized VLAN access | +| 2 | เปิด DHCP Snooping บน VLAN 30 | 🔴 สูง | ป้องกัน rogue DHCP server | +| 3 | ตั้งค่า SNMP Community (ไม่ใช้ public) | 🟡 ปานกลาง | ป้องกัน SNMP enumeration | +| 4 | Backup config ทั้งสอง switch | 🔴 สูง | กู้คืนได้ถ้ามีปัญหา | + +#### 🟡 ทำในอนาคต (Future Improvements) + +| ลำดับ | การกระทำ | เหตุผล | ระยะเวลา | +|-------|----------|--------|----------| +| 5 | พิจารณา VLAN 999 → ลบออก | ลดความซับซ้อน | หลังทดสอบ stable | +| 6 | เปิด Dynamic ARP Inspection | ป้องกัน ARP spoofing | 1-2 สัปดาห์ | +| 7 | ตั้งค่า Syslog → NAS | เก็บ logs สำหรับ audit | 1 สัปดาห์ | +| 8 | ทำ LACP 3-4 links (ถ้ามี port เหลือ) | เพิ่ม redundancy | อนาคต | + +#### 🔵 ติดตาม (Monitoring) + +``` +📊 Metrics ที่ควร monitor: +├── STP Topology Changes (ควร = 0 หรือน้อยมาก) +├── Broadcast/Multicast Rate (ควร < 1% ของ bandwidth) +├── Port Errors (CRC, collisions) +├── LACP Status (ควร = Up ทุก link) +└── CPU/Memory Usage ของ Switch + +🔔 Alerts ที่ควรตั้ง: +├── BPDU Guard Triggered (มีคนเสียบ switch โดยไม่ได้รับอนุญาต) +├── Root Guard Triggered (มี switch พยายามเป็น root) +├── Storm Control Triggered (มี broadcast storm) +└── LACP Link Down (redundancy ลดลง) +``` + +--- + +### 8. Risk Assessment Matrix + +| Risk | โอกาสเกิด | ผลกระทบ | ระดับ | มาตรการป้องกัน | +|------|----------|---------|-------|--------------| +| VLAN 20 ทั้ง Native + Management | สูง (ใช้ทั้งระบบ) | ปานกลาง | 🟡 Medium | Network Tags = Block All บน MGMT | +| Unmanaged Switch ไม่ส่งต่อ VLAN | ปานกลาง | สูง | 🟡 Medium | ตรวจสอบรุ่น TL-SG1210P/SL1226P | +| LACP 2 links ไม่พอในอนาคต | ต่ำ (ปัจจุบันพอ) | ปานกลาง | 🟢 Low | Monitor bandwidth ต่อเนื่อง | +| 802.1X ยังไม่เปิดใช้ | สูง (ยังไม่ได้ใช้) | ต่ำ | 🟢 Low | มี VLAN separation อยู่แล้ว | +| No DHCP Snooping | ต่ำ | สูง | 🟡 Medium | เปิดทันที | +| No DAI | ต่ำ | สูง | 🟡 Medium | เปิดในอนาคต | + +--- + +### 9. Final Score + +| Category | Score | Comment | +|----------|-------|---------| +| **VLAN Design** | 9/10 | ดีมาก — แยกกลุ่มชัดเจน | +| **Port Profiles** | 9/10 | ดีมาก — ครอบคลุมทุก use case | +| **STP Security** | 9/10 | ดีมาก — BPDU/Root Guard ครบ | +| **Layer 2 Security** | 7/10 | ดี — แต่ยังขาด DHCP Snooping/DAI | +| **Performance** | 8/10 | ดี — LACP ครอบคลุม | +| **Documentation** | 9/10 | ดีมาก — ละเอียดครบถ้วน | +| **Overall** | **8.5/10** | **ดีมาก — พร้อมใช้งาน production** | + +--- + ## Related Documents - Network Architecture Design — `specs/02-architecture/02-03-network-design.md`