Indice   FAQ  
Iscriviti  Login
Indice RouterOS Wiki routerOSiTalia [GUIDE]

Come bilanciare due connessioni in uscita

In questa sezione puoi trovare alcune guide su routerOS

Ti è stata utile questa guida?Dà il tuo giudizio

SI
36
92%
NO
2
5%
NON NE AVEVO BISOGNO
1
3%
 
Voti totali : 39

Come bilanciare due connessioni in uscita

Messaggioda figheras » dom 13 mar 2011, 13:23

In questa guida mostreremo come bilanciare due connessioni su un un unico concentratore avendo a disposizione due linee xDSL....

Immagine

Supponiamo quindi di avere a disposizione due connessioni e di voler bilanciare il traffico in uscita, dobbiamo per forza di cose bilanciare il traffico "per connessioni" e non per pacchetti altrimenti si potrebbero verificare delle sessioni spezzate, proprio perchè la maggior parte di applicativi ha bisogno di inizializzare, elaborare e terminare una sessione sempre con la stessa connettività, per cui bisogna far in modo che ogni sessione inizi e termini sempre con la stessa connettivita, come per esempio connessioni del tipo SSH, Telnet, Ftp, https e molte altre.

Per fare tutto ciò bisogna applicare delle regole di firewall, unire le sessioni e in seguito instradarle.

Ipotizziamo che le connessioni abbiano questi IP:

10.111.0.1 la prima connettività su interfaccia ether1
10.112.0.1 la seconda connettività su interfaccia ether2

Eseguiamo i seguenti passaggi:

/ ip address
add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=ether3
add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=ether1
add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=ether2

Dove nel nostro caso l'interfaccia ether1 e ether2 sono interconnesse ad un router xDSL, metre l'interfaccia ether3 è correttamente configurata per ricevere richiesta di connettività dai client.

A questo punto iniziamo ad impostare le regole firewall:

-Applicheremo due regole che andranno a marcare le connessioni in ingresso (come di seguito)

/ ip firewall mangle
add chain=input in-interface=ether1 action=mark-connection new-connection-mark=ether1_conn
add chain=input in-interface=ether2 action=mark-connection new-connection-mark=ether2_conn

-Poi applicheremo queste altre due regole in modo che i pacchetti arrivati da una singola connessione escano su internet dalla stessa connessione (come di seguito)

add chain=output connection-mark=ether1_conn action=mark-routing new-routing-mark=to_ether1
add chain=output connection-mark=ether2_conn action=mark-routing new-routing-mark=to_ether2

-Realizziamo un'altra regola che fa in modo che i pacchetti destinati ad ogni singola interfaccia non si instradino in una subnet sbagliata (come di seguito)

add chain=prerouting dst-address=10.111.0.0/24 action=accept in-interface=ether3
add chain=prerouting dst-address=10.112.0.0/24 action=accept in-interface=ether3


-Adesso entriamo nel cuore vero e proprio bilanciamento, facendo in modo che tutto il traffico non destinato al nostro concentratore (per cui destinato verso internet) venga quindi marcato per connessione utilizzando il sistema PCC: Acronimo di "per connection classifier"

add chain=prerouting dst-address-type=!local in-interface=ether3 per-connection-classifier=both-addresses:
2/0 \ action=mark-connection new-connection-mark=ether1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=ether3 per-connection-classifier=both-addresses:
2/1 \ action=mark-connection new-connection-mark=ether2_conn passthrough=yes


Dove in questo caso il valore 2/0 e 2/1 sta ad indicare il peso che si vuole dare ad ogni singola connessione, e nel nostro esempio la stiamo bilanciando allo stesso modo.

-Ma supponiamo che la connessione sull'interfaccia ether1 abbia un quantitativo di banda maggiore rispetto alla seconda connessione, faremo in modo quindi di mandare più traffico sulla prima connessione invece che sulla seconda, per cui imposteremo questa regola (come di seguito)

add chain=prerouting dst-address-type=!local in-interface=ether3 per-connection-classifier=both-addresses:
3/0 \ action=mark-connection new-connection-mark=ether1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=ether3 per-connection-classifier=both-addresses:
3/1 \ action=mark-connection new-connection-mark=ether1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=ether3 per-connection-classifier=both-addresses:
3/2 \ action=mark-connection new-connection-mark=ether2_conn passthrough=yes

