Nebula-punchy-Einstellungen: Welche behebt dein NAT-Problem
punch hält eine bestehende NAT-Zuordnung am Leben; respond versucht einen umgekehrten Handshake. Keines von beiden garantiert einen direkten Pfad, und die Verzögerungseinstellungen ändern nur das Timing.
Zwei Peers finden sich über den Leuchtturm und schaffen es dann nicht, einen direkten Pfad aufzubauen, und der erste Instinkt ist, jede punchy-Option einzuschalten. Dieser Instinkt erzeugt eine Konfiguration mit drei Änderungen und keiner Ahnung, welche davon zählte. Die Einstellungen beantworten verschiedene Fragen: eine pflegt eine Zuordnung, die bereits existiert, und eine versucht einen Handshake in die Gegenrichtung. Entscheide, welche Frage du hast, bevor du eine von beiden anfasst.
Prüfe den Endpunkt vor dem Timing
Ein Peer, der nie unter der erwarteten Adresse erscheint, wird durch punch-Tuning nicht gerettet. Prüfe, was der Leuchtturm über den Peer weiß und was dessen eigene Konfiguration ankündigt, denn eine veraltete Bootstrap-Adresse oder eine versehentlich veröffentlichte private Adresse vereitelt jeden Traversal-Trick. Stelle außerdem sicher, dass das Zertifikat vertrauenswürdig ist, da eine nicht vertrauenswürdige Identität das Gespräch lange beendet, bevor NAT eine Rolle spielt. Prüfe dann, ob UDP den Leuchtturm überhaupt erreicht. Zeitwerte sind das Letzte, was man ansieht, nicht das Erste.
Notiere das Endpunktpaar, mit dem du testest, damit spätere Vergleiche dieselben Peers verwenden und nicht zwei andere Rechner.
punch hält eine Zuordnung, respond öffnet eine Richtung
Die punch-Option sendet regelmäßig leere Pakete an die Underlay-Adresse eines Peers, der bereits einen Tunnel hat. Ihr Zweck ist unglamourös: sie hindert ein zustandsbehaftetes NAT oder eine Firewall daran, die Zuordnung verfallen zu lassen, von der der direkte Pfad abhängt. Die respond-Option ändert, was bei einer Leuchtturm-Benachrichtigung geschieht, und lässt den Host einen Handshake zurück in Richtung des Peers versuchen, der ihn zu erreichen sucht. Das sind verschiedene Mechanismen mit verschiedenen Fehlerarten.
Wähle punch, wenn der direkte Pfad funktioniert und später nachlässt. Wähle respond, wenn sich der Pfad in eine Richtung nie bildet. Beides einzuschalten und zu hoffen ist der Weg, auf dem aus einer Fünf-Minuten-Reparatur eine Woche Tuning wird.
Die Verzögerungen entscheiden wann, nicht ob
Die Verzögerungswerte verschieben das Timing: der eine gilt für das Paket, das nach einer Benachrichtigung gesendet wird, der andere für den umgekehrten Handshake-Versuch. Keiner macht eine blockierte Richtung funktionsfähig. Beide gleichzeitig zu ändern zerstört den Vergleich, den du gerade durchführen wolltest.
Lass sie in Ruhe, bis der Mechanismus stimmt. Justiere dann einen, und schreibe den alten Wert auf.
Wenn ein Relay die ehrliche Antwort ist
Manche NAT-Kombinationen können keinen direkten Pfad unterstützen, wie das Timing auch angeordnet ist. Symmetrisches NAT auf beiden Seiten oder eine Firewall, die unaufgeforderten eingehenden Verkehr vollständig verwirft, lassen nichts zum Durchstoßen übrig.
Ein Relay-Knoten mit erreichbarer Adresse gibt diesen Peers einen Pfad, der nicht vom Erfolg der Traversierung abhängt. Er kostet Bandbreite über diesen Knoten, ist also eine Entscheidung über Kapazität und kein Behelf. Konfiguriere das Relay bewusst und prüfe, dass die Peers es erreichen, denn ein Relay, das selbst hinter einem schwierigen NAT steht, ändert nichts. Höre dann auf, die punch-Einstellungen für dieses Paar zu justieren, da der direkte Pfad nie erscheinen würde.
Teste das gescheiterte Paar nach Leerlauf
Reproduziere die Bedingung, die brach: lass das Paar dasselbe Intervall im Leerlauf, oder wiederhole die Handshake-Folge, die früher scheiterte. Übe dann die Anwendung zwischen diesen beiden Peers, nicht eine Anfrage an den Leuchtturm. Eine Antwort des Leuchtturms beweist den Steuerpfad und nichts über den Datenpfad.
Notiere, welche Einstellung sich änderte, die Uhrzeit und ob ein direkter Pfad erschien oder der Verkehr auf dem Relay blieb. Blieb er, ist die Antwort ein Relay und eine Kapazitätsnotiz, und das ist ein völlig gutes Ergebnis. Erschien er, ist die nächste Frage, ob er eine Stunde Leerlauf übersteht, denn eine Zuordnung, die verfällt, ist genau das Problem, für das punch existiert.