Równoważenie obciążenia za pomocą sieci LAN i Wi-Fi


8

Mam komputer Mac z systemem Mac OS X 10.6 lub Ubuntu 9.10 lub Windows XP (Multiboot). Rozwiązaniem może być dowolny system, cokolwiek działa lepiej.

Mam dwóch dostawców usług internetowych , do jednego można uzyskać dostęp za pośrednictwem Wi-Fi , do drugiego można uzyskać dostęp za pośrednictwem sieci LAN . W Mac OS XI można określić priorytet, którą sieć wybrać jako pierwszą. Ale chcę zrobić równowagę obciążenia w obu sieciach.

Nie chcę kupować dodatkowego sprzętu. Mam kilka nieużywanych routerów Wi-Fi, jeśli to pomogłoby.

Kompilowanie i konfigurowanie programów w systemie Linux nie stanowi dla mnie problemu.

Podobne pytanie: równoważenie obciążenia z wieloma bramami


2
Będziesz chciał sprawdzić, czy każde sugerowane rozwiązanie będzie miało reguły dotyczące utrzymywania połączeń przez jego interfejs. Jeśli połączenie zostanie odrzucone między dostawcami usług internetowych, serwer na drugim końcu może się pomylić. Wiem na przykład, że Yahoo IM porzuci połączenie, jeśli łączysz się z innego adresu IP.
Doug Harris

Wygląda na to, że potrzebujesz jakiegoś bezprzewodowego repeatera Multi-WAN, aby pochłaniać sygnały z 2 różnych routerów WIFI i dostarczać je do komputera przez połączenie LAN.
djangofan

LISP (protokół separacji lokalizatora / identyfikatora) może być rozwiązaniem, ale jest to dla mnie zbyt skomplikowane. ;-)
Synox,

Co chcesz załadować saldo?
David Schwartz

pobieranie dużych plików, strumieni wideo, YouTube itp.
Synox,

Odpowiedzi:


1

Zbliżonym tematem dla Linuksa byłoby ustawienie „metryczne” dla tras. Niższe liczby są lepsze niż wyższe. Jeśli podasz obie trasy tę samą metrykę, pomyślałem, że zostaną one wybrane z jednakowym prawdopodobieństwem.

Myślę, że technika, którą próbujesz osiągnąć, nazywa się multihoming . Nie mam z tym bezpośredniego doświadczenia. Należy jednak pamiętać o kilku rzeczach.

  • Domyślnie myślę, że skończysz z tylko jedną domyślną trasą. Oznacza to, że cały ruch wychodzący będzie domyślnie preferował jeden interfejs. Trzeba będzie przyjrzeć się wielu domyślnym trasom lub dynamicznie zmieniać tę trasę w miarę upływu czasu.
  • Przez całe życie pojedynczego połączenia przychodzącego (TCP) powinien on pozostawać w tym samym interfejsie, w którym się pojawił. Myślę.

W każdym razie to są wszystkie wskazówki, o których mogę teraz myśleć.


metricjest parametrem interfejsów sieciowych również w systemie Windows i OS X; każdy system operacyjny obsługujący wiele interfejsów sieciowych będzie wymagał ustalenia pierwszeństwa.
apraetor

1

Możesz użyć systemu metryk routingu, w którym instalujesz oba połączenia internetowe w tabeli routingu z taką samą metryką. System operacyjny powinien następnie równomiernie korzystać z obu tych tras, skutecznie dzieląc ruch wychodzący na oba łącza.

Ruch przychodzący w odpowiedzi na twoje żądania powinien również być zrównoważony, ponieważ powróci do interfejsu (Public IP), z którego żądanie pochodzi.

Problemem może być trwałość sesji, na przykład przeglądanie strony internetowej za pomocą jednego z linków, ale następne wyświetlanie strony jest równoważone obciążeniem z innego interfejsu, co dezorientuje niektóre aplikacje, ponieważ źródłowy adres IP ciągle się zmienia.

Dlatego prawdopodobnie podzieliłbym tylko część twojego ruchu na inny interfejs przy użyciu nierównomiernych tras, według aplikacji, miejsca docelowego lub protokołu. Po prostu coś, co utrzyma spójność twoich dróg ruchu.


1

Connectify Dispatch ma rozwiązanie, które zrobi dokładnie to, czego potrzebujesz. Obecnie tylko dla systemu Windows, ale ludzie odnieśli sukces w wirtualizacji i używaniu swojego oprogramowania w systemie OS X.

Ponieważ już uruchomiłeś (działałeś) system Windows XP, pomyślałem, że będziesz w stanie samodzielnie rozwiązać ten problem.


Największym problemem jest to, że Windows łatwo oferuje obsługę wielu kart sieciowych, podczas gdy w OS X nie jest tak łatwo go wdrożyć.


0

Istnieje pewien sposób obejścia: Moja aplikacja jest w stanie wyrównać obciążenie, mogę zdefiniować 2 połączenia, które są następnie używane jednocześnie.

Następnie kieruję jeden z adresów IP serwera do jednego z IPS.

w systemie Mac OS 10.6:

Dodaj trasę -host XXX.XXX.XXX.XXX 192.168.1.1

Wiem, że jest to bardzo specyficzne i działa tylko wtedy, gdy serwer IPS jest zawsze taki sam. A jeśli aplikacja może w jakikolwiek sposób wyrównać obciążenie.


0

Nie sądzę, że będzie to możliwe bez zrobienia czegoś takiego, że cały ruch wychodzący to jeden dostawca usług internetowych, a ruch przychodzący to inny dostawca usług internetowych.

Powodem jest podział ruchu na dwie osobne sieci, ale nie wydaje się, że wrócą. Jeśli masz 2 rury od 1 dostawcy usług internetowych, może to być możliwe.

Jak powiedziała wcześniej osoba, myślę, że i tak będziesz potrzebować opcji domyślnej i może ograniczyć pewien ruch na jednej trasie, a resztę na innej. Tylko nie myśl, że równoważenie obciążenia, tak jak w sieci LAN, będzie tutaj działać.

Przykład: uruchom aktualizacje za pomocą 192.168.2. * ISP Wi-Fi uruchom okres połowicznego rozpadu za pomocą 192.168.1. * LAN ISP.



0

Słyszałem to samo pytanie kilkanaście razy kilkanaście różnych sposobów. Po pierwsze, sesje wewnętrzne i sesje zewnętrzne są obsługiwane podobnie, ale nie są takie same. Dla każdej sesji wewnętrznej może być wiele zewnętrznych i odwrotnie. To, o czym mówisz, nie jest logicznie niemożliwe, ale wymaga trochę programowania i przygotowania. Niektóre urządzenia są budowane z możliwością agregowania połączeń Ethernet lub Wi-Fi w celu zwiększenia prędkości sieci wewnętrznie w sieci, ale w przypadku sieci zewnętrznych znalazłem tylko urządzenia z FAILOVER, co oznacza, że ​​przełączają się tylko wtedy, gdy muszą. Można jednak użyć podstawowego przełączania (jeśli instrukcje mają wartość 0 lub 1) w protokole połączenia, który przekierowuje ruch przez inną bramę dla każdej sesji ZEWNĘTRZNEJ. Będziesz wtedy musiał śledzić każdą SESJĘ ZEWNĘTRZNĄ dołączoną do każdej SESJI WEWNĘTRZNEJ, zawijając pod-sesję w sesji głównej identyfikatorem sessionID. Będziesz musiał mieć sposób na sprawdzenie domeny witryny lub użycie sessionID do wykonania wewnętrznego routingu (innymi słowy, będziesz musiał odróżniać wiadomości od klienta dla każdej sesji zewnętrznej \ połączenia na podstawie którego witryna, z której żądali danych lub do której wysyłali dane, aby ustawić potok dla każdej witryny, uniemożliwiając witrynie odrzucenie potoku). Oznacza to, że będziesz musiał zbudować nowy protokół sieciowy w routerze i zdecydować, jak rozróżnić połączenia (jeśli jest to zrobione tylko przez domenę witryny, może to być wykonalne z routera, ale klient może próbować użyć adresu IP zewnętrzna brama do strony internetowej, która to neguje; jeśli zostanie to zrobione na obu końcach, klient musi śledzić jakiś identyfikator, zazwyczaj wartość liczbową maskowania binarnego, która pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej przez bramę główną). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. klient musi śledzić jakiś identyfikator, zwykle liczbową wartość maskowania binarnego, która pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej przez bramę główną). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. klient musi śledzić jakiś identyfikator, zwykle liczbową wartość maskowania binarnego, która pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej przez bramę główną). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. zazwyczaj wartość liczbowa maskowania binarnego, która pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej na głównej bramie). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. zazwyczaj wartość liczbowa maskowania binarnego, która pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej na głównej bramie). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. który pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej na głównej bramie). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. który pozwala dopasować odbiór wysyłania do sesji zewnętrznej kierowanej na głównej bramie). Innymi słowy, musisz zaprogramować własny protokół do obsługi sieci i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając z programowania klienta i hosta), czy też chcesz zbudować coś jest to zgodne ze starszymi istniejącymi programami (które musiałyby być związane komunikacją między hostem a klientem, powodując większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając zarówno z programowania klienta, jak i hosta), czy też chcesz zbudować coś kompatybilnego ze starszym istniejącym programowaniem (które musiałoby być ograniczone komunikacją między hostem i klienta, co powoduje większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. i musisz zdecydować, czy chcesz go zbudować samodzielnie (korzystając zarówno z programowania klienta, jak i hosta), czy też chcesz zbudować coś kompatybilnego ze starszym istniejącym programowaniem (które musiałoby być ograniczone komunikacją między hostem i klienta, co powoduje większe zużycie hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. nakładanie większego zużycia na hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze. nakładanie większego zużycia na hosta, ale nic nowego dla klienta). Jeśli znasz swój system uniksowy lub programowanie w winserver, możesz to zrobić w krótkim czasie, ale wymaga to przydzielenia większej ilości zasobów dla każdego urządzenia w równowadze.

W przypadku większych sieci w stylu korporacyjnym możesz połączyć sieć w sieć i nadać każdemu piętra lub działowi dedykowaną bramę, umożliwiając wielu dostawcom usług internetowych i nigdy nie nakładając zbyt wiele na żadną z nich. Przełączanie awaryjne może być również obsługiwane przez koncentrator, który wysyła zmiany lub przekierowuje do innej bramy, gdy jeden z nich ma problemy. Daje to pewną odporność na uszkodzenia.


2
Twoja odpowiedź prawdopodobnie zostanie przeczytana, jeśli nie jest to ściana tekstu. Poświęć chwilę na podzielenie go na akapity.
fixer1234

Zrobiłem. Ale interfejs i tak opublikował go jako ścianę tekstu.
Htd Tech

Dla porównania, dla równoważenia obciążenia pojedynczego połączenia odpowiedź jest taka, że ​​naprawdę nie jest to możliwe, jeśli nie pracujesz nad nim na obu końcach. Jednak w celu przyspieszenia dostępu do sieci istnieją karty wielu kart NIC innych firm, które będą jednocześnie uzyskiwać dostęp do sieci wewnętrznych. Jeśli masz wiele usług ISP, możesz pozwolić systemowi na obsługę równowagi przepustowości. Nie dotyczy to gier ani nieskompresowanego wideo, ponieważ oba końce negocjują rozmiary pakietów, ale jeśli dużo pracujesz w Internecie, jest to wykonalne i może zwiększyć wydajność.
Htd Tech

Znalazłem tylko jeden akapit akapitowy i naprawiłem to. „Sekret” polega na tym, że potrzebujesz podwójnego powrotu (pusta linia) między akapitami. W przeciwnym razie system uruchomi go razem dla Twojej wygody.
fixer1234
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.