TUN/TAP 장치에 기록된 패킷은 정확히 어떻게 됩니까?

TUN/TAP 장치에 기록된 패킷은 정확히 어떻게 됩니까?

마치 원격 컴퓨터에서 오는 것처럼 컴퓨터의 사용자 공간에서 eth0을 수신하는 응용 프로그램에 패킷을 보내려고 합니다.

TUN/TAP 장치가 나머지 네트워크 스택과 상호 작용하는 정확한 방식에 대한 좋은 문서를 찾을 수 없는 것 같습니다. 패킷이 원격 호스트에 바인딩된 경우 eth0으로 전달됩니까? 기본적으로 로컬 호스트로 주소가 지정된 패킷이 사용자 공간 애플리케이션으로 전달됩니까? Netfilter 스택과 관련하여 패킷이 커널에 나타나는 단계는 무엇입니까?

해당 동작이 잘 문서화되어 있지 않은 것으로 보입니다(http://openvpn.net/archive/openvpn-users/2005-05/msg00224.html,https://www.kernel.org/doc/Documentation/networking/tuntap.txt)).

답변1

tun tap 장치는 데이터가 이더넷 인터페이스에 연결된 와이어에서 오는지 또는 사용자 영역 응용 프로그램에서 오는지 알 수 없다는 점에서 커널에 동일하게 나타납니다. 데이터가 기록되면 물리적 인터페이스 장치가 아닌 사용자 영역 애플리케이션으로 전달됩니다. eth0

패킷이 전달되는 인터페이스는 평소와 같이 ip route또는 를 사용하여 볼 수 있는 라우팅 테이블을 기반으로 합니다 netstat -r. 이는 localhost로 주소가 지정된 패킷에도 적용됩니다.

또한 TUN/TAP 인터페이스는 라우팅 테이블에 나타나는 경로에 대한 인터페이스로 사용될 수도 있습니다.

관련 정보