티스토리 뷰
네트워크 셰이핑 방법
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 에 대해서 다운로드 트래픽을 제어하게 되면 실직적으로 시스템에서는 업/다운 트래픽을 제어하는것처럼 나타난다
참고사이트
http://coffeenix.net/data_repository/htm/5-13tc.htm#htb
|
'Linux' 카테고리의 다른 글
ab tools (웹성능 퍼포먼스 테스팅) (0) | 2015.04.24 |
---|---|
yum update 시 리눅스 코어 (core) 업데이트 하지 않기 (0) | 2015.04.24 |
ping: sendmsg: Operation not permitted (0) | 2015.04.08 |
ipacctable 설치하기 (0) | 2015.03.30 |
keepalived 설치 (0) | 2015.03.23 |
- Total
- Today
- Yesterday
- IPSEC
- WAF
- ssh
- Apache
- 베이어다이나믹
- MySQL
- galera
- gitlab
- 리눅스
- virtualbox
- NGINX
- ntp
- php
- softether
- kvm
- HAProxy
- iptables
- OpenVPN
- centos8
- mariadb
- centOS7
- pptp
- GeoIP
- mod_security
- yum
- 인증서
- SSL
- cURL
- L2TP
- glusterfs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |