O controle de tráfego dentro do namespace nas portas criadas pelo OpenvSwitch é compatível?

O controle de tráfego dentro do namespace nas portas criadas pelo OpenvSwitch é compatível?

Estou tentando limitar a largura de banda de uma interface dentro de um namespace usando tc sem muito sucesso. Parece que não é suportado de acordo comhttps://lists.linux-foundation.org/pipermail/containers/2009-September/020473.html

Isso está no CentOS 6.5. O que é estranho é que quando eu uso o tutorial descrito aqui ele funciona normalmente:http://gigawhitlocks.com/2014/08/18/network-namespaces.htmlPortanto, deve haver algo especial acontecendo com esta porta criada pelo Openstack dentro do namespace. A porta que não está funcionando é uma porta que serve de gateway para um roteador virtual dentro do openstack.

Edit2: Mais algumas informações sobre a interface que não funciona com tc:
ip netns exec qrouter-6a080f37.. ethtool -S qr-a9b3962f-d4 no stats available

Editar: parece que outra pessoa está encontrando o mesmo problema com portas criadas por openvswitch em um namespacehttp://openvswitch.org/pipermail/discuss/2014-May/013925.html

O comando a seguir falha nas respostas RTNETLINK: Argumento inválido:

# ip netns exec qrouter-6a080f37-4da0-4646-ad36-062b748d15be tc qdisc add dev qr-a9b3962f-d4 root netem loss 30%
RTNETLINK answers: Invalid argument
[root@node-1 ~]# ip netns exec qrouter-6a080f37-4da0-4646-ad36-062b748d15be ip a
43: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
44: qg-4bda7108-d2: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether fa:16:3e:95:cc:7b brd ff:ff:ff:ff:ff:ff
    inet 119.81.159.206/27 brd 119.81.159.223 scope global qg-4bda7108-d2
    inet 119.81.159.207/32 brd 119.81.159.207 scope global qg-4bda7108-d2
    inet 119.81.159.209/32 brd 119.81.159.209 scope global qg-4bda7108-d2
    inet6 fe80::f816:3eff:fe95:cc7b/64 scope link 
       valid_lft forever preferred_lft forever
47: qr-a9b3962f-d4: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether fa:16:3e:c2:64:dd brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.1/24 brd 192.168.99.255 scope global qr-a9b3962f-d4
    inet6 fe80::f816:3eff:fec2:64dd/64 scope link 
       valid_lft forever preferred_lft forever
# ip netns exec qrouter-6a080f37-4da0-4646-ad36-062b748d15be tc qdisc add dev qr-a9b3962f-d4 root tbf rate 1mbit burst 10kb limit 100kb
RTNETLINK answers: Invalid argument

Responder1

Eu encontrei um problema semelhante. Ele não relata erros como seu comando qdisc fez quando eu adiciono qdisc ao qr-port interno, no entanto, o tráfego simplesmente não seria limitado e continuaria na taxa de linha o tempo todo. Pesquisei um pouco no Google e não consigo encontrar solução. Uma maneira feia de limitar o tráfego é usar o módulo limit do iptable, que é impossível obter uma taxa estável no fluxo tcp e é difícil traduzir o argumento limit para a largura de banda real.

informação relacionada