트래픽 할당량에 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

관련 정보