目录
- linux上使用tun/tap设备模拟一个虚拟网卡,并将该虚拟网卡连接到新创建的网桥上
- 一、tun/tap设备简介
- 二、在linux上使用tun/tap设备模拟一个虚拟网卡
- 三、 创建网桥连接到虚拟网卡上
- 四、参考资料:
linux上使用tun/tap设备模拟一个虚拟网卡,并将该虚拟网卡连接到新创建的网桥上
一、tun/tap设备简介
tun/tap
设备是操作系统内核中的虚拟网络设备,是用软件模拟的网络设备,提供与硬件网络设备完全相同的功能。主要用于用户空间和内核空间传递报文。
tun/tap
设备与物理网卡的区别:
- 对于硬件网络设备而言,一端连接的是物理网络,一端连接的是网络协议栈。
- 对于
tun/tap
设备而言,一端连接的是应用程序(通过 字符设备文件/net/dev/tun
),一端连接的是网络协议栈。
二、在linux上使用tun/tap设备模拟一个虚拟网卡
-
确认内核是否支持
tun/tap
确认内核是否有
tun
模块modinfo tun
出现如下提示,表示有
tun
模块加载
tun
模块modprobe tun
-
创建和配置虚拟网卡
先安装
tunctl
,该工具可以通过安装软件包uml-utilities
来获得,我的环境ubuntu
,具体命令如下:apt install uml-utilities# 如果安装的时候找不到安装包,就使用如下命令更新软件列表信息apt upgrade
创建虚拟网卡设备,命名为
tap0
tunctl -t tap0 -u root
设置虚拟网卡,并配置
ip
地址和子网掩码等信息ifconfig tap0 192.168.0.1 netmask 255.255.255.0 promisc
三、 创建网桥连接到虚拟网卡上
# 创建一个名为br1的网桥ip link add br1 type bridge# 将tap0网卡设备加进来ip tuntap add dev tap0 mode tap# 将br1设置为tap0的目标网桥ip link set dev tap0 master br1# 启动网桥ip link set dev br0 up
都搞定以后,查看网桥状态,需要安装brctl
,该工具可以通过安装软件包bridge-utils
来获得,具体命令如下:
apt install bridge-utils
安装好以后,用brctl show
命令来查看网桥状态
四、参考资料:
Linux下添加虚拟网卡
在Linux系统下使用TUN/TAP虚拟网卡的基本教程
Linux 虚拟网卡技术:Macvlan
qemu网桥配置