Da UDP ein verbindungsloses Protokoll ist, bin ich durch die Einstellung in meiner Sonicwall Firewall für "UDP Connection Timeout" verwirrt. Die Standardeinstellung ist 30 Sekunden - aber wie lange dauert es genau nach 30 Sekunden?
Hier ist meine reale Situation: Ich habe einen NTP-Server im ntp.org-Pool, der ungefähr 3000 Abfragen pro Minute bedient. Dies belastet meine SOHO-Klasse TZ-200 ein wenig - nicht in Bezug auf die Bandbreite; aber in Bezug auf die Anzahl der Verbindungen hat es durchlaufen. Ich frage mich, ob die UDP-Verbindungen auf der SonicWall irgendwie "am Leben erhalten" werden. obwohl sie (per definitionem) verbindungslos sind.
Was vermisse ich hier? Was bedeutet SonicWall, wenn es sich um ein "UDP Connection Timeout" handelt?
Antworten:
Während es keine formale "Verbindung" mit UDP gibt, gibt es immer noch eine Konvention, nach der Clients Anforderungen senden und erwarten, dass sie Antworten mit der Quell-IP und dem mit der Ziel-IP und dem Ziel-Port ausgetauschten Port zurückerhalten.
Stateful Firewalls und NATs gehen daher davon aus, dass Pakete mit einer bestimmten Kombination aus Quell-IP / Quell-Port / Ziel-IP / Ziel-Port und der entsprechenden Kombination aus ausgetauschtem Quell- und Ziel-IP Teil einer "Verbindung" sind. Auf diese Weise können Regeln wie "Nur ausgehende Verbindungen" auf UDP angewendet werden und Rückübersetzungen auf Antwortpakete angewendet werden.
Leider kann die Firewall oder NAT nicht erkennen, wann der Client die Kommunikation mit dem Server beendet hat. Es muss also auf eine Zeitüberschreitung warten, bevor der Eintrag aus den Statusverfolgungstabellen entfernt wird. Das ist die Zeitüberschreitung, die Sie einstellen.
Grundsätzlich wäre es möglich, eine NAT-Box zu erstellen, die einen statusfreien Ansatz für Portforwards verwendet und gleichzeitig einen statusbehafteten Ansatz für ausgehende Verbindungen beibehält. Es ist jedoch einfacher, statusbehafteten NAT für alles zu verwenden.
Leider, wie Sie festgestellt haben, ist dies für zustandslose UDP-Server, die eine große Anzahl kleiner Anforderungen bedienen, zum Scheitern verurteilt. Sie befinden sich in einer Situation, in der die Firewall wesentlich mehr Ressourcen verbraucht als der Server.
quelle
Ihre Firewall verwaltet eine Verbindungstabelle für UDP-Verbindungen. Wenn Sie beispielsweise eine DNS-Abfrage senden, erstellt die Firewall einen Eintrag für diesen Nachrichtenfluss, damit die DNS-Antwort wieder in Ihr Netzwerk gelangen kann. Die Einträge in der Tabelle laufen nach 30 Sekunden ohne Aktivität ab.
quelle
Ihr NTP-Server befindet sich hinter Ihrer NAT (Firewall). UDP ist aus Sicht der Anwendung und des Betriebssystems verbindungslos und für die meisten Netzwerkgeräte unterwegs.
Für Ihre NAT-Firewall wird jedoch aufgezeichnet, wann immer ein UDP-Paket ausgeht, sodass eine Antwort vom anderen Ende an denselben Computer in Ihrem Netzwerk umgeleitet wird. Diese werden von der Firewall als "Verbindungen" bezeichnet.
Theoretisch weiß das NAT, dass der externe Port der bekannte NTP-Port sein wird, aber es sieht so aus, als ob Ihre Firewall dies nicht unterstützt. Wenn dies Ihre einzige Verwendung für UDP über diese Firewall ist, können Sie das Verbindungszeitlimit auf einen kleineren Wert festlegen. Alternativ können Sie, wenn Sie dies nach Anwendungsport festlegen können, eine kürzere Zeit (z. B. 1 Sekunde) für diesen bestimmten Port festlegen.
quelle
IPv6 benötigt kein NAT, dennoch scheint es, als wären Firewalls in Bezug auf UDP statusbehaftet.
quelle