Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια,

προσπαθώ να κάνω 4hs γραμμές LoadBalancing / Failover

για Guide έχω χρησιμοποίηση αυτό :

http://fatalsite.net/?p=100

και προσπάθησα να το προσαρμόσω για 4a wan και στις δίκες μου IPs.

Επίσης θέλω να κάνω detect άμα κάποιο Wan είναι down όχι κανοντας ping την ip του modem αλλα κάποιο extrenal host όπως το 8.8.8.8, επίσης καλο θα ήταν άμα μπορούσα να θεωρώ ένα wan down άμα έχει μεγάλο ping η packet loss.

Πριν είχα PFSENSE και δούλευε OK για χρονια αλλα μετά από κάτι καινούργια updates έχει κάποια process που πάνε 100 cpu και έτσι το εγκατέλειψα.

Αυτό που έχω καταφέρει μέχρι τώρα είναι να έχω internet αλλα είναι ασταθές και πολλές φορες οι σελίδες δεν γίνονται load. Προφανώς θα έχω λάθοι στο κώδικα αφού δεν το έχω ξανακάνει LoadBalancing / failover με Μikrotik


Details:

Mini-ITX

VIA C7 1ghz 512 ram


ether1:192.168.1.1/24
ether2:192.168.2.150/24 GW: 192.168.2.100/24
ether3:192.168.3.150/24 GW: 192.168.3.100/24
ether4:192.168.4.150/24 GW: 192.168.4.100/24
ether5:192.168.5.150/24 GW: 192.168.5.100/24

DNS στο Μikrotik τα ίδια τα Modems.

192.168.2.100
192.168.3.100
192.168.4.100
192.168.5.100




/ip firewall mangle
add chain=input in-interface=ether2 action=mark-connection new-connection-mark=wan1_mark
add chain=input in-interface=ether3 action=mark-connection new-connection-mark=wan2_mark
add chain=input in-interface=ether4 action=mark-connection new-connection-mark=wan3_mark
add chain=input in-interface=ether5 action=mark-connection new-connection-mark=wan4_mark

add chain=output connection-mark=wan1_mark action=mark-routing new-routing-mark=to_wan1
add chain=output connection-mark=wan2_mark action=mark-routing new-routing-mark=to_wan2
add chain=output connection-mark=wan3_mark action=mark-routing new-routing-mark=to_wan3
add chain=output connection-mark=wan4_mark action=mark-routing new-routing-mark=to_wan4

add chain=prerouting dst-address=192.168.2.0/24 action=accept in-interface=ether1
add chain=prerouting dst-address=192.168.3.0/24 action=accept in-interface=ether1
add chain=prerouting dst-address=192.168.4.0/24 action=accept in-interface=ether1
add chain=prerouting dst-address=192.168.5.0/24 action=accept in-interface=ether1

add chain=prerouting dst-address-type=!local in-interface=ether1 per-connection-classifier=both-addresses-and-ports:4/0 action=mark-connection new-connection-mark=wan1_mark passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=ether1 per-connection-classifier=both-addresses-and-ports:4/1 action=mark-connection new-connection-mark=wan2_mark passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=ether1 per-connection-classifier=both-addresses-and-ports:4/2 action=mark-connection new-connection-mark=wan3_mark passthrough=yes
add chain=prerouting dst-address-type=!local in-interface=ether1 per-connection-classifier=both-addresses-and-ports:4/3 action=mark-connection new-connection-mark=wan4_mark passthrough=yes


add chain=prerouting connection-mark=wan1_mark in-interface=ether1 action=mark-routing new-routing-mark=to_wan1
add chain=prerouting connection-mark=wan2_mark in-interface=ether1 action=mark-routing new-routing-mark=to_wan2
add chain=prerouting connection-mark=wan3_mark in-interface=ether1 action=mark-routing new-routing-mark=to_wan3
add chain=prerouting connection-mark=wan4_mark in-interface=ether1 action=mark-routing new-routing-mark=to_wan4



/ip route
add dst-address=8.8.8.8 gateway=192.168.2.100 scope=10
add dst-address=208.67.222.222 gateway=192.168.3.100 scope=10
add dst-address=8.8.4.4 gateway=192.168.4.100 scope=10
add dst-address=208.67.220.220 gateway=192.168.5.100 scope=10


/ip route
add dst-address=10.1.1.1 gateway=8.8.4.4 scope=10 target-scope=10 check-gateway=ping
add dst-address=10.2.2.2 gateway=208.67.222.222 scope=10 target-scope=10 check-gateway=ping
add dst-address=10.3.3.3 gateway=8.8.8.8 scope=10 target-scope=10 check-gateway=ping
add dst-address=10.4.4.4 gateway=208.67.220.220 scope=10 target-scope=10 check-gateway=ping



/ip route
add distance=1 gateway=10.1.1.1 routing-mark=to_wan4
add distance=2 gateway=10.2.2.2 routing-mark=to_wan3
add distance=3 gateway=10.3.3.3 routing-mark=to_wan1
add distance=4 gateway=10.4.4.4 routing-mark=to_wan2


/ip firewall nat


add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade
add chain=srcnat out-interface=ether4 action=masquerade
add chain=srcnat out-interface=ether5 action=masquerade



http://img19.imageshack.us/img19/5190/lc04.png



Eυχαριστω

 

Δημοσ.

Κοίταξες στο Link.png Site: http://wiki.mikrotik.com/wiki/Load_Balancing">WiKi ;

για το failover με βάση αυτά που θες θα χρειαστείς Link.png Site: http://wiki.mikrotik.com/wiki/Failover_Scripting">αυτό

 

Υπόψιν ότι στα updates του Mikrotik αλλάζουν και κάποια πράγματα... με αναβάθμιση δεν μου έτρεχε ένα script και μέχρι να καταλάβω τι έγινε :mad: :mad: :mad: :mad:

 

Το PfSense το τρέχω προς το παρόν σε VM με load balancing και δεν μου τρώει καθόλου CPU.

Δημοσ.

Στο PFsense μετα απο χρονια 0% cpu σε καινουργιο install στο τελευτεο version το process check_reload_status παει 100%.  Aσε που με LoadBalancing στο pfsense δεν μπορείς να εxεις squid proxy γιατί άμα βάλεις βγαίνει μονο από το πρώτο wan

Γιαυτο ήθελα Mikrotik  μήπως μπορέσω και κάνω σωστά LoadBalancing / Failover μαζί με Web Proxy

 

Το Wiki βοηθάει και το έχω δει, αλλα όλα τα examples είναι για 2 wans εγώ έχω 4α και για να καταλάβουν πως ενα wan είναι down κάνουν ping το modem αυτό είναι λάθος το internet μπορεί να είναι down αλλα το modem σου μπορεί να δουλεύει.

 

 

Tωρα στο Μikrotik εχω αυτο το config:

 
# Name the interfaces, beginning from the far left port (0)

/interface ethernet

set 0 comment=LAN  name=ether1-LAN
set 1 comment=WAN1 name=ether2-WAN1
set 2 comment=WAN2 name=ether3-WAN2
set 3 comment=WAN3 name=ether4-WAN3
set 4 comment=WAN4 name=ether5-WAN4

 
# Assign IP addresses to the interfaces. If using DHCP for WAN, go to IP / DHCP Client
/ip address
add address=192.168.1.1/24       interface=ether1-LAN
add address=192.168.2.150/24     interface=ether2-WAN1
add address=192.168.3.150/24     interface=ether3-WAN2
add address=192.168.4.150/24     interface=ether4-WAN3
add address=192.168.5.150/24     interface=ether5-WAN4

 
# Set the default routes AND Marks

/ip route
add dst-address=8.8.8.8        gateway=192.168.2.100 scope=10
add dst-address=208.67.222.222 gateway=192.168.3.100 scope=10
add dst-address=8.8.4.4        gateway=192.168.4.100 scope=10
add dst-address=208.67.220.220 gateway=192.168.5.100 scope=10   


/ip route
add dst-address=10.1.1.1 gateway=8.8.4.4        scope=10 target-scope=10 check-gateway=ping
add dst-address=10.2.2.2 gateway=208.67.222.222 scope=10 target-scope=10 check-gateway=ping
add dst-address=10.3.3.3 gateway=8.8.8.8        scope=10 target-scope=10 check-gateway=ping
add dst-address=10.4.4.4 gateway=208.67.220.220 scope=10 target-scope=10 check-gateway=ping


/ip route
add distance=1 gateway=10.1.1.1 routing-mark=WAN3_ROUTE
add distance=2 gateway=10.2.2.2 routing-mark=WAN2_ROUTE
add distance=3 gateway=10.3.3.3 routing-mark=WAN1_ROUTE check-gateway=ping
add distance=4 gateway=10.4.4.4 routing-mark=WAN4_ROUTE





# NOT SURE ABOUT THIS ...

add gateway=192.168.2.100 distance=1 routing-mark="WAN1_ROUTE" check-gateway=ping
add gateway=192.168.3.100 distance=1 routing-mark="WAN2_ROUTE"
add gateway=192.168.4.100 distance=1 routing-mark="WAN3_ROUTE"
add gateway=192.168.5.100 distance=1 routing-mark="WAN4_ROUTE"
 
# setup masquerade

/ip firewall nat
add chain=srcnat action=masquerade out-interface=ether2-WAN1
add chain=srcnat action=masquerade out-interface=ether3-WAN2
add chain=srcnat action=masquerade out-interface=ether4-WAN3
add chain=srcnat action=masquerade out-interface=ether5-WAN4
 
 
 
###############################################################################
# Address list of IP networks
#
#
#

###############################################################################
/ip firewall address-list
add address=192.168.1.0/24        list=Connected
add address=192.168.1.0/24        list=LAN
add address=192.168.2.100/24      list=Connected
add address=192.168.3.100/24      list=Connected
add address=192.168.4.100/24      list=Connected
add address=192.168.5.100/24      list=Connected

 
 
 
###############################################################################
# Mangle routing marks
#
#
#
###############################################################################
 
# Make traffic to these networks stay in the main routing table
add chain=prerouting action=accept src-address-list=Connected dst-address-list=Connected
 
# Mark connectio
ns initiated from the internet and make sure the router replies using the same WAN.

/ip firewall mangle
add chain=input      action=mark-connection connection-mark=no-mark     

in-interface=ether2-WAN1     new-connection-mark=WAN1_ROS
add chain=input      action=mark-connection connection-mark=no-mark     

in-interface=ether3-WAN2     new-connection-mark=WAN2_ROS

add chain=input      action=mark-connection connection-mark=no-mark     

in-interface=ether4-WAN3     new-connection-mark=WAN3_ROS
add chain=input      action=mark-connection connection-mark=no-mark     

in-interface=ether5-WAN4     new-connection-mark=WAN4_ROS


add chain=output     action=mark-routing    connection-mark=WAN1_ROS   

new-routing-mark=WAN1_ROUTE
add chain=output     action=mark-routing    connection-mark=WAN2_ROS   

new-routing-mark=WAN2_ROUTE

add chain=output     action=mark-routing    connection-mark=WAN3_ROS   

new-routing-mark=WAN3_ROUTE
add chain=output     action=mark-routing    connection-mark=WAN4_ROS   

new-routing-mark=WAN4_ROUTE


 
# Mark connections initiated from the internet and make sure the LAN replies using the same

WAN.
add chain=forward    action=mark-connection connection-mark=no-mark     

in-interface=ether2-WAN1     new-connection-mark=WAN1_LAN
add chain=forward    action=mark-connection connection-mark=no-mark     

in-interface=ether3-WAN2     new-connection-mark=WAN2_LAN

add chain=forward    action=mark-connection connection-mark=no-mark     

in-interface=ether4-WAN3     new-connection-mark=WAN3_LAN
add chain=forward    action=mark-connection connection-mark=no-mark     

in-interface=ether5-WAN4     new-connection-mark=WAN4_LAN


add chain=prerouting action=mark-routing    connection-mark=WAN1_LAN    src-address-list=LAN   

    new-routing-mark=WAN1_ROUTE
add chain=prerouting action=mark-routing    connection-mark=WAN2_LAN    src-address-list=LAN   

    new-routing-mark=WAN2_ROUTE
 
add chain=prerouting action=mark-routing    connection-mark=WAN3_LAN    src-address-list=LAN   

    new-routing-mark=WAN3_ROUTE
add chain=prerouting action=mark-routing    connection-mark=WAN4_LAN    src-address-list=LAN   

    new-routing-mark=WAN4_ROUTE
 
 
###############################################################################
# Customize marking here
# These are new LAN connections. Here you can apply rules for what IP,
# protocol, or port goes out which WAN connection. Set WAN1_ROUTE or
# WAN2_ROUTE as desired.
#
#
###############################################################################

# What changes do i need here for 4 wans ?

add chain=prerouting action=mark-connection connection-mark=no-mark     src-address-list=LAN   

    dst-address-list=!Connected dst-address-type=!local new-connection-mark=LAN_WAN
add chain=prerouting action=mark-routing    connection-mark=LAN_WAN     src-address-list=LAN   

    new-routing-mark=WAN1_ROUTE                         comment="Load-Balancing here"
 


 
 
# Finish
# Once a LAN connection is routed through one ISP, it will stay there no matter what.

add chain=prerouting action=mark-connection connection-mark=LAN_WAN     routing-mark=WAN1_ROUTE

    new-connection-mark=WAN1_STICKY
add chain=prerouting action=mark-connection connection-mark=LAN_WAN     routing-mark=WAN2_ROUTE

    new-connection-mark=WAN2_STICKY

add chain=prerouting action=mark-connection connection-mark=LAN_WAN     routing-mark=WAN3_ROUTE

    new-connection-mark=WAN3_STICKY
add chain=prerouting action=mark-connection connection-mark=LAN_WAN     routing-mark=WAN4_ROUTE

    new-connection-mark=WAN4_STICKY


add chain=prerouting action=mark-routing    connection-mark=WAN1_STICKY src-address-list=LAN   

    new-routing-mark=WAN1_ROUTE
add chain=prerouting action=mark-routing    connection-mark=WAN2_STICKY src-address-list=LAN   

    new-routing-mark=WAN2_ROUTE

add chain=prerouting action=mark-routing    connection-mark=WAN1_STICKY src-address-list=LAN   

    new-routing-mark=WAN3_ROUTE
add chain=prerouting action=mark-routing    connection-mark=WAN2_STICKY src-address-list=LAN   

    new-routing-mark=WAN4_ROUTE
 
 

Οταν κανω ping τα virtual hops το 10.4.4.4 ειναι always down

Επισης οταν βαζω Web proxy μου βγαινει network unreachable.

 

Προφανώς θα υπάρχει κάποιο λάθος στο κώδικα

 

Aμα μπορείς και εxεις χρόνο ρίξε μια ματια μήπως βρείς κάποιο λάθος.

post-268890-0-29172500-1378601824_thumb.png

post-268890-0-07027100-1378601826_thumb.png

Δημοσ.

Δυστυχώς δεν έχω POE για να το δοκιμάσω σε ένα ALIX που έχω πρόχειρο.

Δες Link.png Site: http://aacable.wordpress.com/2011/06/04/mikrotik-4-wan-load-balance-pcc-complete-script-by-zaib/">αυτό έχει κάνει αυτό που θες και με μια γρήγορη ματιά βλέπω ότι διαφέρει λίγο από το δικό σου.

Δημοσ.

Τελικά ελυσα το θέμα με το PFsense και δουλεύει όπως πρέπει τώρα κατά πασα πιθανότητα ήταν το squid proxy που δεν δουλεύει καλά με multi-wan.

Έκλεισα και μερικά περιττά services του Pfsence + Cron να κάνει restart τα processes που πήγαιναν 100% όταν ύπαρχε το πρόβλημα για precaution άμα τυχόν ξανά εμφανιστεί το πρόβλημα.

 

Tώρα είμαι καλύτερα και από πριν

 

κρίμα όμως που δεν δούλεψε καλά με Mikrotik

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...