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

네트워크 트래픽을 제한하려는 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로 들어오고 나가는 대역폭을 제한하는 방법에 대한 아이디어가 있습니까?



답변

모든 아웃 바운드 트래픽에 제한을 적용하려면 필터가 전혀 필요하지 않습니다. 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


답변

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

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


답변

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

너처럼 좋아

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


답변