📉
Linux 网络 和 SDN 入门实践
  • 概述
  • linux 网络
    • bridge
    • veth pair
    • tun/tap
    • macvlan
    • macvtap
    • ipvlan
    • ipvtap
  • Open vSwitch
    • 编译
    • 启动
    • bridge
    • port
  • 进阶
    • 使用 OVS 打通多节点上的容器通信(Overlay)
    • 使用 OVS 打通多节点上的容器通信(Underlay)
    • 同主机同vlan的容器通信
    • 同主机不同 vlan 的容器通信
    • 不同主机同 vlan 的容器通信
    • 不同主机不同 vlan 的容器通信
    • ovs 使用 OpenFlow
    • iptables 模拟 service
  • 名词解释
    • 生成树协议(STP)
    • hairpin
    • ingress/egress filtering
    • ip address spoofing
    • CIDR
    • BGP(边界网关协议)
    • arp
    • ipip
    • LLDP
    • MPLS
    • in-band 和 out-band
    • TOR
  • 常用命令参考
    • ip
    • arp 和 arping
    • iptables
  • 参考资料
    • bridege
Powered by GitBook
On this page

Was this helpful?

  1. linux 网络

tun/tap

Previousveth pairNextmacvlan

Last updated 5 years ago

Was this helpful?

tun/tap 是 linux 提供的一种用户空间网络的特性。它允许用户空间的程序看见原始网络流量(在 ethernet 或 ip 层),并可以对这些网络流量进行操作。

tun 设备和 tap 设备有什么不同呢?

tun 设备的输出是 ip 数据包。典型的应用场景就是做 ip 通道,比如下图中 OpenVPN 的实现:

Host A 用户空间的程序的数据包被转发到 tun0 设备上,然后被 OpenVPN 读取出来加密,最后从 eth0 出去,到达 Host B。Host B 上的 OpenVPN 从 eth0 读取并解密,并通过 tun0 传输到用户空间的程序。

tap 设备的输出是 ethernet 帧。通常可以用在虚拟网络上。虚拟机通过 tap 设备来读取 ethernet 帧,从而可以在链接层连接到物理网络上。如下图所示:

参考资料

[Tun/Tap Interface]()

[Tun/Tap interface tutorial]()

https://hechao.li/2018/05/21/Tun-Tap-Interface/
https://backreference.org/2010/03/26/tuntap-interface-tutorial/
图1. OpenVPN 使用 tun 设备
图2 tap 在虚拟机网络上的使用案例