OpenVPNを使用して2つのプライベートネットワークを接続していますが、問題が発生し、解決できません。サーバーは、静的キーを使用した単純なUDP構成で接続されます。私はすでにiptablesの制限などをチェックしましたが、何もありません。また、両方のサーバーが直接パブリックIP上にあります。ルーター/ NATなどは間にありません。サーバーAはリッスンしており、サーバーBはクライアントです。 VPNが起動すると、クライアントは相互に接続し、すべてが完全に機能しますが、最初の1分間のみです。その後、動作を停止します。サーバーAからサーバーBへのトンネル接続(一方のエンドポイントからもう一方のエンドポイントへのping)は引き続き機能します(pingできます)が、反対側からは機能しません。次の1分間のウォッチドッグが認識した後、サーバーBで接続がダウンし、トンネルを再起動します。その後、1分間動作し、これが永遠に繰り返されます...
どちらのサーバーもUbuntu64ビットです。
サーバーA:
root @ server:/ etc/openvpn#uname -an Linuxサーバー2.6.38-13-仮想#52〜lucid1-Ubuntu SMP Thu Nov 10 19:46:44 UTC 2011 x86_64 GNU /Linux root@server:/etc/openvpn# openvpn --version OpenVPN 2.1.0 x86_64-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH ] [PF_INET6] [eurephia] 2010年7月20日に構築 元々はJamesYonanによって開発されました Copyright(C)2002-2009 OpenVPN Technologies、Inc。
サーバーB:
root @ gw2:〜#uname -an Linux gw2 3.2.0-23-generic#36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux root @ gw2:〜#openvpn --version OpenVPN 2.2.1 x86_64-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [ IPv6ペイロード20110424-2(2.2RC2)] 2013年2月27日に構築 元々はJamesYonanによって開発されました Copyright(C)2002-2010 OpenVPN Technologies、Inc。 $ ./configure --build = x86_64-linux-gnu --prefix =/usr --includedir = $ {prefix}/include --mandir = $ {prefix}/share/man --infodir = $ {prefix }/share/info --sysconfdir =/etc --localstatedir =/var --libexecdir = $ {prefix}/lib/openvpn --disable-maintainer-mode --disable-dependency-tracking CFLAGS = -g -O2- fPIE -fstack-protector --param = ssp-buffer-size = 4 -Wformat -Wformat-security -Werror = format-security CPPFLAGS = -D_FORTIFY_SOURCE = 2 CXXFLAGS = -g -O2 -fPIE -fstack-protector --param = ssp-buffer-size = 4 -Wformat -Wformat-security -Werror = format-security FFLAGS = -g -O2 LDFLA GS = -Wl、-Bsymbolic-functions -fPIE -pie -Wl、-z、relro -Wl、-z、now --enable-password-save --Host = x86_64-linux-gnu --build = x86_64-linux -gnu --prefix =/usr --mandir = $ {prefix}/share/man --with-ifconfig-path =/sbin/ifconfig --with-route-path =/sbin/route コンパイル時間の定義:ENABLE_CLIENT_SERVER ENABLE_DEBUG ENABLE_EUREPHIA ENABLE_FRAGMENT ENABLE_HTTP_PROXY ENABLE_MANAGEMENT ENABLE_MULTIHOME ENABLE_PASSWORD_SAVE ENABLE_PORT_SHARE ENABLE_SOCKS USE_CRYPTO USE_LIBDL USE_LZO USE_
サーバーAovpn構成:
daemon vpn-conn writepid /var/run/openvpn-vpn.pid dev tun3 proto udp port 1859 comp-lzo keepalive 10 30 persist-tun persist-key ifconfig 10.9.0.1 10.9.0.2 route 10.10.10.0 255.255 .255.0 secret my-key.key log-append vpn.log verb 5
サーバーB:
daemon vpn writepid /var/run/openvpn-vpn.pid remote 4.3.2.1 dev tun0 proto udp port 1859 comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key ifconfig 10.9.0.2 10.9.0.1 route 192.168.0.0 255.255.252.0 secret my-key.key log-append vpn.log mtu-test 動詞5
クライアントとサーバーの構成に「ping-timer-rem」、「mtu-test」、「float」を追加/削除するための調査を行いましたが、問題は解決していません。
サーバーAはまだ奇妙なことをログに記録しています(問題の原因になる可能性があると思いますが、解決方法がわかりません。両方のサーバーの時間は同じです):
Wed Sep 4 10:25:44 2013 us = 125832 Authenticate/Decrypt packet error:bad packet ID(may be replay):[#100/time =(1378283056)Wed Sep 4 10:24:16 2013]-詳細については--no-replayおよび--replay-windowのマニュアルページエントリを参照するか、-mute-replay-warnings でこの警告を消してください。
サーバーAのもう1つの奇妙な点は、サーバーBが2つのソケットから接続しているように見えることです。サーバーBを確認しましたが、openvpnインスタンスは1つだけで、他にはありません。それを殺すと、両方のソケットからの接続プローブが終了します。
サーバーAログの詳細:
Wed Sep 4 09:56:12 2013 us = 544282 Peer Connection Initiated with [AF_INET] 1.2.3.4:1859 Wed Sep 4 09:57:06 2013 us = 661505 Peer Connection Initiated with [AF_INET] 1.2.3.4:1194
サーバーBの詳細:
Wed Sep 4 10:28:16 2013 us = 98524 SIGUSR1 [soft、ping-restart]受信、プロセス再開 Wed Sep 4 10:28:16 2013 us = 98562再開一時停止、2 second(s) Wed Sep 4 10:28:18 2013 us = 98688注:現在の--script-security設定により、この構成でユーザー定義スクリプトを呼び出すことができる場合があります Wed Sep 4 10 :28:18 2013 us = 98871事前共有静的キーの再利用 Wed Sep 4 10:28:18 2013 us = 98905LZO圧縮が初期化されました Wed Sep 4 10:28:18 2013 us = 98981ソケットバッファ:R = [229376-> 131072] S = [229376-> 131072] Wed Sep 4 10:28:18 2013 us = 99043以前のTUN/TAPインスタンスを保持:tun0 Wed Sep 4 10:28:18 2013 us = 99075 Data Channel MTU parms [L:1545 D:1450 EF:45 EB:135 ET:0 EL:0 AF:3/1] Wed Sep 4 10:28:18 2013 us = 99144ローカルオプション文字列: 'V4、dev-type tun、link-mtu 1545、tun-mtu 1500、proto UDPv4、ifconfig 10.9.0.1 10.9.0.2、comp-lzo、cipher BF- CBC、auth SHA1、keysize 128、secret ' Wed Sep 4 10:28:18 2013 us = 99167予想されるリモートオプションイオン文字列: 'V4、dev-type tun、link-mtu 1545、tun-mtu 1500、proto UDPv4、ifconfig 10.9.0.2 10.9.0.1、comp-lzo、cipher BF-CBC、auth SHA1、keysize 128、secret' Wed Sep 4 10:28:18 2013 us = 99215ローカルオプションハッシュ(VER = V4): '184f07f3' Wed Sep 4 10:28:18 2013 us = 99255予想されるリモートオプションハッシュ( VER = V4): 'de9a476a' Wed Sep 4 10:28:18 2013 us = 99291 UDPv4 link local(bound):[undef] Wed Sep 4 10:28:18 2013 us = 99321 UDPv4リンクリモート:[AF_INET] 4.3.2.1:1859 WrWrWRWed Sep 4 10:28:21 2013 us = 987011 [AF_INET] 4.3.2.1:1859 wrWrWedSepでピア接続が開始されました4 10:28:22 2013 us = 847036初期化シーケンスが完了しました WrWRwrWRwrWWed 9月4日10:28:242013 us = 931728注:経験的なMTUテストを開始します-結果は3〜4分で利用可能になります。 WRwrWRRwrWRwrWrWWrWRwrWRWwrWRRwrWRWwrWRRwrWRwrWRWwrWRwrWRwrWRWwrWRRwrWRwrWRWwrWRwrWRwrWRWwrWRWWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWRWR WwrWRRwrWRwrWRWwrWRwrWRwrWRwrWrWWrWRRwrWR wrWWRwrWRwrWRwrWrWrWRWwrWRWrWrWWrWWrWWWWWWWWWWWWWWWrWrWWWrWrWWed Sep 4 10:30:19 2013 us = 505037 Inactivity timeout(-ping-restart)ソケットを閉じる
サーバーBでは、ログに「1194」文字列はありませんが、サーバー間でパケットをtcpdumpしようとすると(1.2.3.4 =クライアント、4.3.2.1 =サーバー):
root @ gw2:/ etc/openvpn#tcpdump -nieth0ホスト4.3.2.1 tcpdump:冗長出力が抑制されました。完全なプロトコルデコードには-vまたは-vvを使用してください eth0、リンクタイプEN10MB(イーサネット)、キャプチャサイズ65535バイト 10:34:43.534596 IP 4.3.2.1.1859> 1.2.3.4.1859:UDP、長さ100 10:34: 43.535359 IP 1.2.3.4.1859> 4.3.2.1.1859:UDP、長さ100 10:34:44.468608 IP 4.3.2.1.1859> 1.2.3.4.1859:UDP、長さ100 10:34:44.481441 IP 1.2.3.4.1859> 4.3.2.1.1859:UDP、長さ100 10:34:45.476109 IP 4.3.2.1.1859> 1.2.3.4.1859:UDP、長さ100 10:34:45.476510 IP 1.2.3.4.1859> 4.3.2.1.1859:UDP、長さ60 10:34:45.477085 IP 1.2.3.4.1859> 4.3.2.1.1859:UDP 、長さ100 こちら-> 10:34:45.496917 IP 1.2.3.4.1194> 4.3.2.1.1859:UDP、長さ60 10:34:45.537356 IP 4.3.2.1.1859 > 1.2.3.4.1859:UDP、長さ540 10:34:46.540260 IP 4.3.2.1.1859> 1.2.3.4.1859:UDP、長さ100 10:34:46.540955 IP 1.2 .3.4.1859> 4.3.2.1.1859:UDP、l ength 100 10:34:47.526090 IP 4.3.2.1.1859> 1.2.3.4.1859:UDP、長さ100 10:34:47.526793 IP 1.2.3.4.1859> 4.3.2.1。 1859:UDP、長さ100
クライアントがFROMudp 1194(右側の1859ではなく)に再接続したい場合があり、他の接続(すでに1859にある)は開いたままになっているようです。したがって、サーバーAは1859接続にパケットを送信しています(そしてpingを実行できます)が、クライアントはルーティングを1194に変更します。これは初期化されておらず、機能していません(1194ソケットから接続しようとすると、サーバーAで「復号化エラー」が発生します) )。私が言ったように、クライアント(サーバーB)には、私が上位にダンプしたもの以外の構成もopenvpnのインスタンスもありません。
誰かが私に教えてもらえますか、私の構成で何が間違っている可能性がありますか?私は私の心の終わりにいます。
ありがとうございました。
J +
PS:英語が下手でごめんなさい。
私の設定は説明とまったく同じではありませんが、症状は同じです。私の場合の問題は、2台の別々のコンピューターで同じ証明書を同時に使用しようとしたことでした。 2台のコンピューター間の接続を切り替えました。別の証明書を作成すると、両方のコンピューターがVPN上にしっかりと留まりました。
サーバーの1つからkeepalive
オプションを削除してみてください。このオプションはこれに拡張されます
if mode server:
ping 10
ping-restart 120
Push "ping 10"
Push "ping-restart 60"
else
ping 10
ping-restart 60
server
モードのサーバーがないため、構成ではelseブランチが保持されます。したがって、両側にping-restart
オプションが定義されているため、サーバーはピンポンゲームをプレイできます。
同様の症状がありました。私の問題は、ローカルサブネットを192.168.1.xから10.0.0.xに変更することで解決しました。私が接続していたオフィスVPNにも後者のサブネットがあり、競合していました。