#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
#Se toman las variables de las interfaces donde esten conectados la WAN
:global GA [/ip dhcp-client get [find interface=ether2-gateway1] gateway]
:global GB [/ip dhcp-client get [find interface=ether3-gateway2] gateway]
:global GC [/ip dhcp-client get [find interface=ether4-Gateway3] gateway]
:global GD [/ip dhcp-client get [find interface=ether5-Gateway4] gateway]
#creamos variables globales
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=ether2-gateway1 count=4]
} else={
:global pingresultA 0
}
#Si WAN1 esta activo:
:if ($pingresultA>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_Wan1] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_Wan1] gateway=[/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:log info "Wan1 activo y se actualiza Gateway"
}
}
#Si WAN1 se cae:
:if ($pingresultA=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=ether2-gateway1] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=ether2-gateway1] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=ether2-gateway1] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=ether2-gateway1] disabled=no
}
}
:if ([:len $GB] != 0) do={
:global pingresultB [/ping $GB interface=ether3-gateway2 count=4]
} else={
:global pingresultB 0
}
:if ($pingresultB>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan1] gateway=[/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del Wan2 "
}
:global access 1
}
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=ether4-Gateway3 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultC>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan1] gateway=[/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del Wan3 "
}
:global access 1
}
:if ([:len $GD] != 0) do={
:global pingresultD [/ping $GD interface=ether5-Gateway4 count=4]
} else={
:global pingresultD 0
}
:if ($pingresultD>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan1] gateway=[/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del Wan4 "
}
:global access 1
}
}
#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
:global GA [/ip dhcp-client get [find interface=ether2-gateway1] gateway]
:global GB [/ip dhcp-client get [find interface=ether3-gateway2] gateway]
:global GC [/ip dhcp-client get [find interface=ether4-Gateway3] gateway]
:global GD [/ip dhcp-client get [find interface=ether5-Gateway4] gateway]
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GB] != 0) do={
:global pingresultB [/ping $GB interface=ether3-gateway2 count=4]
} else={
:global pingresultB 0
}
#Si WAN2 esta activo:
:if ($pingresultB>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_Wan2] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_Wan2] gateway=[/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:log info "Wan2 activo y se actualiza Gateway"
}
}
#Si WAN2 se cae:
:if ($pingresultB=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=ether3-gateway2] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=ether3-gateway2] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=ether3-gateway2] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=ether3-gateway2] disabled=no
}
}
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=ether2-gateway1 count=4]
} else={
:global pingresultA 0
}
:if ($pingresultA>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan2] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan2] gateway=[/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:log info "Wan2 inactivo se le asigna el Gateway del Wan1 "
}
:global access 1
}
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=ether4-Gateway3 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultC>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan2] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan2] gateway=[/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:log info "Wan2 inactivo se le asigna el Gateway del Wan3 "
}
:global access 1
}
:if ([:len $GD] != 0) do={
:global pingresultD [/ping $GD interface=ether5-Gateway4 count=4]
} else={
:global pingresultD 0
}
:if ($pingresultD>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan2] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan2] gateway=[/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:log info "Wan2 inactivo se le asigna el Gateway del Wan4 "
}
:global access 1
}
}
#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
:global GA [/ip dhcp-client get [find interface=ether2-gateway1] gateway]
:global GB [/ip dhcp-client get [find interface=ether3-gateway2] gateway]
:global GC [/ip dhcp-client get [find interface=ether4-Gateway3] gateway]
:global GD [/ip dhcp-client get [find interface=ether5-Gateway4] gateway]
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=ether4-Gateway3 count=4]
} else={
:global pingresultC 0
}
#Si WAN3 esta activo:
:if ($pingresultC>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_Wan3] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_Wan3] gateway=[/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:log info "Wan3 activo y se actualiza Gateway"
}
}
#Si WAN3 se cae:
:if ($pingresultC=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=ether4-Gateway3] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=ether4-Gateway3] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=ether4-Gateway3] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=ether4-Gateway3] disabled=no
}
}
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=ether2-gateway1 count=4]
} else={
:global pingresultA 0
}
:if ($pingresultA>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan3] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan3] gateway=[/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:log info "Wan3 inactivo se le asigna el Gateway del Wan1 "
}
:global access 1
}
:if ([:len $GB] != 0) do={
:global pingresultC [/ping $GB interface=ether3-gateway2 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultB>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan3] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan3] gateway=[/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:log info "Wan3 inactivo se le asigna el Gateway del Wan2 "
}
:global access 1
}
:if ([:len $GD] != 0) do={
:global pingresultD [/ping $GD interface=ether5-Gateway4 count=4]
} else={
:global pingresultD 0
}
:if ($pingresultD>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan3] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan3] gateway=[/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:log info "Wan3 inactivo se le asigna el Gateway del Wan4 "
}
:global access 1
}
}
#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
:global GA [/ip dhcp-client get [find interface=ether2-gateway1] gateway]
:global GB [/ip dhcp-client get [find interface=ether3-gateway2] gateway]
:global GC [/ip dhcp-client get [find interface=ether4-Gateway3] gateway]
:global GD [/ip dhcp-client get [find interface=ether5-Gateway4] gateway]
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GD] != 0) do={
:global pingresultC [/ping $GD interface=ether5-Gateway4 count=4]
} else={
:global pingresultD 0
}
#Si WAN4 esta activo:
:if ($pingresultD>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_Wan4] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_Wan4] gateway=[/ip dhcp-client get [find interface=ether5-Gateway4] gateway ]
:log info "Wan4 activo y se actualiza Gateway"
}
}
#Si WAN4 se cae:
:if ($pingresultD=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=ether5-Gateway4] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=ether5-Gateway4] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=ether5-Gateway4] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=ether5-Gateway4] disabled=no
}
}
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=ether2-gateway1 count=4]
} else={
:global pingresultA 0
}
:if ($pingresultA>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan4] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan4] gateway=[/ip dhcp-client get [find interface=ether2-gateway1] gateway ]
:log info "Wan4 inactivo se le asigna el Gateway del Wan1 "
}
:global access 1
}
:if ([:len $GB] != 0) do={
:global pingresultC [/ping $GB interface=ether3-gateway2 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultB>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan4] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan4] gateway=[/ip dhcp-client get [find interface=ether3-gateway2] gateway ]
:log info "Wan4 inactivo se le asigna el Gateway del Wan2 "
}
:global access 1
}
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=ether4-Gateway3 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultC>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_Wan4] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan4] gateway=[/ip dhcp-client get [find interface=ether4-Gateway3] gateway ]
:log info "Wan4 inactivo se le asigna el Gateway del Wan3 "
}
:global access 1
}
}
Cita de: josemanuel155 en Marzo 16, 2015, 04:29:42 PM
gracias mi hermano lo que estaba esperandoo :) :) :) :) :)
una pregunta copio y pego todo esto tal como esta tengo que hacer una modificacion ??
aqui esta ether2 ether3 ether 4 eso lo tendria que cambiar porque lo tengo como wan1 wan2 wan3 wan4
??
Cita de: bacalao en Marzo 16, 2015, 05:20:50 PM
Hola si por ejemplo los que digan esto :global GA [/ip dhcp-client get [find interface=ether2-gateway1] gateway] y si es como dices lo pasas :global GA [/ip dhcp-client get [find interface=wan1] gateway]
Tienes q estar pendiente de las mayusculas y minusculas
Cita de: josemanuel155 en Marzo 16, 2015, 06:01:05 PM
mi hermano gracia por ayudarme aqui modifique el primer scrip para ver si esta bien
#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
#Se toman las variables de las interfaces donde esten conectados la wan
:global GA [/ip dhcp-client get [find interface=wan2-gateway1] gateway]
:global GB [/ip dhcp-client get [find interface=wan3-gateway2] gateway]
:global GC [/ip dhcp-client get [find interface=wan4-Gateway3] gateway]
:global GD [/ip dhcp-client get [find interface=wan5-Gateway4] gateway]
#creamos variables globales
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=wan2-gateway1 count=4]
} else={
:global pingresultA 0
}
#Si wan1 esta activo:
:if ($pingresultA>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=wan2-gateway1] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan2-gateway1] gateway ]
:log info "wan1 activo y se actualiza Gateway"
}
}
#Si wan1 se cae:
:if ($pingresultA=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=wan2-gateway1] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=wan2-gateway1] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=wan2-gateway1] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=wan2-gateway1] disabled=no
}
}
:if ([:len $GB] != 0) do={
:global pingresultB [/ping $GB interface=wan3-gateway2 count=4]
} else={
:global pingresultB 0
}
:if ($pingresultB>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan3-gateway2] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan3-gateway2] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del wan2 "
}
:global access 1
}
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=wan4-Gateway3 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultC>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan4-Gateway3] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan4-Gateway3] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del wan3 "
}
:global access 1
}
:if ([:len $GD] != 0) do={
:global pingresultD [/ping $GD interface=wan5-Gateway4 count=4]
} else={
:global pingresultD 0
}
:if ($pingresultD>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan5-Gateway4] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_Wan1] gateway=[/ip dhcp-client get [find interface=wan5-Gateway4] gateway ]
:log info "wan1 inactivo se le asigna el Gateway del wan4 "
}
:global access 1
}
}
Cita de: josemanuel155 en Marzo 16, 2015, 06:30:06 PMSi tu interface de red se llama wan1.....5 deberia quedar asi
saludo hermano estaba terminando de modificar todo los scrip
no esta bien la modificacion ??
en estos momento tengo que salir a la iglesia pero regreso en 2 horas y medias lo que subi fue el primer escrip de la linea 1
:global GA [/ip dhcp-client get [find interface=wan2] gateway]
:global GB [/ip dhcp-client get [find interface=wan3] gateway]
:global GC [/ip dhcp-client get [find interface=wan4] gateway]
:global GD [/ip dhcp-client get [find interface=wan5] gateway]
Cita de: bacalao en Marzo 16, 2015, 06:59:56 PM
Si tu interface de red se llama wan1.....5 deberia quedar asiCódigo (php) [Seleccionar]
:global GA [/ip dhcp-client get [find interface=wan2] gateway]
:global GB [/ip dhcp-client get [find interface=wan3] gateway]
:global GC [/ip dhcp-client get [find interface=wan4] gateway]
:global GD [/ip dhcp-client get [find interface=wan5] gateway]
Cita de: TooR en Marzo 16, 2015, 07:33:57 PM
Ademas pendientes con el routing-mark=to_WanX
X= 1, 2, 3, 4 :-*
Si usan la misma to_Wan1, to_Wan2, to_Wan3, to_Wan4 no habrá problema.
#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD #Se toman las variables de las interfaces donde esten conectados la wan :global GA [/ip dhcp-client get [find interface=wan2-gateway] :global GB [/ip dhcp-client get [find interface=wan3-gateway] :global GC [/ip dhcp-client get [find interface=wan4-Gateway] :global GD [/ip dhcp-client get [find interface=wan5-Gateway] #creamos variables globales :global pingresultA :global pingresultB :global pingresultC :global pingresultD :global access 0 :if ([:len $GA] != 0) do={ :global pingresultA [/ping $GA interface=wan2-gateway1 count=4] } else={ :global pingresultA 0 } #Si wan1 esta activo: :if ($pingresultA>0) do={ :local gatewayNuevo [/ip dhcp-client get [find interface=wan2-gateway1] gateway ] :local gatewayActivo [/ip route get [find routing-mark=to_wan1] gateway ] :if ($gatewayNuevo != $gatewayActivo) do={ /ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan2-gateway1] gateway ] :log info "wan1 activo y se actualiza Gateway" } } #Si wan1 se cae: :if ($pingresultA=0) do={ :local status [/ip dhcp-client get [/ip dhcp-client find interface=wan2-gateway1] status ] :if ($status="bound") do={ /ip dhcp-client set [find interface=wan2-gateway1] disabled=yes :local d [/ip dhcp-client get [/ip dhcp-client find interface=wan2-gateway1] disabled ] :if ($d=true) do={ /ip dhcp-client set [find interface=wan2-gateway1] disabled=no } } :if ([:len $GB] != 0) do={ :global pingresultB [/ping $GB interface=wan3-gateway2 count=4] } else={ :global pingresultB 0 } :if ($pingresultB>0 and $access=0) do={ :local gatewayNuevoB [/ip dhcp-client get [find interface=wan3-gateway2] gateway ] :local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ] :if ($gatewayNuevoB != $gatewayActivoA) do={ /ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan3-gateway2] gateway ] :log info "Wan1 inactivo se le asigna el Gateway del wan2 " } :global access 1 } :if ([:len $GC] != 0) do={ :global pingresultC [/ping $GC interface=wan4-Gateway3 count=4] } else={ :global pingresultC 0 } :if ($pingresultC>0 && $access=0) do={ :local gatewayNuevoB [/ip dhcp-client get [find interface=wan4-Gateway3] gateway ] :local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ] :if ($gatewayNuevoB != $gatewayActivoA) do={ /ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan4-Gateway3] gateway ] :log info "Wan1 inactivo se le asigna el Gateway del wan3 " } :global access 1 } :if ([:len $GD] != 0) do={ :global pingresultD [/ping $GD interface=wan5-Gateway4 count=4] } else={ :global pingresultD 0 } :if ($pingresultD>0 && $access=0) do={ :local gatewayNuevoB [/ip dhcp-client get [find interface=wan5-Gateway4] gateway ] :local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ] :if ($gatewayNuevoB != $gatewayActivoA) do={ /ip route set [find routing-mark=to_Wan1] gateway=[/ip dhcp-client get [find interface=wan5-Gateway4] gateway ] :log info "wan1 inactivo se le asigna el Gateway del wan4 " } :global access 1 } } |
Citar#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
:global GA [/ip dhcp-client get [find interface=wan2-gateway]
:global GB [/ip dhcp-client get [find interface=wan3-gateway]
:global GC [/ip dhcp-client get [find interface=wan4-Gateway]
:global GD [/ip dhcp-client get [find interface=wan5-Gateway]
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GB] != 0) do={
:global pingresultB [/ping $GB interface=wan3-gateway2 count=4]
} else={
:global pingresultB 0
}
#Si wan2 esta activo:
:if ($pingresultB>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=wan3-gateway2] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_wan2] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_wan2] gateway=[/ip dhcp-client get [find interface=wan3-gateway2] gateway ]
:log info "wan2 activo y se actualiza Gateway"
}
}
#Si wan2 se cae:
:if ($pingresultB=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=wan3-gateway2] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=wan3-gateway2] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=wan3-gateway2] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=wan3-gateway2] disabled=no
}
}
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=wan2-gateway1 count=4]
} else={
:global pingresultA 0
}
:if ($pingresultA>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan2-gateway1] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan2] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan2] gateway=[/ip dhcp-client get [find interface=wan2-gateway1] gateway ]
:log info "wan2 inactivo se le asigna el Gateway del wan1 "
}
:global access 1
}
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=wan4-Gateway3 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultC>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan4-Gateway3] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan2] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan2] gateway=[/ip dhcp-client get [find interface=wan4-Gateway3] gateway ]
:log info "wan2 inactivo se le asigna el Gateway del wan3 "
}
:global access 1
}
:if ([:len $GD] != 0) do={
:global pingresultD [/ping $GD interface=wan5-Gateway4 count=4]
} else={
:global pingresultD 0
}
:if ($pingresultD>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan5-Gateway4] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan2] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan2] gateway=[/ip dhcp-client get [find interface=wan5-Gateway4] gateway ]
:log info "wan2 inactivo se le asigna el Gateway del wan4 "
}
:global access 1
}
}
:global GA [/ip dhcp-client get [find interface=wan2-gateway]
:global GB [/ip dhcp-client get [find interface=wan3-gateway]
:global GC [/ip dhcp-client get [find interface=wan4-Gateway]
:global GD [/ip dhcp-client get [find interface=wan5-Gateway]
sys scr run "script wan1"
Cita de: josemanuel155 en Marzo 19, 2015, 08:13:04 AM
saludo hermano entonce deberia de quedar asi
:global GA [/ip dhcp-client get [find interface=wan1-gateway]
:global GB [/ip dhcp-client get [find interface=wan2-gateway]
:global GC [/ip dhcp-client get [find interface=wan3-Gateway]
:global GD [/ip dhcp-client get [find interface=wan4-Gateway]
el problema es que tengo que cambiar todo lo del scrip
ya corregi lo de las comillas con razon no funciona jejeje pero estoy aprendiendo
:global GA [/ip dhcp-client get [find interface=wan1]gateway]
:global GB [/ip dhcp-client get [find interface=wan2]gateway]
:global GC [/ip dhcp-client get [find interface=wan3]gateway]
:global GD [/ip dhcp-client get [find interface=wan4]gateway]
#SCRIPT ENVIADO POR CESAR O. RIVAS Y MODIFICADO POR MOHAMED W. HAMMAUD
#Se toman las variables de las interfaces donde esten conectados la WAN
:global GA [/ip dhcp-client get [find interface=wan1] gateway]
:global GB [/ip dhcp-client get [find interface=wan2] gateway]
:global GC [/ip dhcp-client get [find interface=wan3] gateway]
:global GD [/ip dhcp-client get [find interface=wan4] gateway]
#creamos variables globales
:global pingresultA
:global pingresultB
:global pingresultC
:global pingresultD
:global access 0
:if ([:len $GA] != 0) do={
:global pingresultA [/ping $GA interface=wan1 count=4]
} else={
:global pingresultA 0
}
#Si WAN1 esta activo:
:if ($pingresultA>0) do={
:local gatewayNuevo [/ip dhcp-client get [find interface=wan1] gateway ]
:local gatewayActivo [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevo != $gatewayActivo) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan1] gateway ]
:log info "Wan1 activo y se actualiza Gateway"
}
}
#Si WAN1 se cae:
:if ($pingresultA=0) do={
:local status [/ip dhcp-client get [/ip dhcp-client find interface=wan1] status ]
:if ($status="bound") do={
/ip dhcp-client set [find interface=wan1] disabled=yes
:local d [/ip dhcp-client get [/ip dhcp-client find interface=wan1] disabled ]
:if ($d=true) do={
/ip dhcp-client set [find interface=wan1] disabled=no
}
}
:if ([:len $GB] != 0) do={
:global pingresultB [/ping $GB interface=wan2 count=4]
} else={
:global pingresultB 0
}
:if ($pingresultB>0 and $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan2] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan2] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del Wan2 "
}
:global access 1
}
:if ([:len $GC] != 0) do={
:global pingresultC [/ping $GC interface=wan3 count=4]
} else={
:global pingresultC 0
}
:if ($pingresultC>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan3] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan3] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del Wan3 "
}
:global access 1
}
:if ([:len $GD] != 0) do={
:global pingresultD [/ping $GD interface=wan4 count=4]
} else={
:global pingresultD 0
}
:if ($pingresultD>0 && $access=0) do={
:local gatewayNuevoB [/ip dhcp-client get [find interface=wan4] gateway ]
:local gatewayActivoA [/ip route get [find routing-mark=to_wan1] gateway ]
:if ($gatewayNuevoB != $gatewayActivoA) do={
/ip route set [find routing-mark=to_wan1] gateway=[/ip dhcp-client get [find interface=wan4] gateway ]
:log info "Wan1 inactivo se le asigna el Gateway del Wan4 "
}
:global access 1
}
}