예: 고정된 인터페이스 기반 분류로 원격 디바이스의 모든 트래픽 분류
이 예는 수신 인터페이스를 기반으로 하는 고정 분류의 구성을 보여줍니다. 고정 분류는 물리적 인터페이스 또는 논리적 인터페이스를 기반으로 할 수 있습니다.
요구 사항
이 절차를 확인하기 위해 이 예에서는 트래픽 생성기를 사용합니다. 트래픽 생성기는 하드웨어 기반이거나 서버 또는 호스트 시스템에서 실행되는 소프트웨어일 수 있습니다.
이 절차의 기능은 Junos를 실행하는 디바이스에서 광범위하게 지원됩니다. 여기에 표시된 예는 지원되는 Junos OS 릴리스를 실행하는 SRX 시리즈 방화벽에서 테스트 및 검증되었습니다. SRX 시리즈 방화벽은 라우터로 실행되도록 구성됩니다.
SRX 시리즈 방화벽에서 테스트를 수행하는 경우, 테스트 환경에서 보안되지 않은 라우터로 실행되도록 디바이스를 구성해야 할 수 있습니다. 일반적으로 프로덕션 환경에서는 이 작업을 수행하지 않습니다.
개요
고정 인터페이스 분류자는 특정 인터페이스에서 포워딩 클래스로 모든 패킷을 분류하는 가장 간단한 방법입니다. 일반적으로 에지 라우터에서 이 접근 방식을 사용하여 원격 디바이스에서 특정 포워딩 클래스 및 대기열로 모든 트래픽을 분류합니다. 고정 인터페이스 분류자는 단순히 패킷이 도착하는 수신 인터페이스를 살펴보고 해당 인터페이스에서 수신된 모든 트래픽을 특정 서비스 클래스에 할당합니다.
고정 인터페이스 분류자는 재작성 규칙 및 드롭 프로필에 사용되는 로컬에서 의미 있는 packet-loss-priority를 설정할 수 없습니다. 암시적 packet-loss-priority는 모든 고정 인터페이스 분류자에 대해 낮습니다.
고정 인터페이스 분류자는 인터페이스가 여러 서비스 클래스에 속하는 트래픽을 수신하는 시나리오에는 부적합합니다. 그러나 인터페이스 기반 분류는 다른 분류 프로세스와 결합할 때 유용할 수 있습니다. 인바운드 인터페이스를 기반으로 하는 필터링은 예를 들어 코드 포인트 표시를 기반으로 하는 필터링과 결합할 때 분류의 세분성을 향상시킬 수 있습니다. 인터페이스 및 코드 포인트 마킹 분류 프로세스를 결합하면 패킷이 수신되는 인터페이스에 따라 단일 코드 포인트 마킹이 다른 의미를 가질 수 있습니다. 고정 인터페이스 분류자를 코드 포인트 분류자와 결합하려는 경우 이는 사실상 다중 필드 분류자입니다.
고정 인터페이스 분류자에 대한 보다 세분화된 대안
Junos에서는 다음과 같이 다중 필드 분류자를 사용하여 인터페이스 기반 분류와 코드 포인트 분류를 결합할 수 있습니다.
[edit firewall family inet filter MF_CLASSIFIER term 1]
from {
dscp ef;
interface ge-0/0/0.0;
}
then forwarding-class Voice;
다음 주니퍼 네트웍스 학습 바이트 비디오에서는 분류기에 대해 자세히 설명합니다.
토폴로지
그림 1 은 샘플 네트워크를 보여줍니다.
음성 트래픽을 시뮬레이션하기 위해 이 예는 호스트에서 다운스트림 디바이스로 전송되는 TCP 패킷을 보여줍니다. 디바이스 R2에서 고정 인터페이스 분류자는 음성 트래픽에 대해 정의된 대기열로 패킷을 라우팅합니다.
분류자는 디바이스 R2의 인터페이스 ge-0/0/0에 할당됩니다. 항상 그렇듯이 대기열 할당 확인은 디바이스 R2의 ge-0/0/1인 송신 인터페이스에서 수행됩니다.
CLI 빠른 구성 은 그림 1의 모든 주니퍼 네트웍스 디바이스에 대한 구성을 보여줍니다. 단계별 절차 섹션에서는 디바이스 R2의 단계를 설명합니다.
구성
절차
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 변경한 다음, 계층 수준에서 [edit] 명령을 복사하여 CLI에 붙여 넣습니다.
디바이스 R1
set interfaces ge-0/0/0 description to-R2 set interfaces ge-0/0/0 unit 0 family inet address 10.30.0.1/30 set interfaces ge-0/0/1 description to-host set interfaces ge-0/0/1 unit 0 family inet address 172.16.50.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 passive set protocols ospf area 0.0.0.0 interface lo0.0 passive
디바이스 R2
set interfaces ge-0/0/0 unit 0 family inet address 10.30.0.2/30 set interfaces ge-0/0/1 unit 0 family inet address 10.40.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set class-of-service forwarding-classes queue 0 BE-data set class-of-service forwarding-classes queue 1 Premium-data set class-of-service forwarding-classes queue 2 Voice set class-of-service forwarding-classes queue 3 NC set class-of-service interfaces ge-0/0/0 unit 0 forwarding-class Voice
디바이스 R3
set interfaces ge-0/0/0 unit 0 family inet address 10.50.0.1/30 set interfaces ge-0/0/1 unit 0 family inet address 10.40.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive
단계별 절차
다음 예에서는 구성 계층에서 다양한 수준을 탐색해야 합니다. 자세한 내용은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
기본 DSCP BA 분류자를 활성화하려면:
-
디바이스 인터페이스를 구성합니다.
[edit interfaces] user@R2# set ge-0/0/0 unit 0 family inet address 10.30.0.2/30 user@R2# set ge-0/0/1 unit 0 family inet address 10.40.0.1/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
-
내부 게이트웨이 프로토콜(IGP) 또는 정적 경로를 구성합니다.
[edit protocols ospf area 0.0.0.0] user@R2# set interface ge-0/0/0.0 user@R2# set interface ge-0/0/1.0 user@R2# set interface lo0.0 passive
-
포워딩 클래스 집합을 구성합니다.
[edit class-of-service forwarding-classes] user@R2# set queue 0 BE-data user@R2# set queue 1 Premium-data user@R2# set queue 2 Voice user@R2# set queue 3 NC
-
ge-0/0/0.0에 도착하는 모든 트래픽을 음성 대기열에 매핑합니다.
[edit class-of-service interfaces ge-0/0/0 unit 0] user@R2# set forwarding-class Voice
결과
구성 모드에서 and show class-of-service 명령을 입력 show interfaces 하여 구성을 확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 지침을 반복하여 구성을 수정합니다.
user@R2# show interfaces
ge-0/0/0 {
unit 0 {
family inet {
address 10.30.0.2/30;
}
}
}
ge-0/0/1 {
unit 0 {
family inet {
address 10.40.0.1/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.2/32;
}
}
}
user@R2# show protocols
ospf {
area 0.0.0.0 {
interface ge-0/0/0.0;
interface ge-0/0/1.0;
interface lo0.0 {
passive;
}
}
}
user@R2# show class-of-service
forwarding-classes {
queue 0 BE-data;
queue 1 Premium-data;
queue 2 Voice;
queue 3 NC;
}
interfaces {
ge-0/0/0 {
unit 0 {
forwarding-class Voice;
}
}
}
디바이스 구성이 완료되면 구성 모드에서 들어갑니다 commit .
검증
구성이 제대로 작동하고 있는지 확인합니다.
고정 인터페이스 분류자 확인
목적
디바이스 R2의 수신 인터페이스에서 고정 인터페이스 분류자가 활성화되어 있는지 확인합니다. 분류자가 수신 패킷에 대해 작동하지만 발신(송신) 인터페이스에서 결과 대기열 할당을 볼 수 있다는 점을 명심하십시오.
작업
-
디바이스 R2의 송신 인터페이스에서 인터페이스 통계를 삭제합니다.
user@R2> clear interface statistics ge-0/0/1
-
패킷 생성기를 사용하여 디바이스 R2의 다운스트림에 있는 디바이스로 TCP 패킷을 보냅니다.
이 예는 패킷 생성기 hping을 사용합니다.
root@host> sudo hping3 10.40.0.2 -c 25 –fast HPING 10.40.0.2 (eth0 10.40.0.2): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=10.40.0.2 ttl=62 id=8619 sport=0 flags=RA seq=0 win=0 rtt=1.9 ms len=46 ip=10.40.0.2 ttl=62 id=8620 sport=0 flags=RA seq=1 win=0 rtt=2.8 ms len=46 ip=10.40.0.2 ttl=62 id=8621 sport=0 flags=RA seq=2 win=0 rtt=1.9 ms len=46 ip=10.40.0.2 ttl=62 id=8623 sport=0 flags=RA seq=3 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8624 sport=0 flags=RA seq=4 win=0 rtt=7.1 ms len=46 ip=10.40.0.2 ttl=62 id=8625 sport=0 flags=RA seq=5 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8626 sport=0 flags=RA seq=6 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8627 sport=0 flags=RA seq=7 win=0 rtt=1.9 ms len=46 ip=10.40.0.2 ttl=62 id=8628 sport=0 flags=RA seq=8 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8634 sport=0 flags=RA seq=9 win=0 rtt=7.4 ms len=46 ip=10.40.0.2 ttl=62 id=8635 sport=0 flags=RA seq=10 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8636 sport=0 flags=RA seq=11 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8637 sport=0 flags=RA seq=12 win=0 rtt=7.8 ms len=46 ip=10.40.0.2 ttl=62 id=8639 sport=0 flags=RA seq=13 win=0 rtt=7.0 ms len=46 ip=10.40.0.2 ttl=62 id=8640 sport=0 flags=RA seq=14 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8641 sport=0 flags=RA seq=15 win=0 rtt=7.2 ms len=46 ip=10.40.0.2 ttl=62 id=8642 sport=0 flags=RA seq=16 win=0 rtt=2.1 ms len=46 ip=10.40.0.2 ttl=62 id=8643 sport=0 flags=RA seq=17 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8644 sport=0 flags=RA seq=18 win=0 rtt=7.3 ms len=46 ip=10.40.0.2 ttl=62 id=8645 sport=0 flags=RA seq=19 win=0 rtt=1.7 ms len=46 ip=10.40.0.2 ttl=62 id=8646 sport=0 flags=RA seq=20 win=0 rtt=7.1 ms len=46 ip=10.40.0.2 ttl=62 id=8647 sport=0 flags=RA seq=21 win=0 rtt=2.0 ms len=46 ip=10.40.0.2 ttl=62 id=8648 sport=0 flags=RA seq=22 win=0 rtt=1.7 ms len=46 ip=10.40.0.2 ttl=62 id=8649 sport=0 flags=RA seq=23 win=0 rtt=1.8 ms len=46 ip=10.40.0.2 ttl=62 id=8651 sport=0 flags=RA seq=24 win=0 rtt=1.8 ms
-
디바이스 R2에서 음성 대기열이 증가하는지 확인합니다.
user@R2> show interfaces extensive ge-0/0/1 | find "queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 BE-data 0 0 0 1 Premium-data 0 0 0 2 Voice 25 25 0 3 NC 3 3 0 Queue number: Mapped forwarding classes 0 BE-data 1 Premium-data 2 Voice 3 NC ...
의미
출력은 디바이스 R2의 ge-0/0/0 인터페이스를 통해 25개 패킷을 전송한 후 음성 대기열이 25개 패킷씩 증가했음을 보여줍니다.