TUN设备,一端连接协议栈 或者 连接L2层bridge,一端连接应用程序
tap设备则支持读写链路层的数据包。
bridge:Linux Bridge 是工作在链路层的网络交换机,由 Linux 内核模块 bridge 提供,它负责在所有连接到它的接口之间转发链路层数据包;与物理交换机不同的是,Bridge 本身可以设置 IP 地址,可以认为当使用 brctl addbr br0 新建一个 br0 网桥时,系统自动创建了一个同名的隐藏 br0 网络接口。br0 一旦设置 IP 地址,就意味着这个隐藏的 br0 接口可以作为路由接口设备,参与 IP 层的路由选择(可以使用 route -n 查看最后一列 Iface)。因此只有当 br0 设置 IP 地址时,Bridge 才有可能将数据包发往上层协议栈。但被添加到 Bridge 上的网卡是不能配置 IP 地址的,他们工作在数据链路层,对路由系统不可见。它常被用于在虚拟机、主机上不同的 namespaces 之间转发数据。
veth: 接口总是成对出现