Bilanciamento del carico con LAN e Wi-Fi


8

Ho un Mac, che esegue Mac OS X 10.6 o Ubuntu 9.10 o Windows XP (Multiboot). La soluzione può essere per qualsiasi sistema, qualunque cosa funzioni meglio.

Ho due ISP , uno è accessibile tramite Wi-Fi , uno è accessibile tramite LAN . In Mac OS XI posso definire la priorità, quale rete scegliere per prima. Ma ciò che desidero fare è bilanciare il carico con entrambe le reti.

Non voglio comprare hardware aggiuntivo. Ho alcuni router Wi-Fi inutilizzati se questo potrebbe aiutare.

Compilare e configurare programmi in Linux non è un problema per me.

Domanda simile: bilanciamento del carico con più gateway


2
Ti consigliamo di verificare che qualsiasi soluzione suggerita disponga di regole per le connessioni permanenti sulla sua interfaccia. Se la connessione rimbalza tra gli ISP, il server dall'altra parte potrebbe confondersi. So, ad esempio, che Yahoo IM interromperà la connessione se ti connetti da un indirizzo IP diverso.
Doug Harris,

sembra che tu abbia bisogno di una sorta di ripetitore Multi-WAN wireless per immergere i segnali da 2 router WIFI diversi e inviarlo al tuo computer tramite una connessione LAN.
Djangofan,

LISP (Locator / Identifier Separation Protocol) potrebbe essere una soluzione, ma questo è troppo complicato per me. ;-)
Synox,

Cosa vuoi bilanciare il carico?
David Schwartz,

download di file di grandi dimensioni, Streaming video, YouTube, ecc.
Synox

Risposte:


1

Un argomento vicino, per Linux, sarebbe l'impostazione 'metrica' per le rotte. I numeri più bassi sono preferiti ai numeri più alti. Se assegni ad entrambi i percorsi la stessa metrica, penso che sarebbero stati scelti con uguale probabilità.

Penso che la tecnica che stai cercando di ottenere si chiama multihoming . Non ho alcuna esperienza diretta con esso. Tuttavia, alcune cose che probabilmente dovresti tenere a mente.

  • Per impostazione predefinita, penso che finirai con una sola rotta predefinita. Ciò significa che tutto il traffico in uscita preferirà un'interfaccia predefinita. Dovresti cercare di avere più route predefinite o di modificarle dinamicamente nel tempo.
  • Per la durata di una singola connessione in entrata (TCP), dovrebbe rimanere sulla stessa interfaccia da cui è entrata. Penso.

Comunque, quelli sono tutti i suggerimenti a cui riesco a pensare al momento.


metricè un parametro per le interfacce di rete anche in Windows e OS X; qualsiasi sistema operativo che supporti più interfacce di rete richiederà un mezzo per impostare la precedenza.
aprile

1

È possibile utilizzare un sistema di metrica di routing in cui si installano entrambe le connessioni Internet nella tabella di routing con una metrica uguale. Il sistema operativo dovrebbe quindi utilizzare entrambi questi percorsi allo stesso modo, suddividendo efficacemente il traffico in uscita su entrambi i collegamenti.

Anche il traffico in entrata in risposta alle tue richieste dovrebbe essere bilanciato in quanto tornerà all'interfaccia (IP pubblico) da cui proviene la richiesta.

Il problema sarebbe la persistenza della sessione, ad esempio si visualizza un sito Web tramite uno dei collegamenti, ma la visualizzazione della pagina successiva è bilanciata dal carico rispetto all'altra interfaccia, ciò confonderebbe alcune applicazioni poiché l'indirizzo IP di origine cambierebbe costantemente.

Pertanto, probabilmente dividerei parte del tuo traffico sull'altra interfaccia utilizzando percorsi non costanti, a seconda dell'applicazione, della destinazione o del protocollo. Solo qualcosa che manterrà coerenti i tuoi percorsi di traffico.


1

Connectify Dispatch ha una soluzione che farà esattamente ciò di cui hai bisogno. Attualmente solo per Windows, ma le persone hanno avuto successo nella virtualizzazione e nell'uso del software su OS X.

Dato che hai già eseguito (erano in esecuzione) Windows XP ho pensato che saresti stato in grado di capire da solo quella parte.


Il problema più grande è che Windows offre facilmente supporto per più schede di rete, mentre su OS X non è altrettanto facile da implementare.


0

Esiste una sorta di soluzione alternativa: la mia applicazione è in grado di bilanciare il carico, posso definire 2 connessioni che vengono quindi utilizzate entrambe.

Quindi instrado uno degli IP del server a uno degli IPS.

su mac os 10.6:

route add -host XXX.XXX.XXX.XXX 192.168.1.1

Lo so, questo è molto specifico e funziona solo se i server-ips sono sempre gli stessi. E se l'applicazione può bilanciare il carico in alcun modo.


0

Non penso che ciò sarà possibile senza fare qualcosa come tutto il traffico in uscita è un ISP e il traffico in arrivo è un altro ISP.

Il motivo per cui si sta dividendo il traffico su 2 reti separate non sembra che lo farebbero tornare indietro. Se avessi 2 pipe da 1 ISP potrebbe essere possibile.

Come ha detto la persona in precedenza, penso che avrai comunque bisogno di un valore predefinito e potresti limitare un certo traffico attraverso un percorso e il resto attraverso un altro. Non pensare che il bilanciamento del carico come faresti su una LAN funzionerà qui.

Esempio: eseguire gli aggiornamenti utilizzando 192.168.2. * ISP Wi-Fi eseguire l'emivita utilizzando 192.168.1. * LAN ISP.



0

Ho sentito questa stessa domanda una dozzina di volte una dozzina di modi diversi. Innanzitutto, le sessioni interne e le sessioni esterne sono gestite in modo simile, ma non sono le stesse. Per ogni sessione interna, potrebbero esserci più esterni e viceversa. Ciò di cui stai parlando non è logicamente impossibile, ma richiede un po 'di programmazione e preparazione. Alcuni dispositivi sono stati creati con la capacità di aggregare connessioni Ethernet o wifi per velocità di rete più elevate internamente su una rete, ma per reti esterne ho trovato dispositivi solo con FAILOVER, il che significa che cambiano solo quando devono. Tuttavia, è possibile utilizzare una commutazione di base (se istruzioni con 0 o 1) nel protocollo di connessione che reindirizza il traffico su un gateway diverso per ogni sessione ESTERNA. Dovresti quindi tenere traccia di ogni SESSIONE ESTERNA attaccata a ciascuna SESSIONE INTERNA, avvolgendo una sotto-sessione all'interno di una sessione principale con un ID sessione. Dovresti quindi avere un modo per verificare il dominio del sito o utilizzare sessionID per completare il routing interno (in altre parole, dovresti essere in grado di differenziare i messaggi dal client per ogni sessione esterna \ connessione in base alla quale sito da cui stavano richiedendo dati o inviando dati in modo da impostare la pipe per ciascun sito, impedendo al sito di rifiutare la pipe). Ciò significa che dovresti creare un nuovo protocollo di rete nel tuo router e decidere come differenziare le connessioni (se fatto solo dal dominio del sito, potrebbe essere fattibile dal router, ma il client potrebbe provare a usare l'indirizzo ip del cancello esterno per il sito Web, che nega questo; se eseguito su entrambe le estremità, il client deve tenere traccia di un identificatore, in genere un valore numerico del mascheramento binario, che consente di abbinare la ricezione send contro la sessione esterna che viene instradata sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. il client deve tenere traccia di un identificatore, in genere un valore numerico del mascheramento binario, che consente di abbinare la ricezione send contro la sessione esterna che viene instradata sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. il client deve tenere traccia di un identificatore, in genere un valore numerico del mascheramento binario, che consente di abbinare la ricezione send contro la sessione esterna che viene instradata sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. in genere un valore numerico del mascheramento binario, che consente di abbinare la ricezione send alla sessione esterna da instradare sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. in genere un valore numerico del mascheramento binario, che consente di abbinare la ricezione send contro la sessione esterna da instradare sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. che consente di far corrispondere il send send contro la sessione esterna da instradare sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. che consente di far corrispondere il send send contro la sessione esterna da instradare sul gate principale). In altre parole, dovresti programmare il tuo protocollo per gestire la rete e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host) o se vuoi costruire qualcosa compatibile con la programmazione esistente precedente (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host), o se vuoi costruire qualcosa che sia compatibile con la programmazione esistente più vecchia (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. e dovresti decidere se vuoi costruirlo tu stesso (usando sia la programmazione client che host), o se vuoi costruire qualcosa che sia compatibile con la programmazione esistente più vecchia (che dovrebbe essere vincolata dalla messaggistica tra host e client, mettendo più usura sull'host ma niente di nuovo per il client). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. mettere più usura sull'host ma niente di nuovo per il cliente). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato. mettere più usura sull'host ma niente di nuovo per il cliente). Se conosci il tuo unix, o conosci la tua programmazione di winserver, questo può essere fatto con un po 'di tempo, ma richiede una quantità maggiore di risorse da allocare per ciascun dispositivo bilanciato.

Per le reti di grandi dimensioni in stile aziendale, è possibile creare un collegamento in rete e assegnare a ciascun piano o reparto un gateway dedicato, consentendo più ISP e non dedicando mai troppo a nessuno di essi. È inoltre possibile gestire il failover da un hub che invia modifiche o reindirizza a un gateway diverso quando uno di essi presenta problemi. Ciò offre una certa tolleranza ai guasti.


2
È più probabile che la tua risposta venga letta se non è un muro di testo. Ti preghiamo di dedicare un minuto a dividerlo in paragrafi.
fixer1234

L'ho fatto. Ma l'interfaccia lo ha pubblicato comunque come un muro di testo.
Htd Tech,

Solo per riferimento, la risposta per il bilanciamento del carico di una singola connessione è che non è realmente possibile se non ci si lavora su entrambe le estremità. Ma allo scopo di velocizzare l'accesso al web, ci sono alcune schede multi-NIC di terze parti che accederanno simultaneamente alle reti interne. Se si dispone di più servizi isp, è possibile consentire al sistema di gestire il bilanciamento della larghezza di banda. Questo non è realmente applicabile ai giochi o ai video non compressi, poiché entrambe le estremità negoziano per le dimensioni dei pacchetti, ma se sei molto online per lavoro, è fattibile e otterrai un aumento delle prestazioni.
Htd Tech,

Ho trovato solo un'interruzione di paragrafo e l'ho risolto. Il "segreto" è che è necessario un doppio ritorno (una riga vuota) tra i paragrafi. Altrimenti, il sistema lo esegue insieme per comodità.
fixer1234,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.