저는 이것을 Linux에서 달성하려고 합니다(가능한지, 어떻게 하는지는 확실하지 않습니다). 인터페이스의 모든 IP 패킷을 가로채고 해당 패킷을 특정 사용자 공간 프로그램 세트에 전달하는 프로그램을 작성해야 합니다.
가로채기란 IP 패킷이 내 프로그램(커널 모듈이나 특수 사용자 공간 프로그램 등)에 의해 캡처된 다음 해당 패킷이 더 이상 IP 스택을 통과하지 않는다는 것을 의미합니다.
예를 들어 운영 체제가 A, B, C, D...등 많은 프로세스(커널 공간 또는 사용자 공간)를 실행하고 있다고 가정합니다. IP 패킷이 일부 인터페이스(예: eth2)에서 수신되면 A, B만 이 패킷을 보고 다른 모든 프로세스는 이 패킷의 존재를 알 수 있기를 바랍니다.
누구든지 나를 올바른 방향으로 인도할 수 있나요?
답변1
내 생각에 당신은TUN/TAP 인터페이스. 둘 다 사용자 공간 프로그램을 네트워크에 연결합니다. TUN 인터페이스는 IP 계층에서 작동하고 TAP 인터페이스는 이더넷 수준에서 작동합니다.
관심이 있다면 이 튜토리얼이 TUN/TAP 인터페이스를 시작하는 데 도움이 될 수 있습니다. 제목은 다음과 같습니다.Tun/Tap 인터페이스 튜토리얼.
이것이 원하는 답변이 아닌 경우 해결하려는 문제에 대한 추가 배경 정보를 제공할 수 있습니다.