카테고리 없음
linux tcpdump시 promiscuous mode
iiliiiili
2024. 4. 11. 20:21
리눅스 서버에서 게이트웨이로 ping을 보낼 때 ICMP 패킷이 간헐적으로 누락되는 문제가 발생했고, 이 문제가 tcpdump를 여러 번 수행한 후 해소되었다고 합니다. 이 현상을 설명할 수 있는 몇 가지 가능성이 있습니다:
- 버퍼 오버플로: 네트워크 인터페이스의 버퍼가 가득 차서 일부 패킷이 처리되지 못하고 누락될 수 있습니다. tcpdump를 실행하면 네트워크 인터페이스의 버퍼 내용이 디스크로 저장되면서 버퍼가 비워지고, 결과적으로 누락되던 패킷이 정상적으로 처리될 수 있습니다.
- 네트워크 드라이버의 버그 또는 이슈: 때때로 네트워크 드라이버에 버그가 있거나 특정 설정 때문에 패킷이 누락될 수 있습니다. tcpdump를 사용하면 드라이버가 프로메이슈어스 모드(promiscuous mode)로 전환되어 모든 네트워크 패킷을 수신하게 되는데, 이 과정에서 드라이버의 내부 상태가 변경되어 문제가 일시적으로 해소될 수 있습니다.
- 네트워크 스택의 최적화: tcpdump와 같은 네트워크 모니터링 도구를 사용하면 시스템의 네트워크 스택이 내부적으로 조정될 수 있습니다. 예를 들어, 패킷 처리 방식이 바뀌거나 인터럽트 코알레싱(interrupt coalescing) 설정이 조정될 수 있습니다. 이러한 변경이 네트워크 성능에 긍정적인 영향을 줄 수 있습니다.
- 캐시 효과: 일부 경우에는 시스템의 캐시 메커니즘이 관련되어 있을 수 있습니다. tcpdump 실행으로 인해 관련 네트워크 정보가 캐시되고, 이후 패킷 처리가 보다 효율적으로 이루어져서 누락 문제가 해소될 수 있습니다.