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
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
}
}