특정 스위치에서 tcpdump를 실행하고 고급 정규식을 사용하여 grep을 통해 전달해야 합니다. 그 스위치 셸은 꽤 멍청하고 정규식과 함께 grep도 없지만 필요한 옵션이 포함된 tcpdump가 있습니다.
스위치 터미널에서 tcpdump를 실행하고 전체 출력을 다른 Linux 시스템, 즉 해당 시스템의 파일로 파이프하여 파일을 온라인으로 grep하고 라이브 세션에서 무슨 일이 일어나고 있는지 확인할 수 있는 방법이 있습니까?
답변1
SSH를 통해 스위치에 액세스할 수 있는 경우 간단히 다음을 수행할 수 있습니다.
ssh switch 'tcpdump <args>' | grep <fancy pattern>
@DopeGhoti가 제안한 netcat 솔루션보다 (스위치의 CPU에 따라) 약간 느릴 수 있지만 데이터는 암호화되어 전송됩니다. 작업 중인 환경과 캡처하는 데이터의 민감도에 따라 영향이 있을 수도 있고 없을 수도 있습니다.
답변2
스위치가 하는 일(패킷 이동)을 스위치가 수행하도록 하고 netcat을 사용하여 한 호스트에서 다른 호스트로 텍스트를 전송하는 것은 어떨까요?
TCP 포트 12345로 전송한다고 가정해 보겠습니다. 리스너 호스트에서( remotehost.example.com
예: ""):
$ nc -l 12345 | grep 'pattern'
송신 호스트에서:
$ /path/to/somejob | nc remotehost.example.com 12345