Community discussions

MikroTik App
 
molesza
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 57
Joined: Thu Jun 20, 2013 12:02 pm

Force client over specific WAN on PPC load balancing

Thu Mar 13, 2014 6:11 pm

I have PPC load balancing setup on my mikrotik with 2 DSL modems. One of the client PC's 192.168.2.52 needs to go over connection "ISP1"

I am attaching my export below and hope that someone can help me out.

# mar/13/2014 18:07:59 by RouterOS 6.9
# software id = 8I1D-X0J9
#


/interface bridge
add l2mtu=1598 name=BRIDGE

/interface wireless
set [ find default-name=wlan1 ] band=2ghz-b/g/n channel-width=\
    20/40mhz-ht-above country="south africa" disabled=no distance=indoors \
    l2mtu=2290 mode=ap-bridge ssid=Macaulay wireless-protocol=802.11

/interface ethernet
set [ find default-name=ether1 ] name=ISP1
set [ find default-name=ether2 ] name=ISP2
set [ find default-name=ether3 ] name=LAN
set [ find default-name=ether4 ] disabled=yes
set [ find default-name=ether5 ] disabled=yes

/interface wireless security-profiles
set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk group-ciphers=\
    tkip,aes-ccm mode=dynamic-keys unicast-ciphers=tkip,aes-ccm \
    wpa-pre-shared-key=***** wpa2-pre-shared-key=*****

/ip hotspot user profile
set [ find default=yes ] idle-timeout=none keepalive-timeout=2m \
    mac-cookie-timeout=3d
/ip pool
add name=dhcp_pool1 ranges=192.168.2.100-192.168.2.254

/ip dhcp-server
add address-pool=dhcp_pool1 disabled=no interface=BRIDGE name=dhcp1

/interface bridge port
add bridge=BRIDGE interface=LAN
add bridge=BRIDGE interface=wlan1

/ip address
add address=192.168.2.1/24 interface=BRIDGE network=192.168.2.0
add address=192.168.1.21/24 interface=ISP2 network=192.168.1.0
add address=192.168.3.11/24 interface=ISP1 network=192.168.3.0
/ip dhcp-server network
add address=192.168.2.0/24 dns-server=192.168.2.1 gateway=192.168.2.1

/ip dns
set allow-remote-requests=yes servers=8.8.8.8

/ip firewall mangle
add chain=prerouting dst-address=192.168.3.0/24 in-interface=BRIDGE
add chain=prerouting dst-address=192.168.1.0/24 in-interface=BRIDGE
add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP1 new-connection-mark=ISP1_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP2 new-connection-mark=ISP2_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=BRIDGE new-connection-mark=ISP1_conn \
    per-connection-classifier=both-addresses:2/0
add action=mark-routing chain=prerouting connection-mark=ISP1_conn \
    in-interface=BRIDGE new-routing-mark=to_ISP1
add action=mark-routing chain=prerouting connection-mark=ISP2_conn \
    in-interface=BRIDGE new-routing-mark=to_ISP2
add action=mark-routing chain=output connection-mark=ISP1_conn \
    new-routing-mark=to_ISP1
add action=mark-routing chain=output connection-mark=ISP2_conn \
    new-routing-mark=to_ISP2
add chain=prerouting dst-address=192.168.3.0/24 in-interface=BRIDGE
add chain=prerouting dst-address=192.168.1.0/24 in-interface=BRIDGE
add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP1 new-connection-mark=ISP1_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    in-interface=ISP2 new-connection-mark=ISP2_conn
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=BRIDGE new-connection-mark=ISP1_conn \
    per-connection-classifier=both-addresses:2/0
add action=mark-connection chain=prerouting connection-mark=no-mark \
    dst-address-type=!local in-interface=BRIDGE new-connection-mark=ISP2_conn \
    per-connection-classifier=both-addresses:2/1
add action=mark-routing chain=prerouting connection-mark=ISP1_conn \
    in-interface=BRIDGE new-routing-mark=to_ISP1
add action=mark-routing chain=prerouting connection-mark=ISP2_conn \
    in-interface=BRIDGE new-routing-mark=to_ISP2
add action=mark-routing chain=output connection-mark=ISP1_conn \
    new-routing-mark=to_ISP1
