나는 큰 성공을 거두지 못한 채 네임스페이스 내의 인터페이스 대역폭을 제한하기 위해 tc를 사용하려고 합니다. 에 따르면 지원되지 않는 것 같습니다.https://lists.linux-foundation.org/pipermail/containers/2009-September/020473.html
이것은 CentOS 6.5에 있습니다. 이상하게도 여기 튜토리얼을 사용하면 잘 작동합니다.http://gigawhitlocks.com/2014/08/18/network-namespaces.html따라서 Openstack이 네임스페이스 내에서 생성하는 이 포트에서 특별한 일이 발생하고 있는 것이 분명합니다. 작동하지 않는 포트는 OpenStack 내부 가상 라우터의 게이트웨이로 사용되는 포트입니다.
Edit2: tc와 작동하지 않는 인터페이스에 대한 추가 정보:
ip netns exec qrouter-6a080f37.. ethtool -S qr-a9b3962f-d4 no stats available
편집: 다른 사람들도 네임스페이스에서 openvswitch에 의해 생성된 포트와 동일한 문제를 겪은 것 같습니다.http://openvswitch.org/pipermail/discuss/2014-May/013925.html
다음 명령은 실패하고 RTNETLINK 답변: 잘못된 인수를 반환합니다.
# 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
답변1
비슷한 문제가 발생했습니다. 내부 qr 포트에 qdisc를 추가하면 qdisc 명령처럼 오류가 보고되지 않지만 트래픽이 제한되지 않고 항상 회선 속도로 실행됩니다. 한동안 구글링을 했으나 해결책을 찾지 못했습니다. 트래픽을 제한하는 추악한 방법은 iptable의 제한 모듈을 사용하는 것인데, 이는 TCP 트래픽에서 안정적인 속도를 얻는 것이 불가능하고 제한 매개변수를 실제 대역폭으로 변환하기 어렵습니다.