Linux 플랫폼의 사용자 공간에서 사용자 정의 네트워크 인터페이스를 구현할 수 있습니까? netif는 사용자 공간에서 가장 잘 액세스되는 비정상적인 물리적 링크를 통해 패킷을 전송해야 합니다.
전송 및 수신 기능은 IP 수준에서 작동해야 하며, 링크는 이더넷이 아니고 자체 주소 확인 방법이 있으므로 Linux는 ARP를 시도해서는 안 됩니다.
예를 들어, C 언어로 이러한 작업을 수행하는 방법은 무엇입니까? 시작할 수 있는 샘플 코드가 있습니까?
답변1
예, 많은 소프트웨어가 기본적으로 모든 사용자 수준 VPN 구현을 수행할 수 있습니다.
여기서의 비결은 커널에 TUN 또는 TAP 장치를 생성하고 여기에 소프트웨어를 연결하도록 요청하는 것입니다.
- TAP를 이용한 이더넷 계층의 소프트웨어 구현,
- IP 계층의 소프트웨어 구현에는 TUN이 사용됩니다.
많은 예제와 튜토리얼이 있습니다. 이것이 Wikipedia 기사의 내용입니다.턴/탭다음에 연결해야 합니다:tuntap에 대한 커널 문서;이것은 스택 오버플로입니다.답변 tun 드라이버 사용법