实训小记
2022年6月18日 11:15
简单记录一下一个多月的“实训”。
1 Linux 虚拟网络基础
1.1 tap
tap 和 tun 是操作系统内核中的虚拟网络设备,tap 位于二层,tun 位于三层。它们的数据结构如下:
1 | struct tun_struct { |
tap 和 tun 的数据结构定义相同,两者仅通过一个 Flag 来区分。但二者承载的功能区别很大:
- tap 位于网络 OSI 模型的二层(数据链路层)
- tun 位于网络的三层
tap 从功能定位上来讲,位于数据链路层,数据链路层的主要协议有:
- 点对点协议(Point-to-Point Protocol)
- 以太网(Ethernet)
- 高级数据链路协议(High-Level Data Link Protocol)
- 帧中继(Frame Relay)
- 异步传输模式(Asynchronous Transfer Mode)
tap 只与其中一种协议——以太网(Ethernet)协议对应。所以 tap 有时也称为“虚拟以太设备”。
创建 tap 的方法:
- Linux 使用 tun 模块实现了 tun/tap,所以首先 Linux 得有 tun 模块,使用
modinfo tun检查 - 使用
lsmod | grep tuntun检查 tun 模块是否已经加载 - 确认 Linux 是否有操作 tun/tap 的命令行工具 tunctl,安装方式
yum install tunctl - 创建一个 tap 设备:
tunctl -t tap_test - 查看刚刚创建的 tap:
ip...
剩余内容已隐藏
查看完整文章以阅读更多