HTB (htb) 트래픽 제한걸기 (네트워크 셰이핑 방법)
네트워크 셰이핑 방법
CBQ (Class based Queueing)
SFQ (Stochastic Fairness Queueing)
HTB(Hierarchical Token Bucket) 개념
사용자로 하여금 절대적인 대역폭을 조절하고 여분의 대역폭에 대해 정해진 비율로 계산하여 우선순위에 따라
각 클래스에 할당하는 시스템
대역폭을 각각의 queue 에 나눠주는 역활 패킷이 아닌 바이트수로 제한하기 때문에 interactive 보장 못함
root qdisc : 하나이상의 클래스를 가질수 있음
클래스는 rate 와 ceil 두개의 인수를 설정됨
rate : 클래스를 위한 대역폭을 보장하는 값
ceil (ceiling) : 클래스가 최대로 사용할수 있는 대역폭 의미
rate 와 ceil는 최상위에서는 같은 의미
자식클래스는 클래스 밑으로 생성가능하며 부모클래스로 부터 가능한 대역폭 할당 받음
설치
리눅스 커널에 확인
Networking options --->
[*] QoS and/or fair queueing --->
vim .config
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
다운로드 및 설치
wget http://sourceforge.net/projects/htbinit/files/HTB.init/0.8.5/htb.init-v0.8.5/download
mv htb.init-v0.8.5 /sbin/htb.init
cd /sbin
chmod +x htb.init (실행권한 추가)
설정 디렉토리 및 캐쉬디렉토리 생성 ( 그냥 만들기만 하면 파일은 htb 실행시 자동 생성)
mkdir -p /etc/sysconfig/htb
mkdir -p /var/cache/
htb package 다운
wget http://luxik.cdi.cz/~devik/qos/htb/v3/htb3.6-020525.tgz
tar xvfz htb3.6-020525.tgz
압출풀고 /home/htb 나 기타 위치시키고 싶은데 복사
설정파일 생성
eth0 파일은 기본적으로 디폴트로 아래와 같이 만들어주고 본격적은 설정은 eth0-xx 부터 적용되는 부분임
etho, eth1, eth2 파일이름으로 인터페이스를 구분하며
[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,
개인적으로 테스트 할려는 네트워크는 아래와 같이 셋팅되어 있음
[root@Garbage-ELCAP htb]# cat eth1
DEFAULT=30
R2Q=100
[root@Garbage-ELCAP htb]# cat eth1-9
RATE=8Mbit
CEIL=8Mbit
BURST=10k
#LEAF=sfq
RULE=2xx.xxx.6.9,
파일 생성 개념
eth0-2:3
eth0-2:3:4
eth1-2.root
디바이스 eth0 에 대한 root 클래스 id 2
디바이스 eth0 에 대한 부모클래스 id 2, 자식클래스 id 3
디바이스 eth0 에 대한 부모클래스 id 3, 자식클래스 id 4
디바이스 eth1에 대한 root 클래스 id 2
실행
항상 stop 및 start 시 캐시에 저장된 rm /var/cache/htb.init 삭제후 해야 적용이 잘됨
TEST는 실제로 FTP를 이용해서 테스트 해보면 뚜렷하게 잘 나타난다
3메가 제한시 실제 FTP 업로드시 MRTG 그래프
주의사항>
Queueing 는 데이터를 보내는 방법만을 정의한다.
즉 속도제어는 인터페이스에서 나가는 트래픽만 가능하다.
들어오는 Incomming 트래픽을 제어하기 위해서는 브리지로 묶여있는 장치명을 통해 IN / OUT 으로 분리해서 제어하면 된다.
eth1 / eth2 에 대해서 다운로드 트래픽을 제어하게 되면 실직적으로 시스템에서는 업/다운 트래픽을 제어하는것처럼 나타난다.
[polldaddy rating="7739789"]