当我尝试将数据包写入 linux 上的 TAP 设备时,为什么会出现错误号 5?
Why do I get errno 5 when I try to write a packet to a TAP device on linux?
当我尝试使用 write(2)
将 BOOTP
请求数据包写入 tun
设备文件描述符时,我得到 errno 5
。任何想法为什么?我已经检查过 IP
级别和 UDP
级别的校验和是否正确。该程序能够使用 write(2)
编写 ARP
回复数据包。我试过 运行 它作为 root,出现同样的问题。
test: output packet: ff.ff.ff.ff.ff.ff.0a.f7.1f.f8.08.02.08.00.45.00.01.48.00.00.00.00.40.11.79.a6.00.00.00.00.ff.ff.ff.ff.00.44.00.43.01.34.05.88.01.01.06.00.be.ba.fe.ca.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0a.f7.1f.f8.08.02.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.
write: errno=5
找到问题了。要发送 IP
数据包,tap
接口必须配置 IP
地址。
当我尝试使用 write(2)
将 BOOTP
请求数据包写入 tun
设备文件描述符时,我得到 errno 5
。任何想法为什么?我已经检查过 IP
级别和 UDP
级别的校验和是否正确。该程序能够使用 write(2)
编写 ARP
回复数据包。我试过 运行 它作为 root,出现同样的问题。
test: output packet: ff.ff.ff.ff.ff.ff.0a.f7.1f.f8.08.02.08.00.45.00.01.48.00.00.00.00.40.11.79.a6.00.00.00.00.ff.ff.ff.ff.00.44.00.43.01.34.05.88.01.01.06.00.be.ba.fe.ca.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.0a.f7.1f.f8.08.02.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.
write: errno=5
找到问题了。要发送 IP
数据包,tap
接口必须配置 IP
地址。