저는 다양한 IP의 일일 네트워크 소비(대역폭 아님)를 캡처하는 방법을 찾고 있습니다. {192.168.122.0/25}라고 가정해 보겠습니다.
이러한 IP 범위가 매일 소비하는 트래픽/데이터의 양을 계산하고 싶습니다. 이는 각 IP가 하루에 소비하는 데이터의 KB/MB/GB/ 수를 확인하기 위한 검증 목적일 뿐입니다.
내 환경은 RHEL/Centos 7입니다.
이를 달성하기 위한 옵션이 있는 도구를 제안해 주실 수 있나요? 사용량/소비를 추적하는 방법을 찾으면 매일 프로세스를 자동화하겠습니다.
그래픽 도구보다는 CLI를 찾고 있습니다. 또한 itraf, nmap, iftop을 사용해 보았지만 IP 범위 전체에서 네트워크 소비에 대한 옵션을 찾을 수 없었습니다.
답변1
귀하의 필요에 맞는 도구 중 하나는 다음과 같습니다.샤크:
$ tshark -q -i eth0 -a duration:86400 -z conv,ip net 192.168.122.0/25
그리고:
-q
: 연속적으로 캡쳐된 패킷 개수를 표시하지 않습니다.-i eth0
: 인터페이스에서 트래픽을 캡처합니다 (또는 모든 인터페이스에서 트래픽을 캡처하는eth0
데 사용할 수도 있음 ).-i any
-a duration:86400
: 하루 동안의 트래픽을 포착합니다.-z conv,ip
: IP 통계 가져오기net 192.168.122.0/25
: 캡쳐 필터
예제 출력:
$ tshark -q -i any -a duration:10 -z conv,ip net 192.168.134.0/24
| <- | | -> | | Total | Relative | Duration |
| Frames Bytes | | Frames Bytes | | Frames Bytes | Start | |
151.101.122.217 <-> 192.168.134.142 571 43915 591 3186555 1162 3230470 0,994980222 6,3748
192.168.134.142 <-> 192.168.136.27 5 1347 6 788 11 2135 5,714866377 0,0350
192.168.134.96 <-> 192.168.134.255 0 0 10 1060 10 1060 0,000000000 9,1583
151.101.129.69 <-> 192.168.134.142 5 608 5 632 10 1240 6,193916779 0,1324
여기에서 필요에 따라 다른 CLI 도구를 사용하여 출력 및 총 바이트를 구문 분석할 수 있습니다(예: awk
).
답변2
그래서 당신은 네트워크 트래픽을 원합니다대역폭 사용량, 일일 요약입니다.
귀하는 개인 IP 범위를 제공했으므로 연결된 인터넷 호스트의 IP 주소가 아닌 귀하 자신의 컴퓨터의 IP 주소로 이를 가져오길 원한다고 가정합니다.
원칙적으로 두 가지 방법이 있습니다.
1) 각 머신의 트래픽을 모니터링합니다. 커널은 각 네트워크 인터페이스에 대한 패킷 카운터를 에 보관하므로 /proc
이러한 카운터를 읽고 평균/총 트래픽을 계산할 수 있습니다.
2) 중앙 라우터의 트래픽을 모니터링합니다. 로컬 IP별로 정렬하려면 전체 트래픽보다 더 많은 트래픽이 필요하므로 패킷을 검사해야 합니다. 많은 트래픽 모니터링 도구는 네트워크 인터페이스에서 무차별 모드를 사용하여 작동하며 이로 인해 측정 가능한 CPU 부하가 발생할 수 있습니다. 또 다른 옵션은 iptable
사용량을 계산하는 사용자 정의 규칙을 작성하는 것입니다 .
하나 있다톤사용 가능한 다양한 도구는 다음을 참조하세요.여기또는여기일부 사람들(및 더 많은 Google의 경우 소프트웨어 권장 사항은 이 Stack Exchange의 범위를 벗어납니다).
대안 1을 선택하는 경우 모니터링되는 모든 호스트의 정보를 하나의 중앙 위치로 수집하는 데 널리 사용되는 프로토콜은 다음과 같습니다.간단한 네트워크 관리 프로토콜이므로 Google 검색에 포함하세요.