Routing

為什麼具有靜態 (vpn)-IP 的 OpenVPN 客戶端無法 ping 伺服器而具有 DHCP (vpn)-ip 的客戶端可以?

  • September 24, 2020

我正在建立一個 OpenVPN 網路。這個想法是連接到 VPN 的伺服器獲得一個固定的 IP,而客戶端(使用伺服器的服務)獲得 dhcp ip。

  • 伺服器應該獲得一個IP10.10.0.1 - 10.10.0.254
  • 客戶端應該獲得一個IP10.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

由於您沒有在伺服器配置文件中指定拓撲,因此 Openvpn 在net30預設模式下工作。在這種模式下,每個客戶端都將被分配一個來自 /30 子網的 IP,子網中的另一個可用 IP 將被分配給該隧道的 p2p 地址。ifconfig該模式下和命令的參數route是“local-ip peer-ip”,而不是“local-ip netmask”。

為了使您的配置工作,您需要包括

topology subnet

行在您的伺服器配置中,因此ifconfigandroute命令將大部分都可以。唯一的例外是客戶端的靜態地址分配,應該是

ifconfig-push 10.10.0.20 255.255.0.0

而且您不需要推送route 10.10.0.0 255.255.0.0命令,因為網路遮罩和 IPifconfig-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

引用自:https://serverfault.com/questions/1035024