EdgeRouter - 업로드, 다운로드, VoIP를 위한 트래픽 정책 설정하기

download at 2017-02-07T01:11:47Z origin

Overview


CLI를 통해서 EdgeRouter에 어떻게 업로드 / 다운로드 / VoIP의 트래픽 정책을 설정하는 방법을 설명합니다.

Configurations


다음의 예제는 2개의 트래픽 정책(업로드 정책과 다운로드정책)을 사용합니다. 10.0.3.2로 연결되는 업로드 트래픽을 512Kbps로 제한하고 (최대 640Kbps 까지 허용), 다운로드는 1Mbit (최대 1.5Mbit 까지 대역폭이 간으하다면 허용)을 제한합니다.

다운로드 트래픽 정책 예제

Note: 하나의 클래스당 하나의 클라이언트 정책입니다.

set traffic-policy shaper client-down bandwidth '1000mbit'
set traffic-policy shaper client-down class 2 bandwidth '1mbit'
set traffic-policy shaper client-down class 2 burst '1k'
set traffic-policy shaper client-down class 2 ceiling '1.5mbit'
set traffic-policy shaper client-down class 2 match ADDR ip destination address '10.0.3.2/32'
set traffic-policy shaper client-down class 2 queue-type 'fair-queue'
set traffic-policy shaper client-down class 3 bandwidth '1mbit'
set traffic-policy shaper client-down class 3 burst '1k'
set traffic-policy shaper client-down class 3 ceiling '1.5mbit'
set traffic-policy shaper client-down class 3 match ADDR ip destination address '10.0.3.3/32'
set traffic-policy shaper client-down class 3 queue-type 'fair-queue'
set traffic-policy shaper client-down default bandwidth '100%'
set traffic-policy shaper client-down default burst '1k'
set traffic-policy shaper client-down default ceiling '100%'
set traffic-policy shaper client-down default queue-type 'fair-queue'
commit

인터페이스에서 송출하는 트래픽에 대하여 적용합니다:

set interfaces ethernet eth1 traffic-policy out 'client-down'
commit

업로드 트래픽 정책 예제

업로드 트래픽 정책은 두가지 옵션이 존재합니다. 가장 직관적인 것은 리미터 (limiter) 정책입니다:

set traffic-policy limiter client-up class 1 bandwidth '512kbit'
set traffic-policy limiter client-up class 1 burst '1mb'
set traffic-policy limiter client-up class 1 match ADDR ip source address '10.0.3.2/32'
set traffic-policy limiter client-up default bandwidth '1000mbit'
commit

인터페이스에서 송출하는 트래픽에 대하여 적용합니다:

set interfaces ethernet eth1 traffic-policy in 'client-up'
commit

리미터 정책의 단점은 라우터가 목적지인 트래픽에 대하여는 잘 동작하지만, 포워딩하는 트래픽에 대하여는 정확히 보장할 수 없다는 점입니다. 다른 방법으로는 인풋 인터페이스를 생성하고 해당 인터페이스를 위한 트래픽 정책 셰이퍼(shaper)를 만드는 것입니다.

set traffic-policy shaper client-up-s bandwidth '1000mbit'
set traffic-policy shaper client-up-s class 2 bandwidth '512kbit'
set traffic-policy shaper client-up-s class 2 burst '1k'
set traffic-policy shaper client-up-s class 2 ceiling '640kbit'
set traffic-policy shaper client-up-s class 2 match ADDR ip source address '10.0.3.2/32'
set traffic-policy shaper client-up-s class 2 queue-type 'fair-queue'
set traffic-policy shaper client-up-s class 3 bandwidth '512kbit'
set traffic-policy shaper client-up-s class 3 burst '1k'
set traffic-policy shaper client-up-s class 3 ceiling '640kbit'
set traffic-policy shaper client-up-s class 3 match ADDR ip source address '10.0.3.3/32'
set traffic-policy shaper client-up-s class 3 queue-type 'fair-queue'
set traffic-policy shaper client-up-s default bandwidth '100%'
set traffic-policy shaper client-up-s default burst '15k'
set traffic-policy shaper client-up-s default ceiling '100%'
set traffic-policy shaper client-up-s default queue-type 'fair-queue'
commit

인풋 인터페이스에 shaper를 적용합니다:

set interfaces ethernet eth1 redirect 'ifb1'
set interfaces input ifb1 traffic-policy out 'client-up-s'
commit

VoIP 트래픽 정책 예제

Note: VoIP는 낮은 지연율 (latency)과 지터 (jitter)를 갖는 높은 우선순위의 트래픽을 갖습니다. 또한 ssh는 지연시간(delay)가 적어야하며, 다른 종류의 트래픽과는 동일한 수준의 우선순위를 갖습니다.

traffic-policy {
   shaper interactive-bulk {
        bandwidth 2mbit
        class 10 {
            bandwidth 5%
            burst 2.5k
            ceiling 30%
            match RTP {
                ip {
                    dscp 46
                }
            }
            match RTP-IPv6 {
                ipv6 {
                   dscp 46
                }
            }
            priority 7
            queue-limit 10
            queue-type fair-queue
        }
        class 20 {
            bandwidth 5%
            burst 2.5k
            match ICMP {
                ip {
                    protocol icmp
                }
            }
            match SIP {
                ip {
                    dscp 26
                }
            }
            match SIP-IPv6 {
                ipv6 {
                    dscp 26
                }
            }
            priority 4
            queue-limit 10
            queue-type fair-queue
        }
        class 30 {
            bandwidth 5%
            burst 1k
            ceiling 20%
            match ssh {
                ip {
                    destination {
                        port 22
                    }
                    dscp lowdelay
                    protocol tcp
                }
            }
            match ssh-ipv6 {
                ipv6 {
                    destination {
                        port 22
                    }
                    protocol tcp
                }
            }
            priority 6
            queue-limit 10
            queue-type fair-queue
        }
        default {
            bandwidth 85%
            burst 2.5k
            ceiling 100%
            priority 2
            queue-limit 13
            queue-type fair-queue
        }
    }
}