桥接 OpenVPN 隧道无法正常工作

桥接 OpenVPN 隧道无法正常工作

我遇到了一个问题:我在两个站点之间建立了 P2P OpenVPN 连接。我将 VPN TAP 接口添加到任一侧的桥接器中。

客户端:

# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000db9262f8d   no      vpntap0
                                    eth1
                                    eth2

服务器端:

# brctl show
bridge name bridge id       STP enabled interfaces
br0     8000.000db92d05d6   no      vpntap0
                                        eth2

服务器端的接口 eth2 是连接到专用服务器的未标记的 vlan。

现在,当我向每个网关(服务器和客户端)添加 IP 地址时,它们可以互相 ping 通。但是从客户端我无法访问专用服务器(似乎如此)。

当我从专用服务器机器 ping 时,我可以到达服务器的网关,但不能到达客户端网关。但数据包似乎去了某个地方。当我清除客户端网关的 IP 时,ping 出现问题

From 172.16.77.9 icmp_seq=488 Destination Host Unreachable

但是当客户端的网关有 IP 时它就处于静默状态,数据包不会返回。

客户端 VPN 配置:

remote myremotesite.tld

port 1195
proto udp
dev vpntap0
dev-type tap
secret /etc/openvpn/static.key
script-security 2
up /etc/openvpn/br-up.sh
#comp-lzo no
#cipher AES-256-CBC

服务器 VPN 配置:

port 1195
proto udp
dev vpntap0
dev-type tap
secret /etc/openvpn/static.key
script-security 2
up /etc/openvpn/br-up.sh
#comp-lzo no
#cipher AES-256-CBC

脚本 br-up.sh (双方):

#! /bin/bash

ifconfig vpntap0 promisc
ifconfig vpntap0 up 0.0.0.0
brctl addif br0 vpntap0

客户端网关上的防火墙完全打开。

我在服务器端的防火墙上添加了

iptables -I INPUT -i eth2 -j ACCEPT
iptables -I INPUT -i vpntap0 -j ACCEPT
iptables -I INPUT -i br0 -j ACCEPT
iptables -I OUTPUT -o eth2 -j ACCEPT
iptables -I OUTPUT -o vpntap0 -j ACCEPT
iptables -I OUTPUT -o br0 -j ACCEPT

... 只想确认一下。

所有接口上的 MTU 也设置为 1500。

答案1

我找到了解决方案,这是我的错误:)。

我必须在网关的 iptables 中允许转发。我以为这对于网桥来说不是必需的,但事实并非如此...

iptables -I FORWARD -i br0 -j ACCEPT
iptables -I FORWARD -o br0 -j ACCEPT

相关内容