lunedì , dicembre 11 2017
Ultime Notizie
Home / Wireless & Networking / Mikrotik / Mikrotik – Aggregare due WAN con PCC

Mikrotik – Aggregare due WAN con PCC

Ciao Ragazzi,

oggi parliamo del PCC (Per Connection Classifier). Tra le sue funzionalità analizziamo il Load Balancing di più connessioni internet per avere un unico flusso aggregato che sarà in totale quasi la somma delle velocità delle singole connessioni(es. WAN1=10Mb, WAN=10Mb -> in uscita avremo 18-20Mb)

Esistono diverse modalità di utilizzo, oggi ne vedremo due: una basata sull’indirizzo IP delle due WAN e una basata su due interfacce PPPoE.

1 – Modalità basata su IP delle WAN

Per prima cosa vediamo un esempio di come è organizzata la rete:

In questo caso lo scenario prevedere:

WAN1 – 10.0.1.1/24

WAN2 – 10.0.2.1/24

LAN – 172.18.1.0/24

Per prima cosa definiamo sulla Mikrotik gli IP che utilizzeremo:

/ip address
add address=172.18.1.0/24 network=172.18.1.0 broadcast=172.18.1.255 interface=eth5
add address=10.0.1.1/24 network=10.0.1.0 broadcast=10.0.1.255 interface=eth1
add address=10.0.2.1/24 network=10.0.2.0 broadcast=10.0.2.255 interface=eth2

Fatto questo bisogna andare a definire le regole mangle per “manipolare” i pacchetti:

/ip firewall mangle
add chain=input in-interface=eth1 action=mark-connection new-connection-mark=WAN1_conn
add chain=input in-interface=eth2 action=mark-connection new-connection-mark=WAN2_conn
add chain=output connection-mark=WAN1_conn action=mark-routing new-routing-mark=to_WAN1
add chain=output connection-mark=WAN2_conn action=mark-routing new-routing-mark=to_WAN2
add chain=prerouting dst-address=10.0.1.0/24 action=accept in-interface=eth1
add chain=prerouting dst-address=10.0.2.0/24 action=accept in-interface=eth2
add chain=prerouting dst-address-type=!local in-interface=eth5 per-connection-classifier=both-addresses-and-ports:2/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=eth5 per-connection-classifier=both-addresses-and-ports:2/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes
add chain=prerouting connection-mark=WAN1_conn in-interface=eth5 action=mark-routing new-routing-mark=to_WAN1
add chain=prerouting connection-mark=WAN2_conn in-interface=eth5 action=mark-routing new-routing-mark=to_WAN2

Definite le regole mangle si posso creare le rotte statiche:

/ip route
add dst-address=0.0.0.0/0 gateway=10.0.1.1 routing-mark=to_WAN1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.0.2.1 routing-mark=to_WAN2 check-gateway=ping

Concludiamo con il masquerade per permettere la navigazione:

/ip firewall nat
add chain=srcnat out-interface=eth1 action=masquerade
add chain=srcnat out-interface=eth2 action=masquerade

Finito! Facendo uno speedtest da uno dei pc della rete interna vedremo il traffico aggregato delle due ADSL!

2 – Modalità basata sulle interfacce

Lo scenario è pressocchè identico a quello di sopra solo che questa volta non abbiamo gli IP statici per le connessioni WAN ma sarà la Mikrotik ad iniziare due connessioni PPPoE e il Load Balancing sarà fatto tra queste due. L’ip della LAN manterremo lo stesso.

/ip address
add address=172.18.1.0/24 network=172.18.1.0 broadcast=172.18.1.255 interface=eth5

Aggiungiamo le connessioni PPPoE:

/interface pppoe-client
add allow=pap,chap disabled=no interface=ether1 max-mru=1480 max-mtu=1480 mrru=1600 name=pppoe-wan1 password=password1 user=provider1
add allow=pap,chap disabled=no interface=ether2 max-mru=1480 max-mtu=1480 mrru=1600 name=pppoe-wan2 password=password2 user=provider2

Proseguiamo con le regole mangle:

/ip firewall mangle
add chain=input in-interface=pppoe-wan1 action=mark-connection new-connection-mark=WAN1_conn
add chain=input in-interface=pppoe-wan2 action=mark-connection new-connection-mark=WAN2_conn
add chain=output connection-mark=WAN1_conn action=mark-routing new-routing-mark=to_WAN1
add chain=output connection-mark=WAN2_conn action=mark-routing new-routing-mark=to_WAN2
add chain=prerouting dst-address-type=!local in-interface=eth5 per-connection-classifier=both-addresses-and-ports:2/0 action=mark-connection new-connection-mark=WAN1_conn passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=eth5 per-connection-classifier=both-addresses-and-ports:2/1 action=mark-connection new-connection-mark=WAN2_conn passthrough=yes
add chain=prerouting connection-mark=WAN1_conn in-interface=eth5 action=mark-routing new-routing-mark=to_WAN1
add chain=prerouting connection-mark=WAN2_conn in-interface=eth5 action=mark-routing new-routing-mark=to_WAN2

Concludiamo con Routing e Masquerade:

/ip route
add dst-address=0.0.0.0/0 gateway=pppoe-wan1 routing-mark=to_WAN1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=pppoe-wan2 routing-mark=to_WAN2 check-gateway=ping
/ip firewall nat
add chain=srcnat out-interface=pppoe-wan1 action=masquerade
add chain=srcnat out-interface=pppoe-wan2 action=masquerade

 

Enjoy!

Info Paolo Daniele

Ingegnere delle Telecomunicazioni, appassionato di informatica fin da piccolo ho trasformato la passione in lavoro. Con il PHP faccio tutto (o quasi…) ma non disprezzo altri linguaggi all’occorrenza. Se vi piace il mio sito, o vi è utile, o vi sto simpatico, offritemi una birra!

Ti potrebbe interessare

Mikrotik – Visualizzare password Winbox

Ciao Ragazzi, quante volte è capitato di dimenticare una password? Winbox (il tool sviluppato da …

2 Commenti

  1. Ciao …

    ho effettuato l’implementazione secondo il modello 1 del tuo splendido articolo…

    Collaudato e funziona alla grandissima…

    Una domanda…

    La funzionalità di Load Balancing include automaticamente anche il FAILOVER di una delle due connessioni Internet ?

    In caso contrario è possibile implementare uno script per poterlo fare ?

    Grazie mille..

    • Paolo Daniele

      Ciao Paolo, si la funzionalità di Failover in questo caso è integrata nel Load Balancing 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *