이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 명령 flowdumperp입니다.
프로그램:
이름
플로우 덤퍼 - GREP(1) 원시 흐름 파일에 대한 유사 유틸리티
개요
플로우 덤프 [-h] [-v] [-s|S|r|R] [-a|n] [[-I expr] -e expr [-E expr]] [-c] [-B 파일] [ -o 출력 파일] [흐름 파일 [...]]
하지만 일반적으로:
flowdumper [-s] -e expr 흐름 파일 [...]
기술
플로우 덤퍼 하는 GREP(1) cflowd 또는 cflowd에서 흐름을 선택하고 처리하기 위한 유사 유틸리티
흐름 도구 원시 흐름 파일. 선택 기준은 "-e" 옵션을 사용하여 지정됩니다.
아래에서 묘사 되어진.
플로우 덤퍼의 주요 기능은 다음과 같습니다.
· 두 가지 기본 제공 형식 또는 다음 형식 중 하나로 원시 흐름 파일의 내용을 인쇄합니다.
사용자가 소유합니다. 내장된 "long" 형식은 flowdump에서 생성된 형식과 매우 유사합니다.
cflowd와 함께 제공되는 명령. "짧은" 한 줄 형식이 적합합니다.
다음과 같은 라인 지향 필터에 의한 후속 후처리 SED(1).
· 필터 역할을 하여 파일 또는 표준 입력에서 원시 흐름 입력을 읽고,
표준 출력에서 필터링된 원시 흐름 출력을 생성합니다. 이것은 방법과 유사합니다. GREP(1)
텍스트 파일에 자주 사용됩니다.
· perl로 표현할 수 있는 거의 모든 기준에 따라 흐름을 선택합니다.
통사론.
"-e" 표현식에서 사용할 수 있는 "흐름 변수" 및 기타 기호는 다음과 같습니다.
다음과 같이 사용될 때 Cflow 모듈에서 사용할 수 있습니다.
Cflow 사용 qw(:flowvars :tcpflags :icmptypes :icmpcodes);
이러한 값에 대한 자세한 내용은 Cflow perl 설명서를 참조하십시오(예: "perldoc Cflow").
대부분의 펄 구문은 "-e", "-I" 및 "-E"로 지정된 표현식에서 허용됩니다.
옵션. 연산자("man perlop")에 대한 자세한 내용은 perl 매뉴얼 페이지를 참조하십시오.
해당 표현식에서 사용할 수 있는 함수("man perlfunc").
인수 없이 실행하면 표준 입력을 표준 출력으로 필터링합니다.
옵션 및 해당 인수는 대략 유용성 순서로 다음과 같습니다.
"-시간"
사용 정보를 보여줍니다
니모닉: '헬프'
"-NS"
모든 흐름 인쇄
"-e"가 지정되지 않은 경우 암시됨
니모닉: '할거야
"-e" 특급
흐름당 한 번 이 표현식을 평가합니다.
니모닉: 'e' 표현
"-씨"
입력에서 일치하는 흐름 수 인쇄
니모닉: '개수'
"-NS"
"-n"으로 무시되는 짧은(한 줄) 형식의 인쇄 흐름
니모닉: '짧은'
"-NS"
원시/이진 흐름 파일 형식으로 흐름 인쇄
"-n"으로 무시
니모닉: 'raw'
"-NS"
원시/이진 흐름 파일 형식으로 흐름을 "재포장"하고 인쇄합니다.
"-e" 필요, "-n"으로 무시, "-p"와 함께 유용
니모닉: 'R'pack raw
"-N"
일치하는 흐름을 인쇄하지 마십시오.
니모닉: "perl "-n"" 또는 "sed "-n""
"-o" output_file
지정된 파일로 출력을 보냅니다. 싱글 printf(3) 문자열 변환 지정자는
output_file 값 내에서 사용되어야 합니다(예: "/ tmp /%s.txt")를 사용하여 출력 파일을 만듭니다.
name 입력 파일 basename의 함수입니다.
니오믹: 'o'출력 파일
"-NS"
"이전" 짧은(한 줄) 형식의 인쇄 흐름
"-n"으로 무시
니모닉: '짧은'
"-V"
메시지로 장황하다
니모닉: 'verbose'
"-V"
메시지에 대해 매우 장황하게 작성(""-v""를 의미)
니모닉: '매우 장황하다'
"-나" 특급
흐름 처리 전 초기에 평가식
"-e" 없이는 거의 쓸모가 없습니다.
니모닉: 'I' 초기 표현
"-E" 특급
흐름 처리가 완료된 후 평가식
"-e" 없이는 거의 쓸모가 없습니다.
니모닉: 'E'ND 표현식
"-B" 파일
Net::ParseRouteTable을 사용하여 지정된 BGP 덤프 파일을 로드합니다.
선택적 표현식에서 이제 다음 변수를 참조할 수 있습니다.
$dst_as_path_arrayref
$dst_origin_as
$dst_peer_as
$src_as_path_arrayref
$src_origin_as
$src_peer_as
조회가 발생합니다. 조회가 실패하면 값이 정의되지 않습니다.
니모닉: 'B'GP 덤프 파일
"-p" 접두사_mappings_file
이 형식의 IPv4 접두사 매핑이 포함된 파일 읽기(한 줄에 하나씩):
10.42.69.0/24 -> 10.69.42.0/24
...
이 옵션을 지정할 때 ENCODE를 호출할 수 있고 또 호출해야 합니다.
다음과 같은 IP 주소 흐름 변수를 인코딩하도록 표현식의 서브루틴
$Cflow::exporter, $Cflow::srcaddr, $Cflow::dstaddr 및 $Cflow::nexthop.
니모닉: 'p'픽스
사용 예
여러 줄 형식으로 모든 흐름을 호출기로 인쇄합니다.
$ flowdumper -a 흐름.* |적음
원시 이진 흐름 형식을 사용하여 모든 UDP 흐름을 다른 파일로 인쇄합니다.
$ flowdumper -re '17 == $protocol'flows.current > udp_flows.current
TCP 플래그에 SYN 비트가 설정된 모든 TCP 흐름을 인쇄합니다.
$ flowdumper -se '6 == $protocol && ($TH_SYN & $tcp_flags)' 흐름.*
원시 이진 흐름 형식을 사용하여 처음 10개의 흐름을 다른 파일로 인쇄합니다.
$ flowdumper -I '$n = 10' -re '$n-- 또는 exit' 흐름.*0 > head.cflow
두 줄 형식을 사용하여 시작 및 종료 시간이 있는 모든 흐름을 인쇄합니다.
$ flowdumper -se 'print scalar(localtime($startime)), "\n"' 흐름.*
짧은 한 줄 형식을 사용하여 지정된 소스 주소가 있는 모든 흐름을 인쇄합니다.
$ flowdumper -se '"10.42.42.42" eq $srcip' 흐름.*
더 빠르지만 덜 분명한 방식으로 동일한 작업을 수행합니다.
$ flowdumper -I '
소켓을 사용하십시오.
$addr = unpack("N", 소켓::inet_aton("10.42.42.42"));
' -se '$addr == $srcaddr' 흐름.*
(이 후자의 방법은 더 빨리 실행됩니다. inet_aton(3) 한 번 대신 한 번만 호출됩니다.
흐름당.)
지정된 네트워크/서브넷 내의 소스 주소가 있는 모든 흐름을 인쇄합니다.
$ 플로우 덤퍼 \
-저는 소켓을 사용합니다.
$mask = unpack("N", 소켓::inet_aton("10.42.0.0"));
$너비 = 16' \
-se '$mask == ((0xffffffff << (32-$width)) & $srcaddr)' 흐름.*
출발지 또는 목적지 주소 중 하나(둘 모두는 아님)인 모든 흐름을 인쇄합니다.
지정된 네트워크 또는 서브넷 집합 내:
$ 플로우 덤퍼 \
-나는 Net::Patricia를 사용합니다.
$pt = 순::패트리샤->신규;
지도 { $pt->add_string($_, 1) } qw( 10.42.0.0/16
10.69.0.0/16 )' \
-se '1 == ($pt->match_integer($srcaddr) +
$pt->match_integer($dstaddr))' 흐름.*
파이핑하여 "발화자"(고유한 소스 호스트 주소)의 총 수를 계산합니다.
종류(1)과하면 wc(1) 그것들을 세다:
$ 플로우 덤퍼 \
-나는 Net::Patricia를 사용합니다.
$pt = 순::패트리샤->신규;
지도 { $pt->add_string($_, 1) } qw( 10.42.0.0/16
10.69.0.0/16 )' \
-ne '$pt->match_integer($srcaddr) 및 인쇄 "$srcip\n"' 흐름.* \
|정렬 -u |wc -l
범위 내에 있는 "발화자"(고유 소스 호스트 주소)의 총 수를 계산합니다.
지정된 네트워크 또는 서브넷:
$ 플로우 덤퍼 \
-나는 Net::Patricia를 사용합니다.
$pt = 새로운 Net::Patricia;
지도 { $pt->add_string($_, 1) } qw( 10.42.0.0/16
10.69.0.0/16);
$talkers = 새로운 Net::Patricia' \
-ne '$pt->match_integer($srcaddr) &&
($talkers->match_integer($srcaddr) 또는
$talkers->add_string($srcip, 1))' \
-E 'printf("%d\n", $talkers->climb( sub { 1 } ))' 흐름.*
(많은 수의 흐름의 경우 이 후자의 방법이 더 빠릅니다.
Net::Patricia는 고유 주소로 시도하고 결과 노드를 계산합니다.
표준 출력으로 인쇄한 다음 정렬하여 몇 개인지 결정해야 합니다.
독특하다.)
TCP 흐름을 선택하고 접두사 인코딩에 따라 IP 주소를 "ENCODE"합니다.
"prefix_encodings.txt"에 지정됨:
$ flowdumper -p prefix_encodings.txt -se '6 == $protocol && ENCODE'
접두사에 따라 인코딩된 IP 주소를 사용하여 새로운 원시 흐름 파일을 생성합니다.
"prefix_encodings.txt"에 지정된 인코딩:
$ flowdumper -p prefix_encodings.txt -Re 'ENCODE' 흐름 >Flows.enc
$src_as 및 $dst_as origin AS 값이 채워진 원시 흐름 파일 세트 생성
외부 지정 라우팅 테이블("router.bgp" 파일에서) 조회를 기반으로 합니다.
IP 주소 정보가 XNUMX으로 대체되도록 합니다(익명성을 위해).
$ ssh router "show route protocol bgp terse" > router.bgp # 주니퍼
$ 플로우 덤퍼 \
-B 라우터.bgp \
-e '$src_as = $src_origin_as,
$dst_as = $dst_origin_as,
(($ 수출업자 = 0),
($srcaddr = 0),
($src_mask = 0),
($dstaddr = 0),
($dst_mask = 0),
($nexthop = 0), 1)' \
-NS \
-o / tmp /%s.cflow_enc \
흐름*
노트
이 유틸리티는 Daniel McRobb의 플로우 덤프 함께 제공되는 유틸리티
cflowd. 플로우 덤퍼 원래는 로 수행할 수 있는 작업의 샘플로 작성되었습니다.
Cflow perl 모듈이지만 이후 더 완벽한 도구로 개발되었습니다.
onworks.net 서비스를 사용하여 온라인으로 flowdumperp 사용