트래픽 할당량에 tc를 사용하시나요?

트래픽 할당량에 tc를 사용하시나요?

트래픽 할당량(비율 제한이 아닌 절대 제한)을 구현할 수 있습니까?네트워크 분류자 cgroup?

나는 거기에 있는 것을 본다iptables netfilter '할당량' 확장, 이는 본질적으로 내가 하려는 작업을 수행하는 것 같습니다. 지정된 인터페이스와 방향에서 지정된 할당량까지 트래픽을 허용한 다음 삭제하거나 다른 작업을 수행합니다. 하지만 이 할당량을 특정 cgroup에만 적용하고 싶기 때문에 다음을 사용해야 합니다.net_cls 모듈트래픽을 식별합니다.

다음을 사용하여 속도 제한을 설정할 수 있다는 것을 알고 있습니다.Linux 트래픽 제어(tc)클래시드를 기반으로 합니다. 적절한 분류자가 있으면 트래픽을 삭제할 수도 있습니다. 내가 찾을 수 없는 것은 tc에 대한 절대 카운터이거나 iptables가 classid를 기반으로 필터링하는 방법입니다.

답변1

classid를 기반으로 iptables로 필터링할 수 있습니다. 에 예가 있습니다.net_cls 모듈당신이 제공한 링크.

echo 0x100001 >  /sys/fs/cgroup/net_cls/0/net_cls.classid
iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP

물론 iptables가 더 복잡한 규칙을 사용하여 다른 체인으로 점프하도록 예제를 변경할 수 있습니다. 아마도:

echo 0x100001 >  /sys/fs/cgroup/net_cls/0/net_cls.classid
iptables -N QUOTA
iptables -A QUOTA -m quota --quota 52428800 -j ACCEPT
iptables -A QUOTA -j DROP
iptables -A OUTPUT -m cgroup --cgroup 0x100001 -j QUOTA

관련 정보