add action=mark-routing chain=output connection-mark=ISP2_conn \
    new-routing-mark=to_ISP2

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ISP1
add action=masquerade chain=srcnat out-interface=ISP2
add action=masquerade chain=srcnat out-interface=ISP1
add action=masquerade chain=srcnat out-interface=ISP2

/ip route
add check-gateway=ping distance=1 gateway=192.168.3.1 routing-mark=to_ISP1
add check-gateway=ping distance=1 gateway=192.168.3.1 routing-mark=to_ISP1
add check-gateway=ping distance=1 gateway=192.168.1.1 routing-mark=to_ISP2
add check-gateway=ping distance=1 gateway=192.168.1.1 routing-mark=to_ISP2
add check-gateway=ping distance=1 gateway=192.168.3.1
add check-gateway=ping distance=1 gateway=192.168.3.1
add check-gateway=ping distance=2 gateway=192.168.1.1
add check-gateway=ping distance=2 gateway=192.168.1.1

/ip upnp
set allow-disable-external-interface=no

/system clock
set time-zone-name=Africa/Johannesburg

/system leds
set 0 interface=wlan1

/system ntp client
set enabled=yes primary-ntp=159.148.60.2
 
bingo220
Member Candidate
Member Candidate
Posts: 124
Joined: Sun Sep 22, 2013 9:30 pm
Location: Ukraine

Re: Force client over specific WAN on PPC load balancing

Thu Mar 13, 2014 7:31 pm

I think so...
/ip firewall address-list
add list=stat-isp1 address=192.168.2.52

/ip firewall mangle
add action=mark-routing chain=prerouting comment="Mark STATIC route to ISP1" dst-address-type=!local in-interface=BRIDGE new-routing-mark=to_ISP1 src-address-list=stat-isp1
Move this mangle-rule to the top.
 
molesza
Frequent Visitor
Frequent Visitor
Topic Author
Posts: 57
Joined: Thu Jun 20, 2013 12:02 pm

Re: Force client over specific WAN on PPC load balancing

Thu Mar 13, 2014 10:03 pm

Working perfectly! Thank you so much for your help. Brilliant little device this!
 
Rey46
newbie
Posts: 25
Joined: Sat Aug 06, 2016 5:00 pm

Re: Force client over specific WAN on PPC load balancing

Mon Feb 20, 2017 5:21 pm

I try this and it works but I don't understand why :D You suggest to move it at the top but why it works also at the end? I would like to understand and not just copy/paste.
[admin@MikroTik] > /ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic 
 0  D ;;; special dummy rule to show fasttrack counters
      chain=prerouting 

 1  D ;;; special dummy rule to show fasttrack counters
      chain=forward 

 2  D ;;; special dummy rule to show fasttrack counters
      chain=postrouting 

 3    chain=input action=mark-connection new-connection-mark=WAN1_conn in-interface=ether1 

 4    chain=input action=mark-connection new-connection-mark=WAN2_conn in-interface=ether5 

 5    chain=output action=mark-routing new-routing-mark=to_WAN1 connection-mark=WAN1_conn 

 6    chain=output action=mark-routing new-routing-mark=to_WAN2 connection-mark=WAN2_conn 

 7    chain=prerouting action=accept dst-address=192.168.1.0/24 in-interface=bridge 

 8    chain=prerouting action=accept dst-address=192.168.0.0/24 in-interface=bridge 

 9    chain=prerouting action=mark-connection new-connection-mark=WAN1_conn passthrough=yes dst-address-type=!local in-interface=bridg>
      per-connection-classifier=both-addresses-and-ports:2/0 

10    chain=prerouting action=mark-connection new-connection-mark=WAN2_conn passthrough=yes dst-address-type=!local in-interface=bridg>
      per-connection-classifier=both-addresses-and-ports:2/1 

11    chain=prerouting action=mark-routing new-routing-mark=to_WAN1 connection-mark=WAN1_conn in-interface=bridge 

12    chain=prerouting action=mark-routing new-routing-mark=to_WAN2 connection-mark=WAN2_conn in-interface=bridge 

13    ;;; Mark STATIC route to WAN2
      chain=prerouting action=mark-routing new-routing-mark=to_WAN2 dst-address-type=!local src-address-list=stat-wan2 
      in-interface=bridge 

[admin@MikroTik] > 

Who is online

Users browsing this forum: baragoon, Kanzler and 35 guests