월간 인기 게시물

게시물 160건
   
TC HTB (Hierarchichal Token Bucket) 트래픽 제어
글쓴이 : 최고관리자 날짜 : 2010-05-28 (금) 14:18 조회 : 8528
글주소 :
                          

리눅스에서 트래픽 제어하기
리눅스 커널을 이용한 트래픽 Bandwidth를 설정하는 방법이다.
여기서는 Outbound 트래픽에 대해서만 다룬다. Inbound 는 iptable 과 함께 사용하여 구성한다.

커널에서 아래와 같이 활성화 되어있어야 한다.
-*- Networking support  --->                                                                          
       Networking options  ---> 
         [*] QoS and/or fair queueing  --->

.config
#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
# CONFIG_NET_SCH_MULTIQ is not set
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_INGRESS=m



1. Download htb.init 스크립트  
http://sourceforge.net/projects/htbinit/


2 .실행권한 
[root@mojily sbin]# mv htb.init-v0.8.5 htb.init
[root@mojily sbin]# chmod +x /sbin/htb.init


3. htb.init 설정 디렉토리와 cache 디렉토리 생성
[root@mojily sbin]# mkdir -p /etc/sysconfig/htb       
[root@mojily sbin]# mkdir -p /var/cache/


4. 트래픽제어 파일 설정 (/etc/sysconfig/htb)
파일명은 아래와같은 형식으로 저장한다.
<인터페이스 이름>-<clsid>(:<clsid>).<라벨설명>
clsid 는 클래스 ID로 16진수이며 2부터 FFFF까지 범위를 가진다.
[root@mojily sbin]# cat  /etc/sysconfig/htb/eth0
DEFAULT=30
R2Q=100

[root@mojily sbin]# cat /etc/sysconfig/htb/eth0-2.http
RATE=50Mbit
CEIL=50Mbit
BURST=5k
LEAF=sfq
RULE=*:80,

[root@mojily sbin]# cat /etc/sysconfig/htb/eth0-2.smtp
RATE=1Mbit
CEIL=1Mbit
BURST=1k
LEAF=sfq
RULE=*:25,

※ 자세한 옵션은 아래 DOC 문서참조
http://chonnom.com/bbs/board.php?bo_table=B16&wr_id=39여준다.


5. 스크립트 실행
[root@mojily sbin]# ./htb.init start
[root@mojily sbin]# watch -d ./htb.init stats

※ Usage: htb.init {start|compile|stop|restart|timecheck|list|stats}
start : 스크립트를 실행
compile : 실행은 하지않고 TC를 이용 htb.init 스크립트가 설정파일대로 만들어낸 구문을 보여주며 스크립트가 실제로 어떻게 작동되는지 알 수 있는 분석에 편리한 명령
stop : 스크립트 실행을 멈춤
restart : 스크립트 재시작
timecheck : TIME 명령을 줬을때 실행
list : 실행했을때 디바이스에 대해 적용된 각종 클래스, 룰을 보여줌
stats : list와 비슷하게 현재 상태를 나타내며 총 트래픽양과 얼마나 필터를 통과했는지 등에 대해보여줌

<주의사항>
Queueing 는 데이터를 보내는 방법만을 정의한다.
즉 속도제어는 인터페이스에서 나가는 트래픽만 가능하다.
들어오는 Incomming 트래픽을 제어하기 위해서는 브리지로 묶여있는 장치명을 통해 IN / OUT 으로 분리해서 제어하면 된다.
eth1 / eth2 에 대해서 다운로드 트래픽을 제어하게 되면 실직적으로 시스템에서는 업/다운 트래픽을 제어하는것처럼 나타난다.


최고관리자 2012-08-28 (화) 13:50
이름 패스워드
비밀글 (체크하면 글쓴이만 내용을 확인할 수 있습니다.)
왼쪽의 글자를 입력하세요.
   

 



 
사이트명 : 모지리네 | 대표 : 이경현 | 개인커뮤니티 : 랭키닷컴 운영체제(OS) | 경기도 성남시 분당구 | 전자우편 : mojily골뱅이chonnom.com Copyright ⓒ www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.