用户定义桥接 Docker 网络的 OpenVPN 路由

用户定义桥接 Docker 网络的 OpenVPN 路由

我在 Docker 容器内设置 OpenVPN,以便客户端能够访问同一用户定义桥接网络上的其他 Docker 容器。我使用以下方式设置了 OpenVPN这个docker镜像我已将网络从默认网桥更改为使用 10.10.20.0/24 的用户定义网桥。

我已将 OpenVPN 配置为使用 10.10.10.0/24,具体配置如下

server 10.10.10.0 255.255.255.0

我一直在阅读 OpenVPN 文档,并在配置中尝试了以下内容,以将 Docker 网络公开给 OpenVPN 客户端

### Route Configurations Below
route 10.10.20.0 255.255.255.0

### Push Configurations Below 
push "route 10.10.20.0 255.255.255.0"

以下测试成功:

  • 客户端能够连接并获取 IP(例如 10.10.10.5)

  • 从 OpenVPN 容器中的 bash shell 对 Docker 容器(例如 10.10.20.3)执行 ping 操作

  • 从 Docker 容器中的 bash shell 对 OpenVPN 容器(例如 10.10.20.2)执行 ping 操作

以下测试失败:

  • 客户端(例如 10.10.10.5)ping Docker 容器(例如 10.10.20.3)

这是我开始学习网络和系统管理的一个业余项目的一部分,所以我想知道我忽略了什么以及我应该查看哪些文档来了解如何解决这个问题。

答案1

我通过在 UFW 中在 tun 和 docker 创建的桥接设备之间设置转发路由并在 docker 网络和 openvpn 网络之间添加 ip 路由来解决这个问题

ufw route allow in on tun+ out on br-xxxxxxx
ip route add 10.10.10.0/24 via 10.10.20.2

相关内容