OpenVPNをセットアップして動作しています。私のオフィスは、複数のVLANを運用する大きな建物の一部です。明らかに、私たち自身のVLAN内からローカルリソースにアクセスでき、世界の他の場所からOpenVPNを使用できます。しかし、同じ施設内の別のVLANに接続している場合は、どちらもできません。

OpenVPNは建物の外部IPアドレスに接続しているために文句を言っていますが、応答は内部でルーティングされています(私が制御できないスイッチによって)。つまり、応答は予期されたIPからのものではありません。結果:

Incoming packet rejected from [AF_INET]10.67.5.1:1194[2], 
   expected peer address: [AF_INET]195.x.x.x:1194 
   (allow this incoming source address/port by removing
   --remote or adding --float)

(xxx =検閲されたパブリックIP)

誰か助けますか?(これは他の投稿と似ていると思いますが、私の問題は少し異なっていると思い、別の質問を正当化しました)

要求に応じて、サーバー設定:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh1024.pem
server 10.67.15.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.67.5.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

クライアント構成

client
remote example.org
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client_rich.crt
key /etc/openvpn/client_rich.key
comp-lzo yes
dev tun
proto udp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user openvpn
group openvpn
answer

それが言ったfloatように、クライアント構成にオプションを追加して、再試行してください。

--float

Allow remote peer to change its IP address and/or port number, such as due to DHCP (this is the default if --remote is not used). --float when specified with --remote allows an OpenVPN session to initially connect to a peer at a known address, however if packets arrive from a new address and pass all authentication tests, the new address will take control of the session. This is useful when you are connecting to a peer which holds a dynamic address such as a dial-in user or DHCP client.

Essentially, --float tells OpenVPN to accept authenticated packets from any address, not only the address which was specified in the --remote option.