Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

load balancing SMTP

Termin Definicja
load balancing SMTP

Load balancing SMTP to rozkładanie wysyłki na kilka serwerów nadawczych w celu zwiększenia przepustowości.

Na czym polega równoważenie ruchu SMTP

Load balancing SMTP oznacza kierowanie wiadomości wychodzących do więcej niż jednego serwera odpowiedzialnego za przekazywanie poczty. Serwery mogą działać jako niezależne instancje Mail Transfer Agent, czyli programów przekazujących pocztę zgodnie z protokołem SMTP, albo jako węzły połączone za wspólnym adresem usługi. Rozłożenie ruchu zmniejsza obciążenie pojedynczego hosta i pozwala utrzymać wysyłkę wtedy, gdy jeden z węzłów jest chwilowo niedostępny, przeciążony albo wyłączony z powodu prac serwisowych.

Równoważenie może odbywać się na kilku poziomach. Aplikacja wysyłająca pocztę może wybierać serwer z ustalonej puli, lokalny przekaźnik SMTP może przekazywać kolejne wiadomości do różnych węzłów, a zewnętrzny mechanizm może kierować połączenia TCP na podstawie adresu IP, portu i stanu backendu. Sam protokół SMTP nie definiuje jednego algorytmu load balancingu. Sposób wyboru serwera zależy od konfiguracji klienta, przekaźnika, systemu DNS albo urządzenia równoważącego.

Rozdzielenie wysyłki od dostarczania poczty

Ważne jest odróżnienie ruchu wychodzącego od odbioru wiadomości. Przy wysyłce nadawca zwykle korzysta z serwera submission, często na porcie TCP 587, albo z usługi przekazującej pocztę skonfigurowanej przez administratora. Port 587 jest przeznaczony do przesyłania wiadomości przez użytkowników lub aplikacje po uwierzytelnieniu, natomiast port TCP 25 jest standardowo używany do komunikacji między serwerami pocztowymi. Szyfrowanie połączenia może być uruchamiane poleceniem STARTTLS, jeśli obie strony je obsługują i poprawnie wynegocjują zabezpieczone połączenie.

W przypadku poczty przychodzącej serwer nadawcy wyszukuje rekordy MX domeny odbiorcy i próbuje połączyć się z hostem wskazanym przez DNS. Rekordy MX z niższą wartością preferencji są wybierane przed rekordami z wyższą wartością, więc mechanizm ten zapewnia przede wszystkim priorytet i awaryjność, a nie gwarantowany równy podział ruchu. Jeżeli kilka rekordów MX ma tę samą preferencję, serwer wysyłający może wybierać między nimi według własnego algorytmu. Nie należy zakładać, że każdy nadawca rozdzieli połączenia identycznie.

Równoważenie przez wiele adresów A lub AAAA, na przykład w DNS round-robin, również nie zapewnia ścisłego podziału obciążenia. Resolver może buforować odpowiedzi zgodnie z wartością TTL, a poszczególni klienci mogą używać tylko jednego zwróconego adresu przez dłuższy czas. Z tego powodu środowiska wymagające kontroli stanu połączeń często stosują dedykowany load balancer albo logiczny scheduler w warstwie przekaźnika SMTP.

Awaria węzła, kolejki i kontrola dostarczalności

Równoważenie SMTP musi uwzględniać stan każdego serwera, a nie tylko liczbę otwartych połączeń. Monitor może sprawdzać dostępność portu, poprawną odpowiedź na komendę EHLO, możliwość uwierzytelnienia, wolne zasoby oraz działanie kolejki pocztowej. Węzeł, który przyjmuje połączenia TCP, ale nie jest w stanie bezpiecznie zapisać wiadomości lub przekazać jej dalej, nie powinien otrzymywać nowych zadań. Dlatego praktyczny mechanizm powinien rozróżniać sprawność procesu SMTP od rzeczywistej zdolności do obsługi wysyłki.

Jeżeli serwer docelowy tymczasowo odrzuci wiadomość kodem SMTP zaczynającym się od cyfry 4, nadawca powinien potraktować odpowiedź jako przejściową i zachować wiadomość w kolejce do ponowienia. Odpowiedź z kodem zaczynającym się od cyfry 5 oznacza błąd trwały, na przykład nieistniejącego adresata albo odmowę przyjęcia z powodu polityki serwera; bez usunięcia przyczyny kolejne próby mogą nie mieć sensu. Algorytm retry powinien stosować opóźnienia, ponieważ natychmiastowe ponawianie połączeń może zwiększyć przeciążenie i zostać uznane za zachowanie niepożądane.

Podział ruchu nie omija ograniczeń nakładanych przez serwery odbiorcze. Każdy węzeł wysyłający może mieć własny adres IP, reputację, limity liczby wiadomości i osobne wyniki kontroli SPF, DKIM oraz DMARC. Wiadomość może zostać odrzucona mimo wolnych zasobów, jeśli domena lub adres IP nadawcy nie spełnia wymagań odbiorcy. W praktyce pula serwerów powinna mieć spójną konfigurację tożsamości nadawcy, podpisywania DKIM, limitów, kolejek i obsługi błędów, a statystyki należy analizować osobno dla każdego węzła.

Diagnostyka konfiguracji puli serwerów SMTP

Diagnozę rozpoczyna się od ustalenia, gdzie faktycznie podejmowana jest decyzja o wyborze węzła. Należy sprawdzić konfigurację aplikacji, adres przekaźnika, port, tryb TLS, sposób uwierzytelniania oraz listę serwerów zapasowych. Następnie warto porównać rozkład liczby połączeń, liczby wiadomości, wielkości przesłanych danych, czasu odpowiedzi i długości kolejek. Sam fakt, że dwa serwery odpowiadają na test TCP, nie potwierdza poprawnego działania load balancingu.

W logach SMTP powinny być możliwe do powiązania co najmniej identyfikator wiadomości, adres nadawcy, adres odbiorcy, wybrany węzeł, czas rozpoczęcia sesji, odpowiedzi serwera zdalnego oraz wynik końcowy. Dzięki temu można odróżnić błąd wyboru backendu od odrzucenia przez serwer odbiorcy. Należy również sprawdzić, czy ponowienie wiadomości po awarii nie tworzy duplikatów. System powinien zachować identyfikację kolejki i poprawnie obsługiwać sytuację, w której połączenie zostaje przerwane po przyjęciu danych, ale przed otrzymaniem jednoznacznego potwierdzenia.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę