我正在构建一个 OpenVPN 网络。其想法是,连接到 VPN 的服务器获得一个固定 IP,而客户端(使用服务器的服务)获得 dhcp ip。
- 服务器应该获得一个 IP
10.10.0.1 - 10.10.0.254
- 客户端应该在
10.10.1.1 - 10.10.255.254
我当前的设置如下:
- OpenVPN 服务器 10.10.0.1
- 应用服务器 10.10.0.20 <- 通过 ccd 静态
- 客户端 10.10.1.2 <- DHCP
我已确保我的客户端获得了正确范围内的 DHCP 地址。他们还能够 ping OpenVPN 服务器,反之亦然。
我还能够为服务器配置客户端特定的配置,以便它们获取静态 IP,但由于某种原因,它们无法 ping 通 OpenVPN 服务器,而且我也无法从 OpenVPN 服务器 ping 通客户端。
有人能帮我找出我配置错误的地方吗?
OpenVPN 配置文件
OpenVPN 服务器配置:
port 3194
proto udp
dev tun
mode server
ca server_cert/ca.crt
cert server_cert/ovpn-server.crt
key server_cert/ovpn-server.key # This file should be kept secret
dh server_cert/dh.pem
tls-server
cipher AES-256-CBC
ifconfig 10.10.0.1 255.255.0.0
ifconfig-pool 10.10.1.1 10.10.255.254
route 10.10.0.0 255.255.0.0
push "route-gateway 10.10.0.1 255.255.0.0"
push "route 10.10.0.0 255.255.0.0"
ifconfig-pool-persist ipp.txt
client-config-dir ccd
client-to-client
duplicate-cn
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log
verb 6
explicit-exit-notify 1
我的应用程序服务器的客户端特定配置:
ifconfig-push 10.10.0.20 10.10.0.1
我的 client.conf(用于应用服务器)
client
dev tun
proto udp
port 3194
remote vpn.domain.com 3194
nobind
cipher AES-256-CBC
ca keys/ca.crt
cert /etc/openvpn/keys/ngin-web01.crt
key /etc/openvpn/keys/ngin-web01.key
log-append /var/log/openvpn.log
verb 6
航线
OpenVPN 服务器(10.10.0.1):
root@ovpn-srv01:/home/axxmin# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.20.1 0.0.0.0 UG 0 0 0 ens18
10.10.0.0 255.255.0.0 255.255.0.0 UG 0 0 0 tun0
10.128.20.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
255.255.0.0 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
root@ovpn-srv01:/home/axxmin# routel
target gateway source proto scope dev tbl
10.10.0.0/ 16 255.255.0.0 tun0
255.255.0.0 10.10.0.1 kernel link tun0
10.10.0.1 local 10.10.0.1 kernel host tun0 local
default 10.128.20.1 static ens18
10.128.20.0/ 24 10.128.20.6 kernel link ens18
10.128.20.0 broadcast 10.128.20.6 kernel link ens18 local
10.128.20.6 local 10.128.20.6 kernel host ens18 local
10.128.20.255 broadcast 10.128.20.6 kernel link ens18 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
::1 kernel lo
fe80::/ 64 kernel ens18
fe80::/ 64 kernel tun0
::1 local kernel lo local
fe80::1083:7fff:fedd:70c0 local kernel ens18 local
fe80::b24c:97a4:281:de41 local kernel tun0 local
ff00::/ 8 ens18 local
ff00::/ 8 tun0 local
应用程序服务器(10.10.0.20)
root@ovpn-srv01:/home/axxmin# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.20.1 0.0.0.0 UG 0 0 0 ens18
10.10.0.0 255.255.0.0 255.255.0.0 UG 0 0 0 tun0
10.128.20.0 0.0.0.0 255.255.255.0 U 0 0 0 ens18
255.255.0.0 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
root@ovpn-srv01:/home/axxmin# routel
target gateway source proto scope dev tbl
10.10.0.0/ 16 255.255.0.0 tun0
255.255.0.0 10.10.0.1 kernel link tun0
10.10.0.1 local 10.10.0.1 kernel host tun0 local
default 10.128.20.1 static ens18
10.128.20.0/ 24 10.128.20.6 kernel link ens18
10.128.20.0 broadcast 10.128.20.6 kernel link ens18 local
10.128.20.6 local 10.128.20.6 kernel host ens18 local
10.128.20.255 broadcast 10.128.20.6 kernel link ens18 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
::1 kernel lo
fe80::/ 64 kernel ens18
fe80::/ 64 kernel tun0
::1 local kernel lo local
fe80::1083:7fff:fedd:70c0 local kernel ens18 local
fe80::b24c:97a4:281:de41 local kernel tun0 local
ff00::/ 8 ens18 local
ff00::/ 8 tun0 local
客户端(10.10.1.2):
root@client-device:/home/pi# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.128.60.1 0.0.0.0 UG 202 0 0 eth0
10.10.0.0 10.10.1.1 255.255.0.0 UG 0 0 0 tun0
10.10.1.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.128.60.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
root@client-device:/home/pi# routel
target gateway source proto scope dev tbl
10.10.0.0/ 16 10.10.1.1 tun0
10.10.1.1 10.10.1.2 kernel link tun0
10.10.1.2 local 10.10.1.2 kernel host tun0 local
default 10.128.60.1 10.128.60.33 dhcp eth0
10.128.60.0/ 24 10.128.60.33 dhcp link eth0
10.128.60.0 broadcast 10.128.60.33 kernel link eth0 local
10.128.60.33 local 10.128.60.33 kernel host eth0 local
10.128.60.255 broadcast 10.128.60.33 kernel link eth0 local
127.0.0.0 broadcast 127.0.0.1 kernel link lo local
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
::1 kernel lo
fe80::/ 64 kernel eth0
fe80::/ 64 kernel tun0
::1 local kernel lo local
fe80::20d4:6b14:ff16:e230 local kernel tun0 local
fe80::65cf:ce3:fc9f:20fa local kernel eth0 local
ff00::/ 8 eth0 local
ff00::/ 8 tun0 local
答案1
由于您未在服务器配置文件中指定拓扑,net30
因此 Openvpn 以默认模式工作。在此模式下,每个客户端都将从 /30 子网中分配一个 IP,子网中其他可用的 IP 将分配给该隧道的 p2p 地址。此模式下的ifconfig
和route
命令的参数是“local-ip peer-ip”,而不是“local-ip netmask”。
为了使您的配置正常工作,您需要包括
topology subnet
行,因此ifconfig
和route
命令基本上没问题。唯一的例外是客户端的静态地址分配,它应该是
ifconfig-push 10.10.0.20 255.255.0.0
而且您不需要推送
编辑/更正:您做需要传播路由,只有使用route 10.10.0.0 255.255.0.0
命令,因为网络掩码和 IP 已经ifconfig-push
设置了该路由。server
配置中的指令时才会自动传播。我的错。
ifconfig-pool
您可能还需要更改该指令,原因有二。首先,该10.10.1.1
地址不应属于池,因为它是 VPN 服务器的 IP。其次,由于您不使用默认的 /24 网络掩码,因此最好也指定该掩码:
ifconfig-pool 10.10.1.2 10.10.1.254 255.255.0.0