tun/tap 驱动
tun/tap 驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap 驱动,可以将tcp/ip协议栈处理好的网络分包传给任何一个使用tun/tap驱动的进程,由进程重新处理后再发到物理链路中。
开源项目openvpn ( http://openvpn.sourceforge.net)和Vtun( http://vtun.sourceforge.net)都是利用tun/tap驱动实现的隧道封装。
有时候,为了服务器测试,或虚拟机应用(VMware就自带了,但VBox没有),我们会需要一个虚拟网卡,这对Linuxer来说真是太简单了
如果使用Ubuntu,安装一条命令就够了
sudo apt-get install uml-utilities
现在,我们可以来创建虚拟网卡了
tunctl -t tap0 -u peter
创建了一个名为tap0的虚拟网卡(就象第一块网卡通常称为eth0),拥有者是用户peter。不过这里的拥有者不是指创建的设备文件/dev/net/tun的拥有者,有些应用可能需要对/dev/net/tun拥有写权限,需要另行处理,一个简单的办法就是把该用户加入uml-net用户组。
删除虚拟网卡tap0可以这样
tunctl -d tap0
我们可以象配置eth0那样配置它:
ifconfig tap0 192.168.0.12 netmask 255.255.255.0
如果需要一开机就自动创建,并且配置好,你可以在 /etc/network/interfaces中添加如下内容
auto tap0 iface tap0 inet manualup ifconfig $IFACE 192.168.0.12 updown ifconfig $IFACE downtunctl_user peter
如果你很好奇这一切是怎么创建的,可以查看interfaces的man页,以及/etc/network/if-*目录下的uml-utilities文件。
下面使我系统上的创建例程:
root@ubuntu:~# apt-get install uml-utilities
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
建议安装的软件包:
user-mode-linux
下列【新】软件包将被安装:
uml-utilities
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 52 个软件包未被升级。
需要下载 58.5 kB 的软件包。
解压缩后会消耗掉 336 kB 的额外空间。
获取:1 http://cn.archive.ubuntu.com/ubuntu/ natty/universe uml-utilities i386 20070815-1.1ubuntu2 [58.5 kB]
下载 58.5 kB,耗时 1秒 (46.1 kB/s)
选中了曾被取消选择的软件包 uml-utilities。
(正在读取数据库 ... 系统当前共安装有 184633 个文件和目录。)
正在解压缩 uml-utilities (从 .../uml-utilities_20070815-1.1ubuntu2_i386.deb) ...
正在处理用于 man-db 的触发器...
正在处理用于 ureadahead 的触发器...
ureadahead will be reprofiled on next reboot
正在设置 uml-utilities (20070815-1.1ubuntu2) ...
* Starting User-mode networking switch uml_switch [ OK ]
root@ubuntu:~# tunctl -t tap0 -u root
Set 'tap0' persistent and owned by uid 0
root@ubuntu:~# ifconfig
eth0 Link encap:以太网 硬件地址 f0:4d:a2:eb:d1:da
inet 地址:192.168.15.20 广播:192.168.15.255 掩码:255.255.255.0
inet6 地址: fe80::f24d:a2ff:feeb:d1da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:269800 错误:0 丢弃:24 过载:0 帧数:0
发送数据包:24588 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:31748279 (31.7 MB) 发送字节:3586783 (3.5 MB)
中断:19
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 跃点数:1
接收数据包:8925 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:8925 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:1067385 (1.0 MB) 发送字节:1067385 (1.0 MB)
root@ubuntu:~# ifconfig tap0 192.168.15.252 netmask 255.255.255.0
root@ubuntu:~# ifconfig
eth0 Link encap:以太网 硬件地址 f0:4d:a2:eb:d1:da
inet 地址:192.168.15.20 广播:192.168.15.255 掩码:255.255.255.0
inet6 地址: fe80::f24d:a2ff:feeb:d1da/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:271081 错误:0 丢弃:24 过载:0 帧数:0
发送数据包:24613 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:31837822 (31.8 MB) 发送字节:3589830 (3.5 MB)
中断:19
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 跃点数:1
接收数据包:8925 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:8925 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:1067385 (1.0 MB) 发送字节:1067385 (1.0 MB)
tap0 Link encap:以太网 硬件地址 d6:6b:43:4c:26:a0
inet 地址:192.168.15.252 广播:192.168.15.255 掩码:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:500
接收字节:0 (0.0 B) 发送字节:0 (0.0 B)
root@ubuntu:~# ping 192.168.15.252
PING 192.168.15.252 (192.168.15.252) 56(84) bytes of data.
64 bytes from 192.168.15.252: icmp_req=1 ttl=64 time=0.043 ms
64 bytes from 192.168.15.252: icmp_req=2 ttl=64 time=0.032 ms
64 bytes from 192.168.15.252: icmp_req=3 ttl=64 time=0.041 ms
64 bytes from 192.168.15.252: icmp_req=4 ttl=64 time=0.037 ms
^C
--- 192.168.15.252 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 0.032/0.038/0.043/0.006 ms
tun/tap 驱动相关推荐
- linux虚拟网络设备之tun/tap驱动程序设计原理(五)
简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装.本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在li ...
- 虚拟网卡 TUN/TAP 驱动程序设计原理
简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装.本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在li ...
- linux tap 源码分析,tun/tap 驱动源码分析
此驱动运行时可设置tun模式和tap模式,tun模式能取到IP数据包,无法获得ARP数据,而tap模式取到的是以太包,可以得到链路层以上的一切数据包. 由于项目需要使用tun驱动,而又不想不求甚解,从 ...
- 云原生虚拟化:一文读懂网络虚拟化之 tun/tap 网络设备
2021年12月2日,火山引擎边缘计算节点正式发布,对外提供稳定.高性能.功能丰富的一站式边缘计算云平台服务.网络作为边缘虚机的底层基础设施之一,其重要性也是不言而喻,它承担着虚拟机实例南北向.东西向 ...
- tun/tap虚拟网卡
简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装.本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在li ...
- linux虚拟网络设备之tun/tap(一)
在现在的云时代,到处都是虚拟机和容器,它们背后的网络管理都离不开虚拟网络设备,所以了解虚拟网络设备有利于我们更好的理解云时代的网络结构.从本篇开始,将介绍Linux下的虚拟网络设备. 虚拟设备和物理设 ...
- Linux虚拟网络设备之tun/tap
Table of Contents 虚拟设备和物理设备的区别 tun/tap的另一端是什么? tun/tap设备有什么用? tun和tap的区别 示例 示例程序 演示 结束语 参考 在现在的云时代,到 ...
- Linux 虚拟网络设备 tun/tap veth pair
Linux 虚拟网络设备 tun/tap veth pair 本篇主要介绍一下 linux 下面的 虚拟网络设备 tun/tap veth pair 随着容器逐步取代虚拟机,成为云基础架构的标准,然而 ...
- linux下使用tun/tap虚拟网卡
tun/tap虚拟网卡介绍 tun是一种虚拟网络设备,tun设备一端连接着用户程序,一端连接着内核协议栈,任何时候从协议栈发到tun网卡的数据都能从用户程序中读到,而从用户程序写入/dev/net/t ...
最新文章
- 直播变局下百度移动生态新“野望”
- Android电视关闭的闪屏动画效果
- zune自搭虚拟服务器离线升级,Zune 30g 固件更新至 3.3 记录
- 如何将c语言程序封装供python调用_C++调用python
- hibernate学习——Set集合配置
- 面向对象风格的合理架构
- 实践角度,谈谈库存扣减和锁
- 监听关闭页面事件 ajax,Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
- uni-app中image组件的基本使用
- 一些好用的nginx第三方模块
- 将RGB图像和depth深度图像存入同一个HDF5文件中
- 故障解决 | win10没声音及找不到Realtek高清音频管理器
- AD学习问题记录(三):AD21版本如何重新定义板子形状
- python中三元运算符_Python中三元表达式的几种写法介绍
- 服务器蓝屏显示7f,电脑蓝屏代码7f怎么解决 如何处理电脑蓝屏代码7f
- 热力图回归Adaptive Wing Loss [ICCV2019] 论文阅读
- Chrome漏洞分析与利用(三)——Issue-1062091漏洞分析
- 网店美工之你不知道的图片设计技巧
- css设置始终显示滚动条
- 车削加工参数优化切削参数 ( 切削速度、进给量、背吃刀量) 对表面粗糙度的影响