Linux有哪些虚拟网络设备?
- TUN/TAP
- Veth
- Bridge
- vlan
它们分别是干什么用的?
- TUN:连接协议栈和用户空间程序
- TAP:虚拟网卡,作为虚拟机后端网卡
- Veth:连接两个网络空间
- Bridge:连接多个网络接口
- Vlan:隔离广播域
它们有何作用?
- 容器的网络连接
- 虚拟机的网络连接
- VPN
- 灵活性
如何使用?
Linux中对这些网络设备的操作工具/命令:
- brctl: 网桥操作
- vconfig: vlan操作
- ip link: veth操作
- tunctl: TUN/Tap 操作
- ifconfig: 网卡配置
在内核的实现?
- TUN:modinfo tun
- TAP:modinfo tap
- Bridge:modinfo bridge
- Veth: modinfo veth
- VLAN: modinfo 8021q
怎么实现的?
- 一看处于网络第几层
- 二看支持什么协议
二层设备带MAC地址,三层设备带IP地址。
对网络设备的通俗理解
对照物流行业:
- 应用程序 => 用户
- 数据帧 => 包裹
- 协议栈 => 打包/解包
- 网卡 => 快递柜
- 交换机/网桥 => 物流集散中心
- 路由器 => 海关/主干转运中心
- VPN => 快递公司
- 链路层 => 运输公司
- 传输介质 => 公路/铁路/水路/航路
- 打包员 => TUN
- 网络代理 => 货代
网络数据的收发与物流快递包裹收发相对应: