VPN-Server antwortet nicht, keine Hinweise auf blockierten Datenverkehr

VPN-Server antwortet nicht, keine Hinweise auf blockierten Datenverkehr

Ich habe einen Mac OS X Server (10.9), auf dem ein L2TP/IPSec VPN-Server läuft. Die Konfiguration scheint in Ordnung zu sein, und der Hostname sowohl des Servers als auch des VPN ist auf einen DynDNS-Hostnamen eingestellt. Der Server ist hinter einem AirPort Extreme-Router mit Portweiterleitung konfiguriert, der mit einem Arris-Modem/Router verbunden ist, wobei der Router deaktiviert (überbrückt) ist. Der Server ist mit einer statischen internen IP konfiguriert, und die MAC-Adresse des Routers ist ebenfalls über DHCP verknüpft, um sicherzustellen, dass die interne Adresse konsistent ist.

Wenn ich die interne IP-Adresse des Servers (10.0.1.x) eingebe und versuche, mich aus dem Netzwerk heraus mit dem VPN-Server zu verbinden, funktioniert alles einwandfrei. Wenn ich jedoch den externen Hostnamen (den DynDNS-Namen) eingebe und versuche, mich wieder aus dem Netzwerk heraus zu verbinden, schlägt die Verbindung fehl. Ebenso schlägt die Verbindung fehl, wenn ich mich außerhalb des Netzwerks befinde (beispielsweise über LTE).

Andere Dienste (SSH, Remotedesktop usw.) stellen alle innerhalb und außerhalb des Netzwerks eine einwandfreie Verbindung her. Nur VPN ist betroffen. Ich kann bestätigen, dass der Server über SSH und Remotedesktop (Ports 22/5900) erreichbar ist.

Ich habe außerdem bestätigt, dass der Router zusätzlich zu den anderen Ports, die von den anderen Diensten verwendet werden, die Ports 500 (UDP), 1701 (UDP) und 4500 (UDP) weiterleitet.

Beim Verbindungsversuch wird auf der Client-Konsole Folgendes angezeigt:

12/16/13 11:13:33.213 PM configd[28]: SCNC: start, triggered by (15822) com.apple.prefe, type L2TP, status 0, trafficClass 0
12/16/13 11:13:33.229 PM pppd[15967]: publish_entry SCDSet() failed: Success!
12/16/13 11:13:33.230 PM pppd[15967]: publish_entry SCDSet() failed: Success!
12/16/13 11:13:33.230 PM pppd[15967]: pppd 2.4.2 (Apple version 727.1.15) started by user, uid 501
12/16/13 11:13:33.231 PM pppd[15967]: L2TP connecting to server 'x.x.x.x' (x.x.x.x)...
12/16/13 11:13:33.232 PM pppd[15967]: IPSec connection started
12/16/13 11:13:33.244 PM racoon[15968]: accepted connection on vpn control socket.
12/16/13 11:13:33.244 PM racoon[15968]: Connecting.
12/16/13 11:13:33.244 PM racoon[15968]: IPSec Phase 1 started (Initiated by me).
12/16/13 11:13:33.245 PM racoon[15968]: IKE Packet: transmit success. (Initiator, Main-Mode message 1).
12/16/13 11:13:33.245 PM racoon[15968]: >>>>> phase change status = Phase 1 started by us
12/16/13 11:13:33.416 PM racoon[15968]: >>>>> phase change status = Phase 1 started by peer
12/16/13 11:13:33.416 PM racoon[15968]: IKE Packet: receive success. (Initiator, Main-Mode message 2).
12/16/13 11:13:33.420 PM racoon[15968]: IKE Packet: transmit success. (Initiator, Main-Mode message 3).
12/16/13 11:13:33.429 PM racoon[15968]: IKE Packet: receive success. (Initiator, Main-Mode message 4).
12/16/13 11:13:33.447 PM racoon[15968]: IKE Packet: transmit success. (Initiator, Main-Mode message 5).
12/16/13 11:13:36.715 PM racoon[15968]: !!! skipped retransmitting frags: frag_flags 1, r->sendbuf->l 112, max 1280
12/16/13 11:13:36.715 PM racoon[15968]: Received retransmitted packet from x.x.x.x[500].
12/16/13 11:13:36.715 PM racoon[15968]: the packet is retransmitted by x.x.x.x[500].
12/16/13 11:13:36.745 PM racoon[15968]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:39.872 PM racoon[15968]: !!! skipped retransmitting frags: frag_flags 1, r->sendbuf->l 112, max 1280
12/16/13 11:13:39.872 PM racoon[15968]: Received retransmitted packet from x.x.x.x[500].
12/16/13 11:13:39.873 PM racoon[15968]: the packet is retransmitted by x.x.x.x[500].
12/16/13 11:13:40.043 PM racoon[15968]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:43.170 PM racoon[15968]: !!! skipped retransmitting frags: frag_flags 1, r->sendbuf->l 112, max 1280
12/16/13 11:13:43.170 PM racoon[15968]: Received retransmitted packet from x.x.x.x[500].
12/16/13 11:13:43.170 PM racoon[15968]: the packet is retransmitted by x.x.x.x[500].
12/16/13 11:13:43.335 PM racoon[15968]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:55.912 PM racoon[15968]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:56.367 PM racoon[15968]: !!! skipped retransmitting frags: frag_flags 1, r->sendbuf->l 112, max 1280
12/16/13 11:13:56.367 PM racoon[15968]: Received retransmitted packet from x.x.x.x[500].
12/16/13 11:13:56.367 PM racoon[15968]: the packet is retransmitted by x.x.x.x[500].
12/16/13 11:14:03.416 PM pppd[15967]: IPSec connection failed
12/16/13 11:14:03.416 PM racoon[15968]: IPSec disconnecting from server x.x.x.x
12/16/13 11:14:03.416 PM racoon[15968]: glob found no matches for path "/var/run/racoon/*.conf"

Und dies auf der Konsole des Servers:

12/16/13 11:13:33.404 PM racoon[216]: IPSec Phase 1 started (Initiated by peer).
12/16/13 11:13:33.404 PM racoon[216]: IKE Packet: receive success. (Responder, Main-Mode message 1).
12/16/13 11:13:33.404 PM racoon[216]: >>>>> phase change status = Phase 1 started by us
12/16/13 11:13:33.404 PM racoon[216]: IKE Packet: transmit success. (Responder, Main-Mode message 2).
12/16/13 11:13:33.541 PM racoon[216]: IKE Packet: receive success. (Responder, Main-Mode message 3).
12/16/13 11:13:33.559 PM racoon[216]: IKE Packet: transmit success. (Responder, Main-Mode message 4).
12/16/13 11:13:33.566 PM racoon[216]: Connecting.
12/16/13 11:13:36.697 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:36.697 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:39.989 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:43.286 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:13:56.484 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:14:06.392 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:14:12.978 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:14:32.767 PM racoon[216]: IKE Packet: transmit success. (Phase 1 Retransmit).
12/16/13 11:14:39.390 PM racoon[216]: IKEv1 Phase 1: maximum retransmits. (Phase 1 Maximum Retransmits).
12/16/13 11:14:39.390 PM racoon[216]: Phase 1 negotiation failed due to time up. 45b24df5cc9713e7:9b427f72231ccb59

Mir fällt auf, dass der Client um 11:14:03 ausfiel, während der Server weitere 30 Sekunden lang Pakete erneut übertrug, bis die Zeit ablief. Der Client in diesem Fall ist Mac OS X, aber iOS-Clients verhalten sich ähnlich.

Nach welchen Schritten zur Fehlerbehebung sollte ich hier suchen?

Antwort1

Okay, es stellt sich heraus, dass es sich um einen „Fehler“ in der neuesten Version von Mac OS X Server handelt. Soweit ich herausfinden konnte, racoonakzeptiert der IKE-Daemon keine Verbindungen, wenn der Quellport nicht UDP 4500 ist. Die meisten Verbindungen, die über NAT laufen, randomisieren den Quellport, was bedeutet, dass keine Verbindung hergestellt wird. Die alte Version des Daemons hat diese Einschränkung nicht. Verbindungen innerhalb des Netzwerks randomisieren den Port nicht, wenn sie direkt mit der IP des Servers verbunden werden, aber Loopback- und externe Verbindungen tun dies anscheinend, was zu den Fehlern führt.

Die schnelle Lösung war also,Ersetzen Sie die racoonBinärdatei durch eine alte Version von OS 10.8, natürlich mit einer Sicherung des Alten durch Benennung racoon.old(oder wäre racoon.newdas richtiger? :D).

Apple scheint sich des Problems bewusst zu sein und wird hoffentlich einen Fix herausgeben. In der Zwischenzeit funktioniert das Zurücksetzen der Binärdatei.

verwandte Informationen