【openvpn】TAP模式

目录

TAP与TUN模式简介

TAP模式实现原理

全网桥接

仅VPN节点桥接,其它路由

一些VPN节点桥接,另一些路由 

TAP模式配置

TAP模式下转发流程分析

网络拓扑

转发流程分析

ARP报文的来源


TAP与TUN模式简介

在OpenVPN中有两种工作模式,一种称为 TUN(tunnel)模式,即通道的意思;另一种是TAP(Terminal Access Point)模式,即一种网络设备或软件虚拟设备的意思。

TUN模式是一种虚拟点对点的网络设备模式。通常用于实现点对点(即主机到主机)虚拟专用网络(VPN)。在TUN模式下,OpenVPN会创建一个虚拟网络接口(通常称为tun0),通过该接口发送和接收IP包。TUN模式通常用于路由网络流量,因此其只能够处理IP层(OSI模型中的第3层)数据包,不能处理链路层(OSI模型中的第2层)数据包。

TAP模式是一种以太网桥设备模式。通常用于实现一点对多点(即主机到局域网)虚拟专用网络(VPN)。在TAP模式下,OpenVPN同样会创建一个虚拟网络接口(通常称为tap0),不过该接口与NAT模式下的接口不同,它可以接收和发送以太网帧,就像一个物理的以太网接口一样。TAP模式可以处理链路层数据包,因此它可以传输多种类型的网络包,如IP、ARP、NetBIOS等。

一般来说,TUN模式更适合用于远程访问,因为它可以更好地控制网络流量,并且可以提供更好的性能。而TAP模式更适合用于网络扩展,因为它可以模拟真实的局域网,并且可以传输多种类型的网络包

tap模式下的OpenVPN节点可以被看作一个虚拟的以太网,节点之间的通信可以通过以太网协议来完成;

tun模式是三层模式,也就是说,tun模式下的OpenVPN节点可以被看作一个虚拟的IP网络,节点之间的通信完全靠路由来完成;

如此,OpenVPN可以既是以太网模型又可以是IP网络模型,但是同一时间只能是一种。那么在每一种模型下,OpenVPN就扮演了该网络模型的核心设备的角色,对于以太网,它是交换机,对于IP网络,它是路由器,当然这种设备是虚拟出来的,是软件实现,是由OpenVPN的代码实现的。前文总是说OpenVPN是一个虚拟的交换机,又说OpenVPN是一个虚拟的路由器,那么它到底如何做到的的呢?

TAP模式实现原理

以太网交换机内部有一个简单的映射表,映射MAC地址和端口信息。注意,这个映射表的容量是有限的,这也常常成为一种攻击向量…(注意,最美丽的天使是断了翅膀再也回不了天国的天使),只要有数据帧经过交换机,哪怕是一个广播,交换机就记录下该数据帧的源地址和进入的端口,将之做成一个映射项,存入这个以太网交换机的“路由表”,隔一段时间,这个映射会失效。以上就是以太网的简单的“路由表维护机制”。

在OpenVPN中,如果它真的要实现一个虚拟的以太网交换机,那么它就应该实现一个类似的路由表,保存MAC地址和端口的映射项。在OpenVPN中,其实并不存在真正的“端口”,所谓的端口都是虚拟出来的,在OpenVPN中表现为一个结构体multi_instance,所谓的MAC地址还是MAC,这个并没有变。那么在OpenVPN中,如果想实现一个虚拟的交换机,那么就是要实现一个MAC地址和multi_instance的映射表,对于映射表之类的,用软件实现要比用硬件实现简单得多,C语言可以很简单的实现类似table,hash之类的数据结构。

由于tap模式下,所有的VPN节点构成了一个虚拟的以太网,那么这个虚拟的交换机的MAC地址-multi_instance映射表就要起码包容所有的这些VPN节点,至于是否要包容其它的MAC地址,那就看你的网络拓扑了,基本上tap模式下的拓扑有三类:

全网桥接

这种拓扑几乎不用任何路由,整个网络都是桥接的,拓扑图如下:

这样子,OpenVPN虚拟出来的交换机就和各个VPN网段内部的物理交换机是完全并列的关系。这种拓扑下&#x

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李小白20200202

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值