Per l'appunto abbiamo diviso il traffico in tre flussi, un solo flusso destinato alla ether2, e due flussi destinati alla ether1

-Impostiamo il marcatore di routing in base al connection mark precedente

add chain=prerouting connection-mark=ether1_conn in-interface=ether3 action=mark-routing new-routing-
mark=to_ether1
add chain=prerouting connection-mark=ether2_conn in-interface=ether3 action=mark-routing new-routing-
mark=to_ether2

-Dopo di che imposteremo le rotte per i pacchetti marcati verso i due gateway
/ ip route
add dst-address=0.0.0.0/0 gateway=10.111.0.1 routing-mark=to_ether1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.112.0.1 routing-mark=to_ether2 check-gateway=ping

-Abilitiamo il faileover in modo da smistare la connessione sull'altro gateway in caso di mancato funzionamento
add dst-address=0.0.0.0/0 gateway=10.111.0.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.112.0.1 distance=1 check-gateway=ping

-Nattiamo le connessioni in uscita su entrambe le interfaccie
/ ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade


Con questa serie di regole applicate saremo sicuri di utilizzare entrambe le connessione in uscita verso internet e di bilanciare il traffico in base alla propria preferenza.


P.S: Questa guida è stata realizzata prendendo in considerazione un articolo presente sul wiki ufficiale mikrotik.
Siamo tutti ignoranti. Ma non tutti ignoriamo le stesse cose! - Einstein -
Avatar utente
figheras
Staff rosIT
Staff rosIT
 
Messaggi: 1218
Iscritto il: sab 19 set 2009, 20:09
Uso routerOS dalla Versione: v2.9.x
Certificazioni Mikrotik: MTCNA, MTCRE, MTCWE
Altre certificazioni: Cisco CCNA, KalliopePBX
Preferred Training Centre: Grifonline

Re: Come bilanciare due connessioni in uscita

Messaggioda raffaelema » mer 23 mar 2011, 10:18

complimenti per la guida, molto chiara,
una domanda che differenza c'è tra bilancia per connessionni (pcc) o tramite "nth", ho trovato delle guide che utilizza nth per bilanciare il traffico.

grazie a tutti
raffaele
raffaelema
Mikrotik-User 9° Liv
Mikrotik-User 9° Liv
 
Messaggi: 64
Iscritto il: lun 30 nov 2009, 13:36

Re: Come bilanciare due connessioni in uscita

Messaggioda piciccia » gio 24 mar 2011, 11:41

NTH bilancia pseudocasualmente, quindi per pacchetto.
Invece PCC bilancia per connessione, ovvero una singola sessione viene iniziata e finita sempre su un unica path.
La seconda è di gran lunga preferibile per evitare particolari malfunzionamenti.

Saluti
C.
piciccia
MikroTIK Guru
MikroTIK Guru
 
Messaggi: 1026
Iscritto il: mar 1 giu 2010, 14:57

Re: Come bilanciare due connessioni in uscita

Messaggioda ROSman » dom 10 apr 2011, 21:31

ci sono molti errori nelle regole che hai postato.... ricontrolla (Local e vari ether3 invertiti con ether1)

saluti
MTCNA - MTCRE - MTCINE - MTCTCE
ROSman
Mikrotik-User 10° Liv
Mikrotik-User 10° Liv
 
Messaggi: 13
Iscritto il: mer 2 giu 2010, 17:13

Re: Come bilanciare due connessioni in uscita

Messaggioda figheras » sab 16 apr 2011, 16:53

ROSman ha scritto:ci sono molti errori nelle regole che hai postato.... ricontrolla (Local e vari ether3 invertiti con ether1)

saluti


Mi pare di averne trovato soltanto uno (che ho corretto)....su quale riga pensi ci siano gli errori??
Quota le righe su cui hai trovato gli errori...
Siamo tutti ignoranti. Ma non tutti ignoriamo le stesse cose! - Einstein -
Avatar utente
figheras
Staff rosIT
Staff rosIT
 
Messaggi: 1218
Iscritto il: sab 19 set 2009, 20:09
Uso routerOS dalla Versione: v2.9.x
Certificazioni Mikrotik: MTCNA, MTCRE, MTCWE
Altre certificazioni: Cisco CCNA, KalliopePBX
Preferred Training Centre: Grifonline

Re: Come bilanciare due connessioni in uscita

Messaggioda Joele » gio 21 apr 2011, 2:39

Ciao,
una domanda:
e se a questa (valida)configurazione di load balance, volessi aggiungere un'hotspot per autenticare utenti nella lan (eth3)?
Come si fa??

Grazie.
Joele
Avatar utente
Joele
Mikrotik-User 9° Liv
Mikrotik-User 9° Liv
 
Messaggi: 66
Iscritto il: mar 12 apr 2011, 3:09
Uso routerOS dalla Versione: v3.x

Re: Come bilanciare due connessioni in uscita

Messaggioda figheras » gio 21 apr 2011, 17:52

Joele ha scritto:Ciao,
una domanda:
e se a questa (valida)configurazione di load balance, volessi aggiungere un'hotspot per autenticare utenti nella lan (eth3)?
Come si fa??

Grazie.
Joele


Avendo a disposizione un apparato che fa solo da da hotspot, tipo una rb433 con 3 interfacce ethernet, 2eth utilizzate per bilanciare le connessioni e la 3a per l'autenticazione??
Siamo tutti ignoranti. Ma non tutti ignoriamo le stesse cose! - Einstein -
Avatar utente
figheras
Staff rosIT
Staff rosIT
 
Messaggi: 1218
Iscritto il: sab 19 set 2009, 20:09
Uso routerOS dalla Versione: v2.9.x
Certificazioni Mikrotik: MTCNA, MTCRE, MTCWE
Altre certificazioni: Cisco CCNA, KalliopePBX
Preferred Training Centre: Grifonline

Re: Come bilanciare due connessioni in uscita

Messaggioda Joele » gio 21 apr 2011, 18:25

figheras ha scritto:
Avendo a disposizione un apparato che fa solo da da hotspot, tipo una rb433 con 3 interfacce ethernet, 2eth utilizzate per bilanciare le connessioni e la 3a per l'autenticazione??


Esatto!

Ho a disposizione una rb/450g , e volevo ottenere proprio questo:

2eth per bilanciamento delle (2) connessioni adsl , e la (3)eth collegata alla lan con hotspot per autenticare gli user nella lan.

Si puo' fare ??

Grazie dell'attenzione..
Joele
Avatar utente
Joele
Mikrotik-User 9° Liv
Mikrotik-User 9° Liv
 
Messaggi: 66
Iscritto il: mar 12 apr 2011, 3:09
Uso routerOS dalla Versione: v3.x

Re: Come bilanciare due connessioni in uscita

Messaggioda figheras » gio 21 apr 2011, 20:20

Certo che è fattibile.....Nell'esempio ho preso come riferimento un server pppoe perchè piu comune....ma è la stessa cosa...
Siamo tutti ignoranti. Ma non tutti ignoriamo le stesse cose! - Einstein -
Avatar utente
figheras
Staff rosIT
Staff rosIT
 
Messaggi: 1218
Iscritto il: sab 19 set 2009, 20:09
Uso routerOS dalla Versione: v2.9.x
Certificazioni Mikrotik: MTCNA, MTCRE, MTCWE
Altre certificazioni: Cisco CCNA, KalliopePBX
Preferred Training Centre: Grifonline

Re: Come bilanciare due connessioni in uscita

Messaggioda ROSman » dom 1 mag 2011, 21:37

devi discriminare le connessioni related/estabilisced lasciando le rotte in ingresso giuste,
"potresti" avere problemi di cambio rotta e siti tipo: banche, webmail ecc ti buttano fuori.
Saluti.
MTCNA - MTCRE - MTCINE - MTCTCE
ROSman
Mikrotik-User 10° Liv
Mikrotik-User 10° Liv
 
Messaggi: 13
Iscritto il: mer 2 giu 2010, 17:13


Prossimo

Torna a Wiki routerOSiTalia [GUIDE]

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti