openvpn 使用 dev tap 和 dev tun 有什么区别?我知道不同的模式不能互操作。除了第 2 层与第 3 层操作之外,还有什么技术差异。是否存在不同的性能特征,或不同级别的开销。哪种模式更好。每种模式中专门提供哪些功能。
我的要求是创建多个 tap 接口,每个接口在同一子网上都有 ip 地址。
我通过创建一座桥来尝试这个
br0 (192.168.1.199)
___________|_____________________________________
| | | | | |
eth0 tap0 tap1 tap2 tap3 tap4
(192.168.1.150) (.151) (.152) (.153) (.154)
Run Code Online (Sandbox Code Playgroud)
我需要可以从外部 PC 访问所有 Tap 接口。当我从 tap0 ping 到外部计算机时说 192.168.1.200
ping -I tap0 192.168.1.200 -- the ping is not going through.
Run Code Online (Sandbox Code Playgroud)
但是当我从 192.168.1.200 ping 到 192.168.1.150 (tap0) 时它正在工作,但我得到了网桥的 mac 地址 (br0)
我有两个问题:
我已经设法使用 tap0 为完整的 IPv4 连接设置了 OpenVPN。现在我想对 IPv6 做同样的事情。
地址和网络设置(注意我的真实前缀被 2001:db8 替换):
2001:db8::100:0:0/96 my assigned IPv6 range
2001:db8::100:abc:0/112 OpenVPN IPv6 range
2001:db8::100:abc:1 tap0 (on server) (set as gateway on client)
2001:db8::100:abc:2 tap0 (on client)
2001:db8::1:2:3:4 gateway for server
Home laptop (tap0: 2001:db8::100:abc:2/112 gateway 2001:db8::100:abc:1/112)
| | | (running Kubuntu 10.10; OpenVPN 2.1.0-3ubuntu1)
| wifi | |
router |
| OpenVPN
INTERNET |
eth0 | /tap0
VPS (eth0:2001:db8::1:2:3:4/64 gateway 2001:db8::1)
(tap0: 2001:db8::100:abc:1/112)
(running Debian 6; OpenVPN 2.1.3-2)
Run Code Online (Sandbox Code Playgroud)
服务器具有本机 IPv4 和 IPv6 连接,客户端只有 …
我已经设置了一个 linux 机器(在 esxi5 上),它充当 OpenVPN 服务器。服务器配置为对客户端使用桥接,这基本上可以工作,但有一个例外。
如果客户端 ping 网络上的某些机器而不是服务器本身,则它不起作用。我排除了我所知道的一切(iptables 等)并运行 tcpdump 将其归结为以下内容:
问题:为什么br0设备不转发ARP回复给tap0设备?
我在 Linux 上有一个 OpenVPN 客户端连接到 OpenVPN 服务器。服务器通过 DHCP 分配 IP,因此我使用tap接口而不是tun接口进行连接。
OpenVPN连接、认证、与服务器聊天,喝杯咖啡,却忽略了tap0接口的调出。连接后,我必须手动运行ifup tap0以打开接口并获取 IP。
我尝试在运行的配置文件中添加一个 up 脚本
ip link set tap0 up
dhclient tap0
Run Code Online (Sandbox Code Playgroud)
但它只启动了设备,并没有获得 IP。
消毒的client.conf:
# Openvpn config to connect to <DOMAIN>
tls-client
dev tap0
; dev tap ; this didn't work either
; run script after init (supposedly)
; script-security 2 ; to run up script
; up /etc/openvpn/tap0up.sh ; bring up tap0
; up-delay ; Didn't work with or without this; …Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题,当我与 openvpn 一起运行 bridge-start 时,该服务将无法启动。如果我不让 openvpn 运行 bridge-start,并手动添加必要的接口(tap0,br0)(或从 shell 运行 bridge-start),然后我注释掉“up”指令,以便 openvpn 不会调用任何脚本,然后它就可以工作了,一切都很好。
查看 openvpn.log 我可以看到 openvpn 使用多个选项(/etc/openvpn/bridge-start tap0 1500 1654 init)调用脚本,我真的不明白为什么会这样。这可能是个问题吗?
openvpn.log:
Tue May 8 20:18:34 2018 us=217442 Current Parameter Settings:
Tue May 8 20:18:34 2018 us=217576 config = 'server.conf'
Tue May 8 20:18:34 2018 us=217599 mode = 1
Tue May 8 20:18:34 2018 us=217616 persist_config = DISABLED
Tue May 8 20:18:34 2018 us=217633 persist_mode = 1
Tue May 8 20:18:34 2018 us=217679 show_ciphers = DISABLED
Tue May 8 …
我很难弄清楚为什么我不能使用自制的以太网分接头和铜缆捕获两个设备之间双向流动的数据包,看起来就像这样:

两个终端设备(例如 A 和 B)都连接到交换机。但是由于嗅探器(一台普通的笔记本电脑)只有一个以太网端口,我无法执行嗅探,就像在大多数情况下(例如使用 Network Tap 的 Wireshark 示例)一样,在嗅探器上接收来自 TX 和 RX 的流量带2个接口。
因此,为了“解决”这个问题,我只是将 2 个(tap)连接器端口插入交换机上的端口,最后将 1 个端口从交换机连接到嗅探器。我以为数据包只会被广播,但每次我将连接器插入交换机时,A 和 B 之间的连接都会中断(无法从 A ping 到 B,反之亦然)。我做了一个场景的说明:

当我执行此连接时,交换机遇到了什么样的问题?是否真的需要商用水龙头(具有 3 个端口的设备:A、B 和嗅探端口)?
有任何想法吗?
PS:我不想使用端口镜像或集线器。我想要一个被动点击。