TC와의 느린 연결 시뮬레이션


9

네트워크 트래픽을 제한하려는 Linux 상자 (Centos 5.5)가 있습니다. 클라이언트에 배포하는 응용 프로그램이 있으며 최소 권장 대역폭 인 256Mbit / sec에서 테스트하고 싶습니다. 지금까지 내가 본 tc 자습서는 특정 기준에 따라 대역폭을 제한 할 수있는 것처럼 보이지만 모든 상황에서 (IP 헤더의 모양에 관계없이 모든 IP 주소와의) 대역폭을 제한하고 싶습니다.

한 자습서에서는 다음을 사용하도록 제안했습니다.

tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

하지만 다음과 같은 오류가 발생합니다.

Unknown filter "flowid", hence option 10:2 is unparsable

모든 상황에서 eth0로 들어오고 나가는 대역폭을 제한하는 방법에 대한 아이디어가 있습니까?

답변:


11

모든 아웃 바운드 트래픽에 제한을 적용하려면 필터가 전혀 필요하지 않습니다. qdisc를 인터페이스 루트 핸들에 다음과 같이 추가하십시오.

tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540

인바운드 트래픽을 형성 / 경찰하려면 조금 더 복잡합니다. 예를 들어 IFB 인터페이스를 사용해야합니다.

modprobe ifb
ip link set dev ifb0 up
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
#  ^- this is a dummy filter, match u32 0 0 matches all traffic
tc qdisc add dev ifb0 root handle 1: tbf rate 256mbit latency 1ms burst 1540

두 가지 간단한 필터를 사용하는 다른 접근 방식이 있습니다.

tc qdisc add dev eth0 ingress
tc filter add dev eth0 root         protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1

귀하의 솔루션을 해킹했지만 작동시키지 못했습니다. 명령을 실행하고 Firefox를 열고 다운로드를 시작하고 너무 빨리 다운로드합니다. ifconfig를 수행하면 ifb0 아래에 일부 RX 및 TX 패킷이 표시되어야합니다 (그렇지 않기 때문에)? 감사.
rancidfishbreath

ifb 인터페이스없이 작동하는 다른 접근법을 추가했습니다.
알.

두 개의 간단한 필터를 사용하는 두 번째 방법은 훌륭합니다! 정말 고마워. 간단하고 이해하기 쉽기 때문에이 솔루션이 정말 마음에 듭니다.
rancidfishbreath

멋진 질문, 새로운 질문, 실행 후 한계를 어떻게 제거 할 수 tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540있습니까? 감사!
SSH 이번

조절을 끄고 원래대로 되 돌리는 방법은 무엇입니까? Pls는 당신이 그렇게 친절하다면 "두 가지 간단한 필터를 사용하는 다른 접근법"버전에 응답합니다. "남자 tc"는 평소처럼 압도적입니다.
제프리 앤더슨

1

이것은 범위를 벗어난 것일 수도 있지만 WAN-emu는 처리량 및 대기 시간에 대한 이상한 요구 사항이있는 환경을 모방하는 데 매우 효과적입니다. [1]

[1] : http://speed.cis.nctu.edu.tw/wanemu/ WAN-emu


netem tc 모듈을 사용하면 대기 시간이 길거나
al.

0

이 tc qdisc add dev eth0 루트 핸들 10과 같이 1 개의 눈금자를 추가했습니다 : htb default 20

너처럼 좋아

tc filter add dev eth0 프로토콜 ip parent 10 : prio 2 flowid 10 : 2

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.