Limit network usage per VM/Container instead of per network device?

aleksa

New Member
Oct 20, 2021
13
0
1
24
Current host & container setup:

Code:
auto lo
iface lo inet loopback

iface ens3 inet manual

auto vmbr0
iface vmbr0 inet static
        # Main Bridge - LXC with Dedicated IPv4
        address 1.1.1.2/22
        gateway 1.1.1.1
        bridge_ports ens3
        ...
# --- Dedicated IPs (v4) ------------------------------------------------------
        up ip route add 1.1.1.3/32 dev vmbr0

# --- Nat IPs (v4) ------------------------------------------------------------
# NAT bridge
auto vmbr1
iface vmbr1 inet static
        # NAT IPv4 Bridge - LXC with NAT IP
        address 10.0.0.1
        ...
        iface vmbr0 inet6 static
        address  fe:80::1:1
        netmask  128

auto vmbr2
iface vmbr2 inet6 static
        # Main IPv6 Bridge - LXC with IPv6
        address fe:80::2:1
        ...
        post-up ip -6 neigh add proxy fe80::100 dev vmbr0
        ...

I've removed the less important parts, and explainer for the config:
The server has an IPv4, routed additional v4s, and a /64 IPv6 subnet

If I want to give a dedicated IP to a container, it gets the vmbr0, with the IP being one of the additional IPs (1.1.1.3 in the example) and the gateway is the main IP (1.1.1.2 in the example)

If I want to give a NAT IP to a container, it gets vmbr1, with the IP being one of the NAT IPs (not in the example, but 10.0.0.2 for example), and gateway the main bridge IP (10.0.0.1 in the example)

If I want to give a v6 to a container, it gets vmbr2, one of the post-up ip -6... IPs, and the gateway is the main vmbr2 IP.

Now, that all works fine if I have to assign only one of them, lets say just a dedicated IPv4, or just an IPv6 address - I can rate limit the network port that's added.
However, if I want to give an IPv4 and IPv6 at the same time, I have to add two network ports.

The problem with that is that they have their own limits, so lets say I want to limit the container to 10MB/s - With just one port, that's easy, set the limit to 10MB/s
With two ports, if I set both to 10MB/s, if it had two connections open, one on v4 and other on v6, it can use a total of 20MB/s instead, and if I set the limits of 5MB/s (so that it totals 10MB/s), then I can't use 10MB/s on lets say just v4...

What would be the solution to something like this?
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!