Bandwidth Manager
The Bandwidth Manager is ProxRad’s bandwidth-customer billing subsystem. It manages dedicated bandwidth accounts — typically business customers, towers, or wholesale links — that are billed for a fixed pipe rather than authenticated as PPPoE subscribers. Each bandwidth customer is identified by a private IP on a MikroTik router, gets a dedicated simple queue for its speed, and can have one or more public IPs allocated from an IP block and routed to its private IP.
This is a different feature from Bandwidth Rules (the “Speed Rules” page). Keep them straight:
| Bandwidth Manager (this page) | Bandwidth Rules | |
|---|---|---|
| What it manages | Business/wholesale bandwidth customers | Time-windowed speed multipliers |
| Object created | A billed customer with a MikroTik queue + IP block | A rule that doubles/halves speed on a schedule |
| Applies to | The bandwidth customer’s own simple queue | PPPoE subscribers (global / per-service / per-NAS / per-subscriber) |
| Identity | Private IP + queue (no PPPoE auth) | n/a — it adjusts existing subscriber speeds |
| URL | /bandwidth-manager | /bandwidth |
| Permissions prefix | bandwidth_customers.* | bandwidth.* |
In short: Bandwidth Manager is who you bill for a pipe; Bandwidth Rules is when speeds change on a clock.
How to get here
Section titled “How to get here”Sidebar → Bandwidth Manager. Direct URL: /bandwidth-manager.
- List page:
/bandwidth-manager - Add a customer:
/bandwidth-manager/new - Customer detail (tabs):
/bandwidth-manager/:id - Edit a customer:
/bandwidth-manager/:id/edit
Requires bandwidth_customers.view to load. Other actions are gated by their own permissions — see Permissions.
Concepts
Section titled “Concepts”Bandwidth customer
Section titled “Bandwidth customer”A bandwidth customer is a row in the bandwidth_customers table. Unlike a PPPoE subscriber there is no username/password and no RADIUS authentication by default — the customer is matched by its private IP on a NAS, and shaped by a MikroTik simple queue. Each customer carries:
- Contact info: name (required), contact person, phone, email, address, notes.
- Connection: private IP (required), subnet mask, gateway, NAS/router, interface, optional VLAN ID, and an auto-generated queue name.
- Public IP allocation (optional): one or more public IPs plus subnet + gateway.
- Speed: download/upload in kb, optional CDN download/upload, and a speed source (
queueorradius). - Burst, FUP (daily + monthly), and billing (price, cycle, start/expiry dates, auto-renew).
- Status:
active,suspended, orexpired.
The list page shows summary stats across all customers: Total, Active, Suspended, Online, and Revenue (sum of price over active customers).
Queues and speed source
Section titled “Queues and speed source”When a customer has a NAS assigned, the backend creates/updates a MikroTik simple queue named bw-<sanitized-name> (non-alphanumeric characters replaced with -, capped at 60 chars). Speeds are stored and entered in kb (e.g. 2000 = 2 Mbps); the UI formats 1000+ as M and 1000000+ as G.
The Speed Source field offers two modes:
- Simple Queue (
queue, the default) — speed is enforced by a MikroTik simple queue on the customer’s IP. - RADIUS (CoA) (
radius) — speed is delivered via radcheck/radreply + CoA disconnect.
Optional burst/shaping lets you set burst download/upload, burst thresholds, and a burst time (seconds). Queue create/update runs asynchronously after save, so it takes a moment to reflect on the router.
IP blocks and public IP allocation
Section titled “IP blocks and public IP allocation”Public IPs come from IP blocks (/bw-ip-blocks API; created inline from the customer edit screen via the IP-pool picker). A block is defined by a name and an IPv4 CIDR (only IPv4 is supported), with an optional gateway:
- On creation the backend parses the CIDR, rejects overlap with existing blocks, computes the subnet mask, and counts usable IPs (total minus network and broadcast; minus the gateway if it falls inside the block).
- It then auto-generates one allocation row per usable host, each marked
available(orgatewayfor the gateway address). Allocations are created in batches.
Assigning an IP to a customer flips the allocation to assigned, records the customer ID and timestamp, sets the customer’s public_ip / ip_block_id / ip_allocation_id, and bumps the block’s used count. Releasing an IP reverses this. A block cannot be deleted while any IP is still assigned — release them first.
On the edit screen, the Public IP section has three modes:
- Disabled — no public IP.
- From IP Block — pick a block and assign IPs (Quick Assign offers
/30= 2 IPs,/29= 5 IPs,/28= 13 IPs, or “All”; or pick individually). The subnet prefix is derived from how many IPs you assign. - Manual Entry — type a public IP, subnet, and gateway directly.
Network provisioning on the NAS
Section titled “Network provisioning on the NAS”When a customer has a NAS and the relevant fields are set, saving triggers MikroTik network setup (asynchronously), in order:
- VLAN — if a VLAN ID is set on an interface, creates
vlan<ID>on that interface (commentedBW:<name>) and uses it for the IP assignment. - Gateway IP — adds the gateway IP (with CIDR prefix derived from the subnet mask) to the interface.
- Routes — adds routes for the public IPs pointing at the customer’s private IP. Multiple IPs with a non-
/32prefix get a single subnet route to the computed network address; otherwise each public IP gets a/32route.
Deleting a customer removes the queue and cleans up routes, IP addresses, and VLAN by their BW:<name> comment, and releases its public IP assignments.
Statuses
Section titled “Statuses”| Status | Meaning |
|---|---|
| active | Normal. Queue runs at the customer’s configured speed. New customers default to active. |
| suspended | Throttled. The MikroTik queue is forced to 1k/1k. Set via the Suspend action; reversed by Unsuspend (which restores the configured speed). |
| expired | Past its term. Set manually (or expected to be set by billing/expiry handling). Filterable in the list. |
FUP, burst, and usage tracking
Section titled “FUP, burst, and usage tracking”FUP is optional per customer, with separate daily and monthly quotas (in GB) and three threshold/speed tiers each (threshold as a percentage of quota, speed in kb). When usage crosses a tier, the customer’s FUP level rises and the queue speed drops to that tier’s speed. Reset FUP zeroes the daily counters and FUP level, re-baselines the queue’s byte counters so old usage isn’t re-counted, and restores the original (burst-aware) speed.
Usage data is collected every 30 seconds and exposed on the detail page tabs:
- Overview — speed, daily/monthly used, price, public IP block, connection and customer info, action buttons, and a 30-day daily-usage bar chart.
- Live Graph — polls live bandwidth via MikroTik torch on the customer’s interface/IP (every ~4 s when foregrounded, 30 s when backgrounded). Start/Stop toggle.
- Historical — hourly download/upload bytes plus peak kbps, over 24h / 7d / 30d, with PNG export.
- Sessions — Gantt-style session timeline + table (7d / 30d / 90d).
- Heatmap — day-of-week × hour-of-day usage (download / upload / combined), 7d / 30d / 90d.
Workflows
Section titled “Workflows”Create a bandwidth customer
Section titled “Create a bandwidth customer”- Click Add Customer (or open
/bandwidth-manager/new). Requiresbandwidth_customers.create. - Fill Customer Info — Name is required.
- Fill Connection (Private Link) — Customer Private IP is required; pick the NAS/Router. Optionally set subnet mask, gateway, interface, and VLAN ID. The private IP must be unique among bandwidth customers and not currently in use by an online PPPoE subscriber.
- Set Speed — Download and Upload (kb) are required and must be greater than zero. Optionally set CDN speeds and choose the Speed Source.
- Optionally configure Public IP (Disabled / From IP Block / Manual), Burst, FUP, and Billing.
- Create Customer. The queue name is auto-generated, status is set to
active, and the queue + network config are pushed to the NAS in the background.
Assign a public IP block
Section titled “Assign a public IP block”- Edit the customer and set Public IP mode to From IP Block.
- Select an existing block, or click + Add Block and enter a Name and CIDR (e.g.
198.51.100.10/28) — the block and its allocations are created on the spot. - Use Quick Assign (
/30,/29,/28, or All) or pick IPs individually, then remove any you don’t want. - Save Changes. Assigned IPs are recorded against the block, the customer’s
public_ipis set (comma-separated), and routes for those IPs are added on the NAS pointing to the customer’s private IP.
To free IPs later, remove them from the customer (or delete the customer, which releases all of them). An IP block can only be deleted once it has zero assigned IPs.
Suspend / unsuspend
Section titled “Suspend / unsuspend”- Open the customer detail page. Requires
bandwidth_customers.suspend. - For an
activecustomer, click Suspend — status becomessuspendedand the MikroTik queue is throttled to 1k/1k. - For a
suspendedcustomer, click Unsuspend — status returns toactiveand the queue is restored to the configured download/upload speed.
Change speed
Section titled “Change speed”Click Change Speed on the detail page (requires bandwidth_customers.change_speed), enter new download/upload in kb, and Apply. Both must be greater than zero. The new speed is saved and pushed to the queue.
Delete
Section titled “Delete”Click Delete on the detail page (requires bandwidth_customers.delete). This removes the MikroTik queue, cleans up the customer’s routes/IP/VLAN by comment, releases its public IP assignments, and soft-deletes the record.
Permissions
Section titled “Permissions”| Permission | Effect |
|---|---|
bandwidth_customers.view | Load the list, stats, detail, usage, sessions, heatmap, and IP-block listings. |
bandwidth_customers.create | Create a bandwidth customer; create an IP block. |
bandwidth_customers.edit | Update a customer; assign / release IPs from a block. |
bandwidth_customers.delete | Delete a customer; delete an IP block. |
bandwidth_customers.suspend | Suspend and unsuspend (throttle to / restore from 1k/1k). |
bandwidth_customers.reset_fup | Reset daily FUP counters and restore speed. |
bandwidth_customers.change_speed | Change a customer’s speed. |
bandwidth_customers.view_graph | Live bandwidth graph, hourly history, and heatmap. |
Related pages
Section titled “Related pages”- Bandwidth Rules — time-windowed speed multipliers for PPPoE subscribers. Not the same as this page (see the comparison table above).
- NAS / Routers — defines the MikroTik routers where bandwidth-customer queues, VLANs, IP addresses, and routes are provisioned.
- Services — service plans for PPPoE subscribers (the other speed/FUP model in the system).
- Subscribers — PPPoE subscriber accounts; a bandwidth customer’s private IP cannot collide with an online subscriber’s IP.