예: 송신 단일 속도 2색 폴리서 구성을 통해 송신 네트워크 경계에서 CoS 수행
이 예는 송신 단일 속도 2색 폴리서 구성 방법을 보여줍니다. 폴리서는 토큰 버킷이라는 개념을 사용합니다. 폴리서가 계약 중 및 계약 외 트래픽에 대해 CoS(Class of Service) 전략을 적용합니다. 수신 패킷, 발신 패킷 또는 둘 다에 단일 속도 2색 폴리서 적용할 수 있습니다. 이 예는 폴리서 를 출력(송신) 폴리서로 적용합니다. 이 예는 실행 중인 트래픽 폴리싱을 보여주는 예를 사용하여 폴리싱을 소개하는 것입니다.
토큰 버킷 개념과 그 기본 알고리즘에 대한 철저한 설명은 이 문서의 범위를 벗어나 있습니다. 트래픽 폴리싱 및 CoS에 대한 자세한 내용은 일반적으로 QOS 지원 네트워크( Miguel Barreiros와 Peter Lundqvist)의 도구 및 기반을 참조하십시오. 이 교재는 많은 온라인 서점과 www.juniper.net/books 이용할 수 있습니다.
요구 사항
이 절차를 확인하기 위해 이 예는 트래픽 생성기를 사용합니다. 트래픽 생성기는 하드웨어 기반이거나 서버 또는 호스트 머신에서 실행되는 소프트웨어일 수 있습니다.
이 절차의 기능은 Junos OS 실행되는 디바이스에서 널리 지원됩니다. 여기에 표시된 예는 릴리스 10.4를 Junos OS MX 시리즈 라우터에서 테스트 및 검증되었습니다.
개요
단일 속도 2색 폴리싱은 제한에 부합하지 않는 트래픽에 암시적 또는 구성된 작업을 적용하여 특정 서비스 수준에 대해 구성된 트래픽 플로우 속도를 적용합니다. 인터페이스의 입력 또는 출력 트래픽에 단일 속도 2색 폴리서를 적용하면 폴리서가 다음 구성 요소에 정의된 속도 제한으로 트래픽 흐름을 측정합니다.
대역폭 제한 - 인터페이스에서 수신 또는 전송되는 패킷에 대해 허용되는 초당 평균 비트 수입니다. 대역폭 제한을 초당 절대 비트 수 또는 1에서 100까지의 백분율 값으로 지정할 수 있습니다. 백분율 값이 지정되면, 효과적인 대역폭 제한은 물리적 인터페이스 미디어 속도 또는 구성된 쉐이핑 속도의 백분율로 계산됩니다.
버스트 크기 제한 - 데이터 버스트에 허용되는 최대 크기. 버스트 크기는 바이트로 측정됩니다. 버스트 크기를 계산하기 위한 두 가지 공식을 권장합니다.
버스트 크기 = 대역폭 x 버스트 트래픽 허용 시간/ 8
또는
버스트 크기 = 인터페이스 mtu x 10
버스트 크기 구성에 대한 정보는 트래픽 폴리서에 대한 적절한 버스트 크기 결정 을 참조하십시오.
참고:인터페이스를 위한 한정된 버퍼 공간이 있습니다. 일반적으로 인터페이스의 예상 총 버퍼 깊이는 약 125ms입니다.
구성된 제한(녹색 트래픽으로 분류)에 부합하는 트래픽 플로우의 경우, 패킷은 암시적으로 PLP(패킷 손실 우선 순위) 수준으로 표시되며 제한되지 않은 인터페이스를 통과하도록 허용됩니다.
구성된 제한(빨간색 트래픽으로 분류)을 초과하는 트래픽 플로우의 경우, 폴리서에 구성된 트래픽 폴리싱 작업에 따라 패킷이 처리됩니다. 이 예는 15KBps 제한을 초과하여 버스트된 패킷을 버립니다.
레이어 3 트래픽을 속도 제한하기 위해 다음 방법으로 2색 폴리서 를 적용할 수 있습니다.
특정 프로토콜 수준에서 논리적 인터페이스에 직접 연결됩니다.
특정 프로토콜 수준에서 논리적 인터페이스에 적용되는 표준 무상태 방화벽 필터의 작업으로 사용됩니다. 이 예에서 사용되는 기법입니다.
레이어 2 트래픽을 속도 제한하기 위해 2색 폴리서만 논리적 인터페이스 폴리서로 적용할 수 있습니다. 방화벽 필터를 통해 레이어 2 트래픽에 2색 폴리서 적용할 수 없습니다.
서로 배타적이기 때문에 폴리서 내에서 대역폭 제한 또는 대역폭 퍼센트 중 하나를 선택할 수 있습니다. 어그리게이션, 터널 또는 소프트웨어 인터페이스에 대역폭 퍼센트를 사용하도록 폴리서를 구성할 수 없습니다.
이 예에서 호스트는 웹 서비스를 에뮬레이션하는 트래픽 생성기입니다. 디바이스 R1 및 R2는 서비스 프로바이더가 소유하고 있습니다. 웹 서버는 디바이스 R2 뒤에 있는 사용자에 의해 액세스됩니다. 호스트는 소스 TCP HTTP 포트가 80인 트래픽을 사용자에게 전송합니다. 단일 속도 2색 폴리서가 구성되고 디바이스 R2에 연결되는 디바이스 R1의 인터페이스에 적용됩니다. 폴리서에서는 웹서버 소유자(이 경우 호스트가 에뮬레이션)와 디바이스 R1과 R2를 연결하는 링크를 통해 흐르는 웹 트래픽에 대해 디바이스 R1과 R2를 소유한 서비스 프로바이더 간에 계약상의 대역폭 가용성을 적용합니다.
웹서버 소유자와 디바이스 R1 및 R2를 소유한 서비스 프로바이더 간의 계약상 대역폭 가용성에 따라 폴리서는 호스트에서 생성되는 HTTP 포트 80 트래픽을 디바이스 R1과 R2 사이의 기가비트 이더넷 인터페이스의 10 x MTU 크기의 허용 가능한 버스트 속도로 사용 가능한 대역폭의 700Mbps(70%)를 사용하는 것으로 제한합니다.
실제 시나리오에서는 종종 웹 호스팅 서비스를 통한 추가 서비스로 포함되기 때문에 FTP, SFTP, SSH, TELNET, SMTP, IMAP 및 POP3와 같은 다양한 포트의 트래픽을 속도 제한할 수 있습니다.
라우팅 프로토콜, DNS 및 네트워크 연결 운영을 유지하는 데 필요한 기타 프로토콜과 같은 네트워크 제어 프로토콜에 대해 속도에 제한되지 않는 추가 대역폭을 제공해야 합니다. 이것이 방화벽 필터에 최종 허용 조건이 있는 이유입니다.
구성
절차
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣습니다.
디바이스 R1
set interfaces ge-2/0/5 description to-Host set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30 set interfaces ge-2/0/8 description to-R2 set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.1/30 set interfaces ge-2/0/8 unit 0 family inet filter output mf-classifier set interfaces lo0 unit 0 description looback-interface set interfaces lo0 unit 0 family inet address 192.168.13.1/32 set firewall policer discard if-exceeding bandwidth-limit 700m set firewall policer discard if-exceeding burst-size-limit 15k set firewall policer discard then discard set firewall family inet filter mf-classifier term t1 from protocol tcp set firewall family inet filter mf-classifier term t1 from port 80 set firewall family inet filter mf-classifier term t1 then policer discard set firewall family inet filter mf-classifier term t2 then accept set protocols ospf area 0.0.0.0 interface ge-2/0/5.0 passive set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ge-2/0/8.0
디바이스 R2
set interfaces ge-2/0/7 description to-Host set interfaces ge-2/0/7 unit 0 family inet address 172.16.80.2/30 set interfaces ge-2/0/8 description to-R1 set interfaces ge-2/0/8 unit 0 family inet address 10.50.0.2/30 set interfaces lo0 unit 0 description looback-interface set interfaces lo0 unit 0 family inet address 192.168.14.1/32 set protocols ospf area 0.0.0.0 interface ge-2/0/7.0 passive set protocols ospf area 0.0.0.0 interface lo0.0 passive set protocols ospf area 0.0.0.0 interface ge-2/0/8.0
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 Junos OS CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
디바이스 R1 구성:
디바이스 인터페이스를 구성합니다.
[edit interfaces] user@R1#set ge-2/0/5 description to-Host user@R1#set ge-2/0/5 unit 0 family inet address 172.16.70.2/30 user@R1#set ge-2/0/8 description to-R2 user@R1#set ge-2/0/8 unit 0 family inet address 10.50.0.1/30 user@R1# set lo0 unit 0 description looback-interface user@R1#set lo0 unit 0 family inet address 192.168.13.1/32
폴리서가 700Mbps의 대역폭과 HTTP 트래픽에 대해 15KBps의 버스트 크기(TCP 포트 80)에 대한 속도 제한으로 구성합니다.
[edit firewall policer discard] user@R1# set if-exceeding bandwidth-limit 700m user@R1# set if-exceeding burst-size-limit 15k
빨간색 트래픽 플로우에서 패킷을 폐기하도록 폴리서 구성합니다.
[edit firewall policer discard] user@R1# set then discard
모든 TCP 트래픽을 포트 HTTP(포트 80)로 수락하도록 방화벽의 두 조건을 구성합니다.
[edit firewall family inet filter mf-classifier] user@R1# set term t1 from protocol tcp user@R1# set term t1 from port 80
폴리서 를 사용하여 HTTP TCP 트래픽을 속도 제한하도록 방화벽 작업을 구성합니다.
[edit firewall family inet filter mf-classifier] user@R1# set term t1 then policer discard
방화벽 필터의 끝에서 다른 모든 트래픽을 수용하는 기본 작업을 구성합니다.
그렇지 않으면 인터페이스에 도착하여 방화벽에 의해 명시적으로 수락되지 않은 모든 트래픽은 폐기됩니다.
[edit firewall family inet filter mf-classifier] user@R1# set term t2 then accept
방화벽 필터를 출력 필터로 인터페이스 ge-2/0/8에 적용합니다.
[edit interfaces ge-2/0/8 unit 0 family inet] user@R1# set filter output mf-classifier
OSPF를 구성합니다.
[edit protocols ospf] user@R1# set area 0.0.0.0 interface ge-2/0/5.0 passive user@R1# set area 0.0.0.0 interface lo0.0 passive user@R1# set area 0.0.0.0 interface ge-2/0/8.0
단계별 절차
디바이스 R2 구성:
디바이스 인터페이스를 구성합니다.
[edit interfaces] set ge-2/0/7 description to-Host set ge-2/0/7 unit 0 family inet address 172.16.80.2/30 set ge-2/0/8 description to-R1 set ge-2/0/8 unit 0 family inet address 10.50.0.2/30 set lo0 unit 0 description looback-interface set lo0 unit 0 family inet address 192.168.14.1/32
OSPF를 구성합니다.
[edit protocols ospf] set area 0.0.0.0 interface ge-2/0/7.0 passive set area 0.0.0.0 interface lo0.0 passive set area 0.0.0.0 interface ge-2/0/8.0
결과
구성 모드에서 , show firewall
및 show protocols OSPF
명령을 입력하여 구성을 show interfaces
확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
ge-2/0/5 { description to-Host; unit 0 { family inet { address 172.16.70.2/30; } } } ge-2/0/8 { description to-R2; unit 0 { family inet { filter { output mf-classifier; } address 10.50.0.1/30; } } } lo0 { unit 0 { description looback-interface; family inet { address 192.168.13.1/32; } } }
user@R1# show firewall family inet { filter mf-classifier { term t1 { from { protocol tcp; port 80; } then policer discard; } term t2 { then accept; } } } policer discard { if-exceeding { bandwidth-limit 700m; burst-size-limit 15k; } then discard; }
policer discard { if-exceeding { bandwidth-limit 700m; burst-size-limit 15k; } then discard; }
user@R1# show protocols ospf area 0.0.0.0 { interface ge-2/0/5.0 { passive; } interface lo0.0 { passive; } interface ge-2/0/8.0; }
디바이스 R1 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
user@R2# show interfaces ge-2/0/7 { description to-Host; unit 0 { family inet { address 172.16.80.2/30; } } } ge-2/0/8 { description to-R1; unit 0 { family inet { address 10.50.0.2/30; } } } lo0 { unit 0 { description looback-interface; family inet { address 192.168.14.1/32; } } }
user@R2# show protocols ospf area 0.0.0.0 { interface ge-2/0/7.0 { passive; } interface lo0.0 { passive; } interface ge-2/0/8.0; }
디바이스 R2 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
확인
구성이 제대로 작동하는지 확인합니다.
카운터 삭제
목적
방화벽 카운터가 삭제되는지 확인합니다.
작업
디바이스 R1에서 명령을 실행 clear firewall all
하여 방화벽 카운터를 0으로 재설정합니다.
user@R1> clear firewall all
TCP 트래픽을 네트워크로 전송하고 폐기 사항 모니터링
목적
전송되는 관심 트래픽이 출력 인터페이스(ge-2/0/8)에서 속도 제한이 있는지 확인합니다.
작업
트래픽 생성기를 사용하여 소스 포트가 80인 20TCP 패킷을 전송합니다.
-의 플래그는 소스 포트를 설정합니다. -k 플래그는 소스 포트가 증가하지 않고 80에서 안정적으로 유지되도록 합니다. -c 플래그는 패킷 수를 10으로 설정합니다. -d 플래그는 패킷 크기를 설정합니다.
대상 IP 주소 172.16.80.1은 디바이스 R2의 다운스트림인 사용자를 나타냅니다. 사용자는 호스트(트래픽 생성기에 의해 에뮬레이션된 웹 서버)의 웹 페이지를 요청했으며 요청에 대한 응답으로 패킷이 전송됩니다.
참고:이 예에서는 폴리서 수가 8Kbps의 대역폭 제한과 1500KBps의 버스트 크기 제한으로 감소하여 일부 패킷이 누락되도록 합니다.
[root@host]# hping 172.16.80.1 -s 80 -k -d 375 -c 20 [root@tp-lnx03 rtwright]# hping 172.16.80.1 -s 80 -k -d 375 -c 20 HPING 172.16.80.1 (eth1 172.16.80.1): NO FLAGS are set, 40 headers + 375 data bytes len=46 ip=172.16.80.1 ttl=62 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=4000.8 ms . . . --- 172.16.80.1 hping statistic --- 20 packets transmitted, 12 packets received, 40% packet loss
디바이스 R1에서 명령을 사용하여 방화벽 카운터를
show firewall
확인합니다.user@R1> show firewall user@sugar# run show firewall Filter: mf-classifier Policers: Name Bytes Packets discard-t1 3320 8
의미
1단계와 2단계에서 두 디바이스의 출력은 8개의 패킷이 폐기되었음을 보여줍니다. 즉, 최소 8Kbps의 녹색(IN-contract HTTP 포트 80) 트래픽이 있었고 빨간색 계약 외 HTTP 포트 80 트래픽에 대한 1500KBps 버스트 옵션이 초과되었습니다.