I am currently trying to put traffic control on our OpenStack cloud and my questions in one sentence would be: is it possible at all to rate-limit particular port with type internal?
The whole story is as following: We are running OpenStack Neutron network over OpenVSwitch. Datapath can be found here:
Hence, to limit upload/download bandwidth of a particular sub-network, the most intuitive approach is to put QoS rules on L3 router agents, namely port qr-XXXXXX-XX and qg-XXXXX-XX in Neutron nodes. Both of them are internal type in OVS-system and I have tried following commands:
1.
ovs-vsctl set interface qr-XXXXXX-XX ingress_policing_rate=2000000
ovs-vsctl set interface qr-XXXXXX-XX ingress_policing_rate=2000
2.
ovs-vsctl -- set Port qr-XXXXXX-XX qos=@newqos \
-- --id=@newqos create QoS type=linux-htb other-config:max-rate=2000000 queues=0=@q0 \
-- --id=@q0 create Queue other-config:min-rate=2000000
Although neither of them seem to be effective when I try iperf within in VMs.
Meanwhile, I do achieve rate limit when apply exactly same commands on qvoXXXXXX-XX, which is connected to each VM. I've noticed that they are normal types.
Therefore, I suspect that rate limit does not support internal port, which connects two network namespaces in linux.
Thanks for your valuable time and I truly appreciate your help!