#Appunti per la realizzazione di un sistema di bilanciamento delle connessioni <h6>Come bilanciare l'utilizzo di banda di due connessioni internet sfruttando un router mikrotik</h6> La configurazione di rete su cui lavoreremo sarà la seguente: <img src="./load_balance_example.jpg" class="img-responsive center-block" width="30%"> ##Analisi della configurazione Il primo step è quello di assegnare gli opportuni indirizzamenti alle interfacce del router: <pre class="prettyprint"> /ip address add address=192.168.0.1/24 network=192.168.0.0 broadcast=192.168.0.255 interface=LAN add address=10.111.0.2/24 network=10.111.0.0 broadcast=10.111.0.255 interface=ISP1 add address=10.112.0.2/24 network=10.112.0.0 broadcast=10.112.0.255 interface=ISP2 </pre> Le interfacce ISP1 ed ISP2 rappresentano le due connessioni ad internet, mentre l'interfaccia LAN rappresenta la rete interna. Per poter indirizzare i pacchetti attraverso la corretta interfaccia, sarà necessario creare dei marcatori attraverso l'uso di opportuni mangle: <pre class="prettyprint"> /ip firewall mangle add chain=prerouting dst-address=10.111.0.0/24 action=accept in-interface=LAN add chain=prerouting dst-address=10.112.0.0/24 action=accept in-interface=LAN add chain=prerouting in-interface=ISP1 connection-mark=no-mark action=mark-connection \ new-connection-mark=ISP1_conn add chain=prerouting in-interface=ISP2 connection-mark=no-mark action=mark-connection \ new-connection-mark=ISP2_conn add chain=prerouting in-interface=LAN connection-mark=no-mark dst-address-type=!local \ per-connection-classifier=both-addresses:2/0 action=mark-connection new-connection-mark=ISP1_conn add chain=prerouting in-interface=LAN connection-mark=no-mark dst-address-type=!local \ per-connection-classifier=both-addresses:2/1 action=mark-connection new-connection-mark=ISP2_conn add chain=prerouting connection-mark=ISP1_conn in-interface=LAN action=mark-routing \ new-routing-mark=to_ISP1 add chain=prerouting connection-mark=ISP2_conn in-interface=LAN action=mark-routing \ new-routing-mark=to_ISP2 add chain=output connection-mark=ISP1_conn action=mark-routing new-routing-mark=to_ISP1 add chain=output connection-mark=ISP2_conn action=mark-routing new-routing-mark=to_ISP2 </pre> Al fine di evitare che si generino dei loop sulle interfacce, prima di tutto vengono presi in considerazione i pacchetti che attraversano l'interfaccia LAN nella direzione "uscente", cioè verso un gateway. Questi vengono marcati per ricordare da quale interfaccia sono stati inviati. Purtroppo le regole di mangle non possono essere usati su chain di input, ma le chain di prerouting hanno il difetto di considerare ogni tipo di pacchetto. Per effettuare la selezione si utilizza la regola <i>dst-address-type=!local</i> Infine scriviamo le route: <pre class="prettyprint"> /ip route add dst-address=0.0.0.0/0 gateway=10.111.0.1 routing-mark=to_ISP1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=10.112.0.1 routing-mark=to_ISP2 check-gateway=ping </pre> Al fine di prevenire il failover di una delle due connessioni è necessario inserire anche le seguenti regole: <pre class="prettyprint"> /ip route 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=2 check-gateway=ping </pre> Infine, sarà necessario inserire le opportune regole di NAT: <pre class="prettyprint"> /ip firewall nat add chain=srcnat out-interface=ISP1 action=masquerade add chain=srcnat out-interface=ISP2 action=masquerade </pre> @include='bio_giovanni_ruta'
2018 Ⓒ TanzoLab