【发布时间】:2015-05-04 20:56:55
【问题描述】:
Linux 支持接口类型 macvtap。我找不到很好的文档,但这是一个很好的入门:http://virt.kernelnewbies.org/MacVTap
我正在尝试使用它来创建一个新的虚拟网络设备,我可以通过编程方式读取和写入该设备以发送原始数据包。虽然我可以从 Tap 界面正常读取,但我不知道有什么方法可以写入它。
- 我正在使用常规的
open系统调用打开分接设备。 - 尝试使用
write发送数据包,但收到Invalid argument (EINVAL)错误响应。 - 还尝试使用
sendmsg,但当然会收到一个错误,即我有一个普通文件描述符,而不是套接字。
这可以吗?还是 macvtap 接口只支持从 tap 接口读取,需要你使用原始套接字或其他东西来发送数据包?
(macvtap的Libvirt代码在这里:https://gitorious.org/libvirt/libvirt/source/63889e0c775010d8d70b71d25340bab995aa83ce:src/util/virmacaddr.c)
块引用
【问题讨论】:
标签: linux sockets networking tunnel libvirt