mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2026-11-02 08:10:02 -06:00
5.6 KiB
5.6 KiB
Recipe: Education / University Per-IP Shaping for Stable Real-Time Calls
Use this pattern when a school, college, or university wants to reduce Zoom/Teams/WebRTC freezing and lag during busy windows by shaping per IP.
Fit
- Best for: campuses where endpoint fairness matters and client IP inventory can be refreshed on a schedule.
- Avoid when: the institution cannot maintain reliable IP-to-parent mapping updates.
Why Per-IP in Education Networks
Per-IP shaping is usually the right default in education environments because:
- student and staff traffic is highly mixed and bursty
- real-time conferencing and bulk traffic often compete on the same uplinks
- per-IP circuits reduce flow domination and improve fairness during peak contention
LibreQoS Behavior Assumptions
This recipe assumes current LibreQoS behavior:
- shaped circuits typically use
HTB+cake diffserv4 - undefined traffic is pass-through (not moved into an HTB default queue)
- per-IP coverage quality directly affects how much traffic receives shaping
Per-IP ShapedDevices.csv Design Patterns
Treat ShapedDevices.csv as generated data from your local automation, not a hand-maintained spreadsheet.
Recommended patterns:
- one circuit per managed client IP
- stable
Circuit IDformat so updates are deterministic (for example<site>-<vlan>-<ip>) - stable
Parent Nodemapping to operational bottleneck domains (for example building/floor/AP group) - explicit stale-entry policy for DHCP churn (remove IPs no longer present)
- duplicate-IP and conflicting-parent checks before publishing updates
- deterministic output ordering so diffs are clean and reviewable
Example row:
Circuit ID,Circuit Name,Device ID,Device Name,Parent Node,Parent Node ID,Anchor Node ID,MAC,IPv4,IPv6,Download Min Mbps,Upload Min Mbps,Download Max Mbps,Upload Max Mbps,Comment,sqm
UNI-BLDG-A-10.40.12.77,BLDG-A-10.40.12.77,UNI-BLDG-A-10.40.12.77,Host-10.40.12.77,BLDG-A,,10.40.12.77,,1,1,150,60,Education per-IP circuit,cake
Script-Your-Own Sync Workflow (Meraki/UniFi/Custom)
Most education institutions should script this themselves because each network is unique.
Suggested workflow:
- Collect source data from your systems (for example Meraki Dashboard API, UniFi Network API, DHCP/IPAM exports).
- Normalize into a single intermediate model:
- client IP
- parent/bottleneck domain
- optional role metadata (staff lab, student dorm, classroom, voice endpoint)
- Generate deterministic
ShapedDevices.csvoutput. - Run pre-publish checks:
- duplicate IP detection
- empty/missing parent checks
- unexpected add/remove volume thresholds
- Compare generated output to current production file and review the diff.
- Publish updates on a fixed cadence with logging (for example every 5-15 minutes, based on DHCP churn and operational tolerance).
- Keep last-known-good file for rapid rollback.
Operational guidance:
- Start simple. Reliable coverage beats over-complex enrichment.
- Prefer predictable, reversible sync jobs over ad-hoc manual edits.
- Alert on sync failures so gaps do not silently create pass-through traffic.
DSCP and diffserv4 Guidance for Conferencing
With cake diffserv4:
- preserve trusted DSCP markings where your policy allows
- if you remark traffic, keep rules narrow and intentional
- avoid broad over-prioritization that starves normal campus traffic
- remember unmarked traffic still works, but priority behavior depends on effective codepoints
See HTB + fq-codel / CAKE for full queueing details.
Rollout Playbook
- Select one pilot domain (for example one building or dorm).
- Enable per-IP generated circuits for that domain only.
- Observe busy-hour behavior and support-ticket trends.
- Expand in phases to additional domains.
- Keep phased rollback boundaries so you can revert one domain at a time if needed.
Validation Checklist (UI-Only)
Validate in LibreQoS UI (no Linux tc CLI required):
- No new errors or urgent health warnings after sync/apply.
- Expected circuit counts appear for the pilot scope.
- Dashboard views reflect the intended shaped domains.
- Call-quality complaint rate trends down during peak windows.
- No large unexplained growth in undefined/pass-through traffic indicators.
Troubleshooting Matrix (UI-First)
| Symptom | Common cause | Check in UI | Corrective action |
|---|---|---|---|
| Zoom/Teams freezing at peak | Coverage gaps from missing IPs, so traffic bypasses shaping | Errors/warnings, circuit counts, affected-domain dashboards | Fix sync coverage, republish ShapedDevices.csv, validate counts |
| Audio robotic/choppy while throughput seems fine | Mixed-flow contention and priority mismatch | Domain/circuit behavior in peak windows | Refine DSCP policy and verify cake diffserv4 assumptions |
| One dorm/building degrades others | Parent grouping does not match real contention domains | Parent-node distribution and impacted-domain views | Adjust parent mapping model in sync logic |
| Quality regresses after DHCP churn events | stale or duplicated entries in generated data | sudden count shifts after sync cycles | tighten stale cleanup and duplicate checks |
| Intermittent improvements only | sync cadence too slow for address churn | timing correlation between sync and incidents | increase sync cadence and add failure alerts |