tcpdump를 사용하여 모든 네트워크 트래픽을 캡처할 수 있습니까?

tcpdump를 사용하여 모든 네트워크 트래픽을 캡처할 수 있습니까?

동일한 서브넷에 3대의 컴퓨터가 있습니다. 컴퓨터 A와 B는 서로 통신하고 있습니다(핑, 텔넷 등). 컴퓨터 C에서 A와 B 사이의 패킷을 보고 싶습니다. tcpdump를 사용하여 이 작업을 수행할 수 있습니까? 설명서를 읽고 구글링을 해봤지만 제대로 작동하지 않습니다. C에서 실행되는 tcpdump는 A와 B 사이의 트래픽을 볼 수 없습니다. A 또는 B가 C를 ping하면 tcpdump가 네트워크 트래픽을 표시하기 때문에 tcpdump가 작동하고 있다는 것을 알고 있습니다. 또한 수동으로 인터페이스를 무차별 모드(ifconfig ethx promisc)로 설정했지만 여전히 출력이 없습니다.

Comp-A, IP: 192.168.0.100
ping Comp-B ==> Comp-A Comp-B로부터 응답 받기

Comp-B, IP: 192.168.0.101
tcpdump -Xi eth1 ==> Comp-A에서 ping 패킷 보기

Comp-C, IP: 192.168.0.102
tcpdump -Xi eth1 ==> 출력 없음, 일반 tcpdump 초기 메시지만

답변1

표시되지 않는 이유는 교환 네트워크를 사용하고 있기 때문입니다. 네트워크 스위치는 패킷을 대상 인터페이스로만 전달합니다. 이는 패킷에 나열된 링크 계층 주소에 의해 결정됩니다. 스위치는 컴퓨터 A, B, C가 각각 포트 1, 2, 3에 있다는 것을 알고 있습니다. 컴퓨터 A에서 컴퓨터 B로 향하는 포트 1에서 패킷이 수신되면 해당 패킷은 포트 2로만 전송됩니다.

관리되는 스위치가 있는 경우 포트 3에 "포트 미러링" 또는 SPAN 포트를 구성할 수 있으며 해당 포트는 스위치를 통과하는 모든 패킷의 복사본을 수신하게 됩니다.

관리되는 스위치가 없는 경우 네트워크의 나머지 부분을 스푸핑할 수 있는 전통적인 방법(예: arp 스푸핑 및 패킷 전달)은 더 적습니다.

관련 정보