MX, M 및 T 시리즈 라우터에서 트래픽 샘플링 구성
트래픽 샘플링을 통해 트래픽을 PIC(Physical Interface Card)에 복사할 수 있으며, PIC(Physical Interface Card)는 라우터가 패킷을 원래 목적지로 전달하는 동안 플로우 어카운팅을 수행합니다. 다음 세 위치 중 하나에서 샘플링을 수행하도록 라우터를 구성할 수 있습니다.
-
라우팅 엔진에서 샘플링된 프로세스를 사용합니다. 이 방법을 선택하려면 문을 포함하는 일치하는 용어와 함께 필터(입력 또는 출력)를
then sample사용합니다. -
모니터링 서비스, 적응형 서비스 또는 멀티서비스 PIC에서 사용할 수 있습니다.
-
서비스 DPC(Dense Port Concentrator)가 필요 없는 인라인 데이터 경로에서 이 인라인 활성 샘플링을 수행하려면 특정 속성을 가진 샘플링 인스턴스를 정의합니다. 하나의 FPC(Flexible PIC Concentrator)는 하나의 인스턴스만 지원할 수 있습니다. 각 인스턴스의 경우, 서비스 PIC 기반 샘플링 또는 인라인 샘플링이 패밀리당 지원됩니다. 인라인 샘플링은 버전 9 및 IPFIX 플로우 수집 템플릿을 지원합니다.
라우팅 엔진 기반 샘플링은 VPN 라우팅 및 포워딩(VRF) 인스턴스에서 지원되지 않습니다.
트래픽 샘플링을 위한 방화벽 필터 구성
트래픽 샘플링을 위해 방화벽 필터를 구성하려면 다음 작업을 수행해야 합니다.
-
계층 수준에서 문을
[edit firewall family family-name]포함하여filter샘플링되는 논리 인터페이스에 적용할 방화벽 필터를 생성합니다. 필터then문에서 작업 수정자와sample작업accept을 지정해야 합니다.filter filter-name { term term-name { then { sample; accept; } } }
방화벽 필터 동작 및 동작 변경 도구에 대한 자세한 내용은 라우팅 정책, 방화벽 필터 및 트래픽 폴리서 사용자 가이드를 참조하십시오.
-
계층 수준에서 및
filter문을 포함하여address트래픽을 샘플링하려는 인터페이스에[edit interfaces interface-name unit logical-unit-number family family-name]필터를 적용합니다.address address { } filter { input filter-name; }
인터페이스 및 방화벽 필터에서 트래픽 샘플링을 구성할 때 M, MX 및 T 시리즈 라우터에 다음 전제 조건이 적용됩니다.
-
forwarding-options 설정을 구성하지 않고 인터페이스의 inet 또는 inet6 제품군에 대한 방화벽 필터에서 샘플 작업을 구성하는 경우, 포트 미러링 또는 플로우 탭 기능도 구성할 때 조작상의 문제가 발생할 수 있습니다. 이와 같은 시나리오에서는 방화벽 필터와 일치하는 모든 패킷이 서비스 PIC로 잘못 전송됩니다.
-
IPv4 패킷에 대한 방화벽 필터의 샘플 작업을 지정하기 위해 계층 수준에서 문을 포함하는
then sample경우 계층 수준에서 문을 포함하거나instance instance-name family inet계층 수준에서 문을[edit forwarding-options sampling][edit forwarding-options sampling]포함family inet해야[edit firewall family inet filter filter-name term term-name]합니다. 마찬가지로, IPv6 패킷에 대한 방화벽 필터에서[edit firewall family inet6 filter filter-name term term-name]샘플 작업을 지정하기 위해 계층 수준에서 thensample문을 포함하는 경우, 계층 수준에서 문을 포함하거나instance instance-name family inet6계층 수준에서 문을[edit forwarding-options sampling][edit forwarding-options sampling]포함family inet6해야 합니다. 그렇지 않으면 구성을 커밋하려고 할 때 커밋 오류가 발생합니다. -
또한 계층 수준에서 샘플링 입력 또는 샘플링 출력 문을
[edit interface interface-name unit logical-unit-number]포함하여 논리 인터페이스에서 트래픽 샘플링을 구성하는 경우, 계층 수준에서 문을[edit forwarding-options sampling]포함하거나instance instance-name family inet | inet6계층 수준에서 문을[edit forwarding-options sampling]포함family inet | inet6해야 합니다.
논리적 인터페이스에서 트래픽 샘플링 구성
논리적 인터페이스에서 트래픽 샘플링을 구성하려면 샘플링을 활성화하고 계층 수준에서 샘플링 문을 [edit forwarding-options] 포함하여 0이 아닌 샘플링 속도를 지정합니다.
sampling {
input {
rate
number;
run-length
number;
max-packets-per-second
number;
maximum-packet-length
bytes;
}
라우팅 엔진 기반 샘플링을 사용할 경우, 문을 포함하여 트래픽 임계값을 max-packets-per-second 지정합니다. 이 값은 샘플링할 최대 패킷 수이며, 이를 초과하면 샘플링 메커니즘이 패킷 삭제를 시작합니다. 범위는 0에서 65,535 사이입니다. 값이 0이면 패킷 포워딩 엔진이 패킷을 샘플링하지 않습니다. 기본값은 1000입니다.
액티브 모니터링을 구성하고 문에서 output 모니터링 서비스, 적응형 서비스 또는 멀티서비스 PIC를 지정하거나 인라인 샘플링을 max-packets-per-second 구성할 때 값은 무시됩니다.
및 run-length 값을 rate 설정하여 샘플링 속도를 지정합니다(그림 1 참조).
구성
PIC 기반 플로우 모니터링이 활성화된 논리적 인터페이스에서 ms- 수신 샘플링을 구성하지 마십시오. 이는 원치 않는 플로우 모니터링 동작을 유발하고 단일 패킷의 반복 샘플링을 초래할 수 있습니다. Junos OS 릴리스 15.1부터 해당 인터페이스에서 수신 트래픽 샘플링을 구성하려고 하면 커밋 오류가 발생합니다. Junos OS 릴리스 14.2 및 이전 버전에서는 커밋 오류가 발생하지 않지만 해당 인터페이스에서 수신 트래픽 샘플링을 구성해서는 안 됩니다.
PIC 기반 플로우 모니터링이 ms-fpc/pic/port.logical-unit 인터페이스에서 활성화된 경우, 해당 인터페이스에서 수신 트래픽 샘플링을 구성하려고 시도하면 커밋 검사 오류가 발생합니다. 이 오류는 수신 샘플링 및 PIC 기반 논리 인터페이스의 ms- 플로우 모니터링 작업의 조합이 원치 않는 플로우 모니터링 동작을 유발하고 단일 패킷의 반복 샘플링을 초래할 수 있기 때문에 발생합니다. PIC 기반 플로우 모니터링이 활성화된 논리적 인터페이스에서 ms- 수신 샘플링을 구성해서는 안 됩니다.
명령문은 rate 샘플링할 패킷의 비율을 지정합니다. 예를 들어, 속도를 10으로 구성하면 매 10개당 패킷 수가 샘플링되며, x 여기서 x=실행 길이 + 1입니다. 기본적으로 속도는 0이며, 이는 트래픽이 샘플링되지 않는다는 것을 의미합니다.
명령문은 run-length 초기 단일 패킷 트리거 이벤트 다음에 샘플링할 일치하는 패킷의 수를 지정합니다. 기본적으로 실행 길이는 0이며, 이는 트리거 이벤트 이후 더 이상 트래픽이 샘플링되지 않음을 의미합니다. 범위는 0에서 20 사이입니다. 0보다 큰 실행 길이를 구성하면 이미 샘플링된 패킷 다음에 패킷을 샘플링할 수 있습니다.
및 maximum-packet-length 구성 문은 run-length MX80 라우터에서 지원되지 않습니다.
명령문을 포함하지 않으면 샘플링이 input 비활성화됩니다.
파일에서 샘플링된 패킷을 수집하려면 계층 수준에서 문을 [edit forwarding-options sampling output] 포함합니다file. 출력 파일 형식은 이 장의 뒷부분에서 설명합니다.
트래픽 샘플링 비활성화
라우터에서 트래픽 샘플링을 명시적으로 비활성화하려면, 계층 수준에서 문을 [edit forwarding-options sampling] 포함합니다disable:
disable;
한 번 샘플링
액티브 모니터링을 위해 패킷을 한 번만 명시적으로 샘플링하려면 계층 수준에서 명령문을 [edit forwarding-options sampling] 포함합니다sample-once.
sample-once;
이 옵션을 설정하면 샘플링이 수신 및 송신 인터페이스 모두에서 활성화된 경우 패킷 중복을 방지하고 샘플링된 트래픽의 분석이 간소화됩니다.
샘플링 또는 미러링된 송신 패킷에 대한 Prerewrite ToS 값 보존
Junos OS 릴리스 14.1부터는 송신 샘플링 또는 미러링된 패킷에서 사전 정규화된 서비스 유형(ToS) 값을 보존할 수 있습니다. pre-rewrite-tos 계층 수준에서 문을 [edit forwarding-options sampling] 포함합니다.
MPC 기반 인터페이스에서는 계층 수준에서 문을 포함하여 rewrite-rules dscp rule_name CoS(class-of-service) 구성을 사용하거나 계층 수준에서 문을 포함하여 dscp 방화벽 필터 구성을 사용하는 중 하나로 ToS 재작성을 [edit firewall family family-name filter filter-name term term-name then] 구성할 수 [edit class-of-service interfaces interface-name unit logical-unit-number] 있습니다. ToS 재작성이 구성된 경우, 송신 미러링 또는 샘플링된 사본에는 기본적으로 사후 재작성 ToS 값이 포함됩니다. pre-rewrite-tos 구성을 통해 샘플링 또는 미러링된 패킷에서 재작성 전 ToS 값을 유지할 수 있습니다.
-
CoS(class of service) 및 방화벽 필터 구성을 모두 사용하여 송신 인터페이스에 ToS 재작성이 구성되고 명령문도
pre-rewrite-tos구성된 경우, 송신 샘플링 패킷에는 방화벽 필터 구성을 사용하여 설정된 DSCP 값이 포함됩니다. 그러나 문이 구성되지 않은 경우pre-rewrite-tos송신 샘플링 패킷에는 CoS 구성에 의해 설정된 DSCP 값이 포함됩니다. -
pre-rewrite-tos명령문을 사용하여 및family inet6에서family inet수행된 샘플링에 대해서만 사전 정규화 ToS 값을 유지하도록 구성할 수 있습니다. -
이 기능은 계층 수준에서 구성할
[edit logical-systems]수 없습니다. 구성 아래의forwarding-option전역 수준에서만 구성할 수 있습니다. -
수신 및 송신 인터페이스 모두에서 방화벽 필터를 사용하여 ToS 재작성을 구성하면, 송신 샘플링된 패킷에는 명령문이 구성된 경우
pre-rewrite-tos송신 ToS 재작성 구성에 의해 설정된 DSCP 값이 포함됩니다. 그러나 문이 구성되지 않은 경우pre-rewrite-tos송신 샘플링 패킷에는 송신 방화벽 필터에 대한 ToS 재작성 구성에 의해 설정된 DSCP 값이 포함됩니다. -
pre-rewrite-tos문이 구성되고 계층 수준에서pre-rewrite-tos비활성화 또는 삭제 작업이 수행[edit forwarding-options]되는 경우에도 구성은 여전히 활성 상태로 유지됩니다. 이러한 경우에 구성을 비활성화pre-rewrite-tos하려면 계층 수준에서 비활성화 또는 삭제 작업을[edit forwarding-options]수행하기 전에 계층 수준에서 문을[edit forwarding-options sampling]명시적으로 비활성화하거나 삭제pre-rewrite-tos해야 합니다.
트래픽 샘플링 출력 구성
트래픽 샘플링 출력을 구성하려면 계층 수준에서 [edit forwarding-options sampling family (inet | inet6 | mpls) output] 다음 문을 포함합니다.
aggregate-export-interval
seconds;
flow-active-timeout
seconds;
flow-inactive-timeout
seconds;
extension-service
service-name;
flow-server
hostname {
aggregation {
autonomous-system;
destination-prefix;
protocol-port;
source-destination-prefix {
caida-compliant;
}
source-prefix;
}
autonomous-system-type (origin | peer);
(local-dump | no-local-dump);
port
port-number;
source-address address;
version
format;
version9 {
template template-name;
}
}
interface
interface-name {
engine-id
number;
engine-type
number;
source-address
address;
}
file {
disable;
filename
filename;
files
number;
size
bytes;
(stamp | no-stamp);
(world-readable | no-world-readable);
}
MX 시리즈 라우터에서 인라인 플로우 모니터링을 구성하려면 계층 수준에서 문을 [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output] 포함합니다inline-jflow. 인라인 샘플링은 UDP를 전송 프로토콜로 사용하는 IP_FIX라는 새로운 형식만 지원합니다. 인라인 샘플링을 구성할 때는 계층 수준과 [edit services flow-monitoring] 계층 수준에 명령문을 [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output flow-server address] 포함 version-ipfix 해야 합니다. 인라인 플로우 모니터링 구성에 대한 자세한 내용은 라우터, 스위치 또는 NFX250을 사용하여 인라인 액티브 플로우 모니터링 구성을 참조하십시오.
플로우 모니터링 인터페이스에 샘플링된 트래픽을 지시하려면 문을 포함합니다interface. 및 engine-type 문은 engine-id 인터페이스의 ID 및 유형 번호를 지정하며, FPC(Flexible PIC Concentrator), PIC, 슬롯 번호, 섀시 유형을 기반으로 동적으로 생성됩니다. 문은 source-address 트래픽 소스를 지정합니다.
Junos OS 릴리스 19.3R1부터 주니퍼 ATP(Advanced Threat Prevention) 클라우드에서 인라인 플로우 모니터링을 구성하려면 계층 수준에서 명령문을 포함하십시오 flow-server [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output]. 인라인 샘플링은 UDP를 전송 프로토콜로 사용하는 IP_FIX라는 새로운 형식만 지원합니다. 인라인 샘플링을 구성할 때는 계층 수준과 [edit services flow-monitoring] 계층 수준에 명령문을 [edit forwarding-options sampling instance instance-name family (inet | inet6 | mpls) output flow-server address] 포함 version-ipfix 해야 합니다.
플로우 샘플링 버전 9 출력을 구성하려면 계층 수준에서 문을 [edit forwarding-options sampling output version9] 포함 template 해야 합니다. cflowd에 대한 정보는 플로우 어그리게이션 활성화를 참조하십시오.
문은 aggregate-export-interval 계정 폐기 구성에 설명되어 있으며 flow-active-timeout 및 flow-inactive-timeout 문은 플로우 모니터링 구성에 설명되어 있습니다.
트래픽 샘플링 결과는 /var/tmp 디렉터리의 파일에 자동으로 저장됩니다. 파일에서 샘플링된 패킷을 수집하려면 계층 수준에서 문을 포함합니다file.[edit forwarding-options sampling family inet output]
file {
disable;
filename
filename;
files
number;
size
bytes;
(stamp | no-stamp);
(world-readable | no-world-readable);
}
트래픽 샘플링 출력 형식
트래픽 샘플링 출력은 ASCII 텍스트 파일에 저장됩니다. 다음은 /var/tmp 디렉터리의 파일에 저장되는 트래픽 샘플링 출력의 예입니다. 출력 파일의 각 줄에는 하나의 샘플링된 패킷에 대한 정보가 들어 있습니다. 필요에 따라 각 줄에 대한 타임스탬프를 표시할 수 있습니다.
열 헤더는 1000개 패킷의 각 그룹 다음에 반복됩니다.
# Apr 7 15:48:50
Time Dest Src Dest Src Proto TOS Pkt Intf IP TCP
addr addr port port len num frag flags
Apr 7 15:48:54 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0
Apr 7 15:48:55 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0
Apr 7 15:48:56 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0
Apr 7 15:48:57 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0
Apr 7 15:48:58 192.168.9.194 192.168.9.195 0 0 1 0x0 84 8 0x0 0x0
파일에 my-sample대한 타임스탬프 옵션을 설정하려면 다음을 입력합니다.
[edit forwarding-options sampling output file]
user@host# set filename my-sample files 5 size 2m world-readable stamp;
타임스탬프 옵션을 전환할 때마다 파일에 새 헤더가 포함됩니다. 옵션을 설정하면 stamp 필드가 Time 표시됩니다.
# Apr 7 15:48:50 # Time Dest Src Dest Src Proto TOS Pkt Intf IP TCP # addr addr port port len num frag flags # Feb 1 20:31:21 # Dest Src Dest Src Proto TOS Pkt Intf IP TCP # addr addr port port len num frag flags
트래픽 샘플링 작업 추적
추적 작업은 모든 트래픽 샘플링 작업을 추적하고 /var/log 디렉터리의 로그 파일에 기록합니다. 기본적으로 이 파일의 이름은 /var/log/sampled입니다. 기본 파일 크기는 128K이며 첫 번째 파일을 덮어쓰기 전에 10개의 파일이 생성됩니다.
트래픽 샘플링 작업을 추적하려면 계층 수준에서 [edit forwarding-options sampling] 명령문을 포함합니다traceoptions.
traceoptions {
no-remote-trace;
file
filename <files number> <size bytes> <match expression> <world-readable | no-world-readable>;
}
트래픽 샘플링 예시
예: 단일 SONET/SDH 인터페이스 샘플링
다음 구성은 단일 SONET/SDH 인터페이스의 모든 트래픽 중 극히 일부로부터 통계 샘플링 정보를 수집하여 라는 sonet-samples.txt파일에 수집합니다.
필터를 만듭니다.
[edit firewall family inet]
filter {
input sample-sonet {
then {
sample;
accept;
}
}
}
SONET/SDH 인터페이스에 필터를 적용합니다.
[edit interfaces]
so-0/0/1 {
unit 0 {
family inet {
filter {
input sample-sonet;
}
address 10.127.68.254/32 {
destination 172.16.74.7;
}
}
}
}
마지막으로 트래픽 샘플링을 구성합니다.
[edit forwarding-options]
sampling {
input {
family inet {
rate 100;
run-length 2;
}
}
family inet {
output {
file {
filename sonet-samples.txt;
files 40;
size 5m;
}
}
}
}
예: 단일 IP 주소에서 모든 트래픽 샘플링
다음 구성은 의 단일 소스 IP 주소 172.16.92.31에서 유래한 특정 기가비트 이더넷 포트에서 라우터로 들어오는 모든 패킷에 대한 통계 정보를 수집하여 라는 samples-172-16-92-31.txt파일에 수집합니다.
필터를 만듭니다.
[edit firewall family inet]
filter one-ip {
term get-ip {
from {
source-address 172.16.92.31;
}
then {
sample;
accept;
}
}
}
필터를 기가비트 이더넷 인터페이스에 적용합니다.
[edit interfaces]
ge-4/1/1 {
unit 0 {
family inet {
filter {
input one-ip;
}
address 10.45.92.254;
}
}
}
마지막으로 모든 후보 샘플에 대한 통계를 수집합니다. 이 경우 모든 통계를 수집합니다.
[edit forwarding-options]
sampling {
input {
family inet {
rate 1;
}
}
family inet {
output {
file {
filename samples-172-16-92-31.txt;
files 100;
size 100k;
}
}
}
}
예: 모든 FTP 트래픽 샘플링
다음 구성은 특정 T3 인터페이스의 출력 경로에서 FTP 데이터 전송 프로토콜을 사용하여 패킷의 중간 비율에 대한 통계 정보를 수집하고 라는 t3-ftp-traffic.txt파일에 정보를 수집합니다.
필터를 만듭니다.
[edit firewall family inet]
filter ftp-stats {
term ftp-usage {
from {
destination-port [ftp ftp-data];
}
then {
sample;
accept;
}
}
}
T3 인터페이스에 필터를 적용합니다.
[edit interfaces]
t3-7/0/2 {
unit 0 {
family inet {
filter {
input ftp-stats;
}
address 10.35.78.254/32 {
destination 10.35.78.4;
}
}
}
}
마지막으로, 후보 표본의 10%에 대한 통계를 수집합니다.
[edit forwarding-options]
sampling {
input {
family inet {
rate 10;
}
}
family inet {
output {
file {
filename t3-ftp-traffic.txt;
files 50;
size 1m;
}
}
}
}
변경 내역 표
기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인하세요.
pre-rewrite-tos 계층 수준에서 문을
[edit forwarding-options sampling] 포함합니다.