요약 : 동일한 컴퓨터에있는 두 개의 물리적 인터페이스간에 데이터를 전달하기 위해 소켓을 만들고 Win32 소켓은 항상 트래픽을 직접 전달하려고합니다. 물리적 인터페이스를 밀어 넣는 대신 커널에서. 장치 설정, 레지스트리 조작, 라우팅 테이블 헛소리 또는 소켓 옵션을 통해이 동작을 비활성화하는 방법이 있습니까? 우리는 Windows XP SP3을 사용하고 있습니다.Win32 소켓 - 다른 로컬 인터페이스로 보낼 때 ip 패킷이 실제 인터페이스를 떠나도록하십시오.
일부 배경. 맞춤 IPv4 장비를 사용하기 위해 일부 자동화 된 IP 테스트를 구축하려고합니다. 우리는 우리가 연결하고있는 각 장치에 대한 Windows XP 컴퓨터와 개별 물리적 이더넷 인터페이스의 대규모 실험실을 운영하고 있습니다. 우리의 장치는 효과적으로 자체 IP가있는 이더넷 라우터입니다.
실험실 장비에서 장비를 통해 데이터를 전송 한 다음 다시 동일한 컴퓨터에 데이터를 전송해야합니다. 유니 캐스트 및 멀티 캐스트 UDP, TCP 및 브로드 캐스트 IP 트래픽을 장치를 통해 보내 게됩니다.
우리는 트래픽이 예정된 동일한 기계에서 시작되기를 원합니다. 이렇게하려면 자체 서브넷에 각각 고유 한 IP를 가진 두 개의 개별 NIC (예 : NIC# 1은 10.0.0.1/24, NIC# 2는 10.0.1.1/24)를 구성합니다. 우리의 장치는 간단한 패스 스루 라우터처럼 동작하며 10.0.0.0/24 서브넷에 하나, 10.0.1.0/24 서브넷에 하나씩 두 개의 인터페이스가 있습니다.이 인터페이스는 패킷을 앞뒤로 전달합니다.
데이터를 생성하기 위해 Win32 소켓은 잘 이해되고 잘 지원되며 고객이 사용하고 있으며 가장 빠른 접근 방법이기 때문에 사용할 수 있기를 바랍니다. UDP와 브로드 캐스트 IP는 패킷 주입이 가능하지만 TCP는 그렇지 않을 가능성이 높습니다. 나는 패킷 주입을 사용하는 아이디어를 즐겁게 할 것이지만, 표준 Win32 소켓을 강하게 선호 할 것이다.
요약에서 설명한 것처럼 패킷은 컴퓨터를 떠나지 않습니다. 나는 미치광이처럼 봤는데 많이 찾지 못했다. 어떤 아이디어?
이것은 사람들이 제안하고 검색 할 때 찾은 모든 옵션 중에서 가장 잘 작동합니다. 나는 여전히 '브로드 캐스트'트래픽에 대해이 작업을 수행하는 데 문제가 있습니다. 더 많은 시간을 들여서 작업 할 필요가 있지만 Win7 (아이러니 컬, 브로드 캐스트 용 '유니 캐스트'옵션 사용)에 제공된 IP_UNICAST_IF 소켓 옵션이 필요할 필요가 있다는 느낌이 들었습니다. – antiduh