目前我阅读了一些有关 TUN/TAP 设备的文档,我有一些问题:
- 我什么时候应该使用 TUN/TAP 设备?
- 与其他开发者相比有何优势?
答案1
当您想要从用户模式实现虚拟网络适配器时,将使用“TUN”和“TAP”设备。它们通常由 VPN 软件使用,但也可用于实现其他网络功能,例如 NAT46 和 NAT64。
“TUN”和“TAP”接口之间的区别在于它们工作的层。 “TUN”接口发送和接收 IP 数据包,无需进一步封装,也不会尝试将第 3 层下一跳地址转换为第 2 层地址。 “TAP”接口发送和接收带有源和目标 MAC 地址的以太网帧。
“TUN”和“TAP”接口的主要替代方案是在内核中实现 VPN。这可能会表现更好,但会增加安全性和可靠性风险,并使开发更加困难。
答案2
我强烈建议您阅读内核中的文档,它甚至提供了写得很好的示例:
https://www.kernel.org/doc/Documentation/networking/tuntap.txt
祝你好运并享受!