C. *_*aul 6 linux networking network-programming tap tun
我正在使用ip tuntap创建一个tap界面,如下所示:
$ sudo ip tuntap add mode tap tap0
Run Code Online (Sandbox Code Playgroud)
之后,我设置了接口,并使用常用的IP命令对其进行寻址.我可以看到我的界面和简单的地址ifconfig.
现在,老师告诉我,通过创建一个tap接口(在这种情况下名为tap0),我会找到一个/dev/net/tap0节点,并且我可以在其中写入或读取它.但是,我找不到它.我"只是"有一个/dev/net/tun.
我是否必须处理此tun节点,或者我应该真的有tap0节点?
chr*_*hrk 11
问题提出已经很长时间了,但我认为发布一个实际答案以供将来参考是一个好主意.
Tap接口以及tun接口是由内核内TUN/TAP设备驱动程序提供的虚拟接口.此驱动程序最初提供的唯一接口是/dev/net/tun问题中提到的字符设备.
发出:
$ sudo ip tuntap add mode tap tap0
Run Code Online (Sandbox Code Playgroud)
我们指示ip tuntap创建一个名为的网络接口tap0,使用ioctl(2)上述设备文件上的正确调用来完成/dev/net/tun与底层TUN/TAP设备驱动程序的通信,我们可以在ip tuntap源代码中观察到.
其中一个ioctl(2)调用(带有TUNSETIFF选项的调用,首先调用)返回与创建的新虚拟接口关联的文件描述符,并可由进程使用.
总结一下:
我是否必须处理此tun节点,或者我应该真的有tap0节点?
该/dev/net/tun设备文件只是作为一个起点,以创建两个抽头和桶接口,通过用户空间公用事业等iproute2.在这个问题的背景下,没有必要像ip tuntap我们这项工作那样处理它.
任何额外的/dev/net/tap0设备文件不是需要或预期要创建的进程使用水龙头接口.
| 归档时间: |
|
| 查看次数: |
15119 次 |
| 最近记录: |