OpenVPN 路由和级联

OpenVPN 路由和级联

查看我当前的 VPN 设置。我将相应地将服务器命名为“王子”、“城堡”、“龙”

 ________   prince is a         ________    dragon is a client     ________
|        |  client of castle   |        |       of prince         |        |
| castle |<--------------------| prince |<------------------------| dragon |
|________|    vpn subnet is    |________|   ifconfig 172.16.0.61  |________|
    |         10.10.160.0/24                is a vpn gateway           |
    |                                          on dragon               | 
 some lan X                                                        some lan Y
10.10.150.0/24                                                    10.0.6.0/24

我想要实现的是能够从龙访问城堡的子网(X)10.10.150.0。

因此,例如如果城堡局域网 (X) 中有一台机器,其地址为 10.10.150.65,我应该能够从龙(和局域网 Y 中的机器)访问它。

城堡(服务器)配置:

port 5010
proto udp
dev tap10

#(ca,cert,key,dh here)#
cipher AES-256-CBC

server 10.10.160.0 255.255.255.0
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

route 10.10.150.0 255.255.255.0
route 10.10.160.0 255.255.255.0
push "route 10.10.150.0 255.255.255.0"
push "route 10.10.160.0 255.255.255.0"

keepalive 10 120

comp-lzo
duplicate-cn

user nobody
group nogroup

persist-key
persist-tun

log-append /var/log/openvpn/tap10_server.log
verb 3

Prince(客户端)配置:

client
port 5010
remote 88.99.x.x #(public ip of castle)

#(ca,cert,key,dh here)#

cipher AES-256-CBC
dev tap10
proto udp
nobind
auth-nocache
persist-key
persist-tun
key-direction 1
comp-lzo
verb 3
log-append /var/log/openvpn/tap10_client.log

Prince(服务器)配置:

port 5002
dev tap2

ifconfig 172.16.0.61 255.255.255.252

tls-server
#(pkcs12 and dh here)#

cipher AES-256-CBC

max-clients 3

user nobody
group nogroup

comp-lzo

ping 5
ping-restart 15
ping-timer-rem
persist-tun
persist-key

push "route-gateway 172.16.0.61"

push "route 10.10.150.0 255.255.255.0 vpn_gateway"

verb 3
log-append /var/log/openvpn/tap2.log

Dragon(客户端)配置:

client
port 5002
remote 66.77.x.x #(public address of prince)
dev tap0

ifconfig 172.16.0.62 255.255.255.252

#(pkcs12 here)
cipher AES-256-CBC

user nobody
group nogroup

comp-lzo

ping 15
ping-restart 45
ping-timer-rem
persist-tun
persist-key


verb 3
log-append /var/log/openvpn/tap0_client.log

所以目前我可以从 prince 访问 castle 的 lan (X),但不能从 dragon 访问。我应该如何设置路由才能使其正常工作?

希望我的解释不会太混乱。干杯!

答案1

除非您明确指示,否则 OpenVPN 不会修改客户端网络之外的子网的服务器路由。

在你的图表中,不清楚机器城堡有路线通过王子

您需要告知 Castle 如何到达网络 10.0.6.0/24 (LAN )是通过王子客户端连接。

如果你只有一个 OpenVPN 客户端,那么你可以直接在城堡conf(即王子是以下公司的客户:

route 10.0.6.0 255.255.255.0

如果有多个客户端连接到该服务器,这还不够,服务器不知道将路由分配给哪个客户端。在这种情况下,您需要进行特定于客户端的配置。

client-config-dir client-configs

这将指示 OpenVPN 服务器在子目录(服务器上的 conf 目录)中查找client-configs与客户端用于连接的证书上的客户端 CN 名称匹配的文件。因此城堡会查找一个文件client-configs/prince,并在客户端使用匹配的证书连接时使用这些配置指令prince(您需要确保证书上的 CN 与文件名匹配,OpenVPN 并不关心什么呼叫机器)。

在该客户端配置文件中client-configs\prince王子具体部分:

iroute 10.0.6.0 255.255.255.0 [...]

iroute语句告诉 OpenVPN 服务器通过客户端路由该子网的流量,前面的route 10.0.6.0 255.255.255.0语句告诉内核castle让 OpenVPN 管理该网络的路由。

更多详情请访问OpenVPN 操作指南在下面 ”使用路由 VPN(dev tun)时在客户端包含多台机器“。

机器王子如果尚未转发 IP 流量,则还需要转发 IP 流量,因为您在该配置中将其用作路由器。

相关内容