2016-07-20 9 views
1

Wir betreiben eine WCF-basierte API für Windows Azure-Webrollen in Nordeuropa. In letzter Zeit hatten wir Probleme mit sehr instabilen Verbindungen zu einem Client, der auf AWS US East läuft. Ein Wireshark-Dump von unserer Azure-Instanz zeigte, dass TCP-Pakete irgendwo auf dem Pfad verloren gegangen waren und mehrere TCP-Übertragungen von unseren Azure-Instanzen stattfanden.Konfigurieren der MTU-Größe auf Azure PaaS

Die ausgezeichnete Unterstützung von AWS hat uns geholfen, festzustellen, dass dies wahrscheinlich auf Azure Instances zurückzuführen ist, die Jumbo-Frames mit Fragmentgrößen> 1500 Byte verwenden und die Pfad-MTU-Erkennung nicht ordnungsgemäß funktioniert. Ein Hinweis ist, dass die Verbindungen normalerweise bereits im TLS-Handshake stecken bleiben (unsere API läuft über HTTPS), da das TLS-Hello-Paket ungefähr 5000 Bytes umfassen würde.

Meine Frage ist, was ist die empfohlene Methode zur Konfiguration der MTU-Größe auf Azure PaaS? Das Ausführen eines Netsh-Befehls für die Instanzen wäre nicht dauerhaft, wenn das Cloud-Fabric Instanzen usw. verlagert.

Hat auch jemand ähnliche Probleme? Ich mache mir Sorgen über eine verschlechterte Netzwerkleistung zu anderen Cloud-Ressourcen (SQL Azure, Blob Storage, Service Bus), wenn die MTU vom Standardwert gesenkt wird.

Antwort

0

Warum stellen Sie Ihre MTU-Konfiguration nicht auf eine Startaufgabe ein? Das bei jedem Start/Neustart erneut ausführen würde Sie auch, wenn die Rolle nicht bewegt überprüfen wurde, und das Skript ignorieren ...

https://azure.microsoft.com/en-us/documentation/articles/cloud-services-startup-tasks-common/#detect-that-your-task-has-already-run

Jumbo-Frames werden nicht standardmäßig aktiviert, so können Sie Führen Sie beim Start ein PS-Skript aus und aktivieren Sie es manuell.

Get-NetAdapterAdvancedProperty -DisplayName "Jumbo Packet" | Set-NetAdapterAdvancedProperty –RegistryValue "9014" 

Ich hoffe, es hilft in gewisser Weise.

+0

Vielen Dank, wir werden es versuchen! Ich frage mich, ob Ihr Kommentar nicht standardmäßig aktiviert ist. Es ist definitiv nicht etwas, das wir aktiviert haben - als Test haben wir ein vollständig sauberes Cloud-Projekt mit einem WCF-Testdienst mit einem HTTPS-Endpunkt erstellt und deutlich Pakete mit einer Größe von> 1500 Bytes und DontFragment-Flag festgelegt. Ich denke, wir sollten das PS-Skript rückgängig machen können, um es zu deaktivieren. –

0

Es stellte sich heraus, dass die Azure-Instanzen nicht wirklich Jumbo Frames sendeten. Die von Wireshark erfassten Pakete geben dies nur aufgrund von TCP large Segment Offload an. Nachdem wir dies deaktiviert haben, zeigt Wireshark korrekt formatierte TCP-Pakete an. Unsere Jagd nach den verlorenen Paketen zwischen Azure und AWS geht weiter.

Verwandte Themen