Policing&Shaping
Traffic Conditioning ( 트래픽 제어)
1. Policing
- 트래픽 비율을 초과하는 트래픽에 대한 드랍 or 전송의 우선 순위를 낮추는 기법
- 특정 트래픽에 대한 전송률을 제한할려는 정책에 사용됨
- CAR설정. MQC 정책 사용
- 인바운드, 아웃바운드 적용 가능
- 트래픽에 대해서 마킹 작업이 제공됨
=> 폴리싱은 BandWidth Resource의 사용을 제한해야하는 입장에서 자주 사용된다. (ISP)
2. Shaping
- 트래픽 비율을 초과하는 트래픽에 대해 별도의 버퍼링을 실시하여 완화시키는 기법
- 네트워크 정체 현상을 감소시킬 수 있다.
- GTS설정. FRTS설정. MQC 정책 사용
- 아웃바운드만 적용 가능
- 마킹작업 제공 안됨
=> 쉐이핑은 폴리싱에 의해 제한된 BandWidth Resource를 가진 입장에서 사용된다. (고객)
Token Bucket (토큰 버켓) 알고리즘
Token (토큰)
- bit의 크기, bit를 전송할 수 있는 허용 임계치를 알려주는 용도로 사용
- 시간 단위로 일정 토큰 제공
Token Bucket (토큰 버켓)
- 토큰이 보관되는 저장소
- 크기에 따라 토큰의 사이즈와 수량이 결정된다.
- 초당 제공되는 bit 나 byte의 수를 기준으로 정의한다.
라우터
- 토큰버켓에 토큰이 존재해야 트래픽 전송이 가능
- 토큰버켓의 크기에 따라 패킷의 크기가 결정된다.
Token Bucket 파라미터
CIR
- 시간 단위 기반으로 토큰 버켓에 공급되는 토큰양
- 초당 공급되는 bit수로 표현
- CIR(bps) = BC(bit) / TC(sec)
BC
- 토큰 버켓의 크기를 의미
- 한번에 소모할 수 있는 토큰의 최대 수
- Normal burst : 일반적으로 허용되는 Burst양
BE
- 사용할수 있는 토큰 버켓을 의미
- Maximum burst : BC + BE
TC
- BC에 토큰이 저장되는데 소요되는 시간
폴리싱 구현 방법
1. CAR 설정
- 인바운드/아웃바운드에 트래픽 전송 Rate제한
- 임계치 초과시 드랍하거나 마킹 작업 수행
- 256kbps 까지 허용, 초과시 드랍
- rate-limit 명령어 사용
ex)
rate-limit input 256000 8000 8000 conform-action transmit exceed-action drop
256000 8000 8000 임계치 초과안하면 전송 임계치 초과하면 드랍
트래픽 평균값 Normal burst Maximum burst conform-action transmit exceed-action drop
2. MQC 정책
- 확장성이 높다
- class-map, policy-map 생성
예1. ICMP 트래픽 전송
class-map ICMP
match access-group 110
policy-map Police
class ICMP
police 256000 8000 conform-action transmit exceed-action drop
int f0/0
service-policy input Police
256000 8000
트래픽 평균값 Burst byte
예2. 모든트래픽에 256Kbps로 제한, 초과하는 트래픽은 0으로 마킹
마킹(Marking) : 패킷의 레벨과 서비스 등급을 구분할 수 있는 작업
높을수록 좋은데 0~7까지 조정할수 있고 6과 7은 지정되어 있어 설정시 5가 제일 좋다.
policy-map Police
class class-default
police 256000 conform-action transmit exceed-action set-prec-transmit 0 violate-action drop
set-prec-transmit 0 violate-action drop
패킷우선순위를 0으로 작성함 burst값 초과시 드랍
int f0/0
service-policy input Police
예3. S1/0 에서 CIR 256k 초과하는 트래픽에 IP Precedence를 0으로 마킹하고, FR DE-bit를 1로 마킹하여라
1. policy-map을 만들고 class를 만들어줘서 지정할수 있다.
2. class-map을 만들고 policy-map 으로 접근할수 있다.
policy-map Po
class class-default
police cir 256000
conform-action transmit
exceed-action set-prec-transmit 0 패킷 우선순위를 0으로 마킹
exceed-action set-frde-transmit Frame-delay DE-bit 1로 마킹
violate-action drop burst값 초과시 드랍
int s1/0
service-policy output Police
예4. S1/0 에서 CIR 256K 초과하지 않는 트래픽에 IP Precedence 4로 마킹, CIR 256K를 초과하지만 512K를 초과하지 않는 트래픽에 IP Precedence 1로 마킹, FR DE-bit 1로 마킹
policy-map Police
class class-default
police cir 256000 pir 512000 cir 256K 초과하고, 512k 초과안하게
conform-action set-prec-transmit 4 256k 초과하지 않는 트래픽에 패킷 우선순위를 4로 마킹
exceed-action set-prec-transmit 1 256k 초과하고, 512k 초과안하는 트래픽에 패킷 우선순위를 1로 마킹
exceed-action set-frde-transmit Frame-delay DE-bit 1로 마킹
violate-action drop
int s1/0
service-policy output Police
예5. R1 f0/0에서 CIR 20% 초과하지 않는 트래픽에 DSCP 'AF11'로 마킹. CIR 20% 초과하지만 40%를 초과하지 않는 트래픽에 DSCP 'Default'로 마킹
policy-map Police
class class-default
police cir percent 20 pir percent 40 cir 20%초과, 40%초과안하게
conform-action set-dscp-transmit af11 af11로 마킹
exceed-action set-dscp-transmit default default로 마킹
violate-action drop
int f0/0
service-policy input Police
쉐이핑 구현 방법
1. GTS(Generic Traffic Shaping) 설정
- 트래픽 제어 위해 Rate제한,
- GTS 임계치 초과시 버퍼링을 실시해 전송
- traffic-shape 명령어 사용
ex)
traffic-shape rate 256000 IOS에 의해 자동으로 BC와 BE가 계산됨.
2. MQC 정책
- 확장성이 높다.
- 실제 환경에서도 주로 MQC를 이용해 쉐이핑한다.
shape average 256000 간격당 BC만 전송
shape peak 256000 간격당 BC+BE 전송
3. FRTS(Frame-Relay Traffic Shaping)
- Frame-Relay에 정체 현상 발생되면 BECN, FECN 메시지를 이용해 정체 현상 해결
4. MQC정책 이용한 FRTS
- CIR 256K환경에서 BECN bit수신하면 전송률을 낮춤
- 128K미만으로는 전송률을 낮추지 않음
5. CLI 기반의 FRTS기법
- FRTS를 하기 위한 전용 설정 구문
- frame-relay traffic-shaping 명령어가 활성화 되야함.