Ethereal를 Windows에서 쓸 때 문제점

로컬 컴퓨터에 개발 중인 서버 애플리케이션을 띄우고 어떤 패킷이 오가는지 확인하려 했다. Ethereal을 띄우고 로컬에서 오가는 패킷만 걸러내도록 설정했다. 한데 눈에 불을 켜고 지켜보는데도 화면은 텅 비어 있을 뿐이었다. 필터를 잘못 설정했나? 싶어서 필터를 걸지 않고 테스트해봤지만, 여전히 내가 원하는 패캣은 하나도 보이지 않았다.

간단히 결론만 말하자면 Windows에선 Loopback 상에서 오가는 패킷은 확인할 수 없다. Linux와 달리 윈도우는 Loopback에서 오가는 패킷을 NDIS Driver로 전달하지 않기 때문이다.

No, the problem is in Windows – loopback traffic isn’t sent through an
NDIS driver, and WinPcap uses NDIS to connect to network devices.
Perhaps Windows offers some other way to tap that traffic, but they
might not have documented it.

다른 해결법을 찾아봤지만 그다지 신통치는 않았다. 몇몇 상용 프로그램이 이러한 기능을 지원한다지만, 가격도 만만찮았다. 사실, 테스트용으로 부여 받은 x64 서버가 있긴 하다. 하지만 그곳에 빌드 서버를 설치해놔서 어지간하면 로컬 컴퓨터에서 해결하려고 했던 것이다. 방법이 없으니 당장은 테스트용 서버를 활용해야겠다.

Microsoft Loopback Adapter

만약 각 서버 애플리케이션이 바인딩할 때 어느 네트워크 어댑터를 사용할 것인지 결정할 수 있다면 해결책이 아주 없는 것도 아닌 듯 하다. Microsoft Loopback Adapter를 설치하고, 하나는 진짜 물리적 네트워크 어댑터에 바인딩하게 하고 다른 하나는 Loopback 어댑터에 바인딩하게 하면 될 듯 하다.

하지만 보통 서버 애플리케이션을 개발할 땐 모든 네트워크 어댑터에 바인딩하게 개발하는 게 보통이고, 우리도 그렇다. 그래서 이 방법을 실제로 테스트해보진 못했다. 100% 믿고 하다가 안 된다고 투덜거려도 곤란하다.

Advertisements

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu