الأربعاء، 29 يونيو 2016

حل مشكله عدم سحب الايبى من الروترDSL وتغير مسار السحب من الخطوط




الشرح

الاسكربت

/ip firewall mangle
 add action=mark-connection chain=prerouting connection-state=new in-interface=ether5 new-connection-mark=conn1 nth=4,1
 add action=mark-routing chain=prerouting connection-mark=conn1 in-interface=ether5 new-routing-mark=conn1 passthrough=no

 add action=mark-connection chain=prerouting connection-state=new in-interface=ether5 new-connection-mark=conn2 nth=4,2
 add action=mark-routing chain=prerouting connection-mark=conn2 in-interface=ether5 new-routing-mark=conn2 passthrough=no

 add action=mark-connection chain=prerouting connection-state=new in-interface=ether5 new-connection-mark=conn3 nth=4,3
 add action=mark-routing chain=prerouting connection-mark=conn3 in-interface=ether5 new-routing-mark=conn3 passthrough=no

 add action=mark-connection chain=prerouting connection-state=new in-interface=ether5 new-connection-mark=conn4 nth=4,4
 add action=mark-routing chain=prerouting connection-mark=conn4 in-interface=ether5 new-routing-mark=conn4 passthrough=no

/ip firewall nat
 add action=masquerade chain=srcnat connection-mark=conn1 out-interface=ether1
 add action=masquerade chain=srcnat connection-mark=conn2 out-interface=ether2
 add action=masquerade chain=srcnat connection-mark=conn3 out-interface=ether3
 add action=masquerade chain=srcnat connection-mark=conn4 out-interface=ether4


/system script
add name=ether2_force policy=read,write source=":if ([/interface find name=\"e\
    ther2\"] = \"\") do={\r\
    \n\t:error \"Target interface does not exist\";\r\
    \n\t}\r\
    \n\t\r\
    \n:if ([/interface get [find name=\"ether2\"] disabled ]) do={\r\
    \n\t:error \"Target interface ether2 is disabled.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client find interface=\"ether2\"] = \"\") do={\r\
    \n\t:error \"Target interface is not running a DHCP client.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client get [find interface=\"ether2\"] status] != \"bound\
    \") do={\r\
    \n\t:error \"DHCP client is not bound to an address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether2\"] gate\
    way];\r\
    \n:if (\$dhcpgateway = \"\") do={\r\
    \n\t:error \"Interface has not been assigned a gateway address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local oldgatewayid [/ip route find comment=\"ether2_force\"];\r\
    \n\r\
    \n:if (\"\$oldgatewayid\" = \"\") do={\r\
    \n\t:log warning \"Adding route\";\r\
    \n\t:execute \"/ip route add \\\r\
    \n\t\tdst-address=0.0.0.0/0 \\\r\
    \n\t\tcomment=ether2_force \\\r\
    \n\t\trouting-mark=conn2 \\\r\
    \n\t\tgateway=\$dhcpgateway\";\r\
    \n\t:error \"All done.\";\r\
    \n\t}\r\
    \n\r\
    \n:local oldgateway [/ip route get number=\"\$oldgatewayid\" gateway];\r\
    \n:if (\"\$oldgateway\" != \"\$dhcpgateway\") do={\r\
    \n\t/ip route set numbers=\"\$oldgatewayid\" gateway=\"\$dhcpgateway\";\r\
    \n\t}\r\
    \n\r\
    \n#The Same IP Gatway\r\
    \n\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether2\"] gate\
    way];\r\
    \n\r\
    \n /ip route set [find comment=\"ether2_force\"] gateway=(\$dhcpgateway.\"\
    %ether2\")\r\
    \n\r\
    \n# Disable Schedule\r\
    \n\r\
    \n:local RCount [/system scheduler get [find name =schedule2] run-count]\r\
    \n\r\
    \n:if (\$RCount >2) do={\r\
    \n/system scheduler set [find name=\"schedule2\"] disable=yes\r\
    \n#: log warning phalla;\r\
    \n}"
add name=ether3_force policy=read,write source=":if ([/interface find name=\"e\
    ther3\"] = \"\") do={\r\
    \n\t:error \"Target interface does not exist\";\r\
    \n\t}\r\
    \n\t\r\
    \n:if ([/interface get [find name=\"ether3\"] disabled ]) do={\r\
    \n\t:error \"Target interface ether3 is disabled.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client find interface=\"ether3\"] = \"\") do={\r\
    \n\t:error \"Target interface is not running a DHCP client.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client get [find interface=\"ether3\"] status] != \"bound\
    \") do={\r\
    \n\t:error \"DHCP client is not bound to an address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether3\"] gate\
    way];\r\
    \n:if (\$dhcpgateway = \"\") do={\r\
    \n\t:error \"Interface has not been assigned a gateway address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local oldgatewayid [/ip route find comment=\"ether3_force\"];\r\
    \n\r\
    \n:if (\"\$oldgatewayid\" = \"\") do={\r\
    \n\t:log warning \"Adding route\";\r\
    \n\t:execute \"/ip route add \\\r\
    \n\t\tdst-address=0.0.0.0/0 \\\r\
    \n\t\tcomment=ether3_force \\\r\
    \n\t\trouting-mark=conn3 \\\r\
    \n\t\tgateway=\$dhcpgateway\";\r\
    \n\t:error \"All done.\";\r\
    \n\t}\r\
    \n\r\
    \n:local oldgateway [/ip route get number=\"\$oldgatewayid\" gateway];\r\
    \n:if (\"\$oldgateway\" != \"\$dhcpgateway\") do={\r\
    \n\t/ip route set numbers=\"\$oldgatewayid\" gateway=\"\$dhcpgateway\";\r\
    \n\t}\r\
    \n\r\
    \n\r\
    \n#The Same IP Gatway\r\
    \n\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether3\"] gate\
    way];\r\
    \n\r\
    \n /ip route set [find comment=\"ether3_force\"] gateway=(\$dhcpgateway.\"\
    %ether3\")\r\
    \n\r\
    \n# Disable Schedule\r\
    \n\r\
    \n:local RCount [/system scheduler get [find name =schedule3] run-count]\r\
    \n\r\
    \n:if (\$RCount >2) do={\r\
    \n/system scheduler set [find name=\"schedule3\"] disable=yes\r\
    \n#: log warning phalla;\r\
    \n}"
add name=ether4_force policy=read,write source=":if ([/interface find name=\"e\
    ther4\"] = \"\") do={\r\
    \n\t:error \"Target interface does not exist\";\r\
    \n\t}\r\
    \n\t\r\
    \n:if ([/interface get [find name=\"ether4\"] disabled ]) do={\r\
    \n\t:error \"Target interface ether4 is disabled.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client find interface=\"ether4\"] = \"\") do={\r\
    \n\t:error \"Target interface is not running a DHCP client.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client get [find interface=\"ether4\"] status] != \"bound\
    \") do={\r\
    \n\t:error \"DHCP client is not bound to an address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether4\"] gate\
    way];\r\
    \n:if (\$dhcpgateway = \"\") do={\r\
    \n\t:error \"Interface has not been assigned a gateway address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local oldgatewayid [/ip route find comment=\"ether4_force\"];\r\
    \n\r\
    \n:if (\"\$oldgatewayid\" = \"\") do={\r\
    \n\t:log warning \"Adding route\";\r\
    \n\t:execute \"/ip route add \\\r\
    \n\t\tdst-address=0.0.0.0/0 \\\r\
    \n\t\tcomment=ether4_force \\\r\
    \n\t\trouting-mark=conn4 \\\r\
    \n\t\tgateway=\$dhcpgateway\";\r\
    \n\t:error \"All done.\";\r\
    \n\t}\r\
    \n\r\
    \n:local oldgateway [/ip route get number=\"\$oldgatewayid\" gateway];\r\
    \n:if (\"\$oldgateway\" != \"\$dhcpgateway\") do={\r\
    \n\t/ip route set numbers=\"\$oldgatewayid\" gateway=\"\$dhcpgateway\";\r\
    \n\t}\r\
    \n\r\
    \n\r\
    \n\r\
    \n#The Same IP Gatway\r\
    \n\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether4\"] gate\
    way];\r\
    \n\r\
    \n /ip route set [find comment=\"ether4_force\"] gateway=(\$dhcpgateway.\"\
    %ether4\")\r\
    \n\r\
    \n\r\
    \n# Disable Schedule\r\
    \n\r\
    \n:local RCount [/system scheduler get [find name =schedule4] run-count]\r\
    \n\r\
    \n:if (\$RCount >2) do={\r\
    \n/system scheduler set [find name=\"schedule4\"] disable=yes\r\
    \n#: log warning phalla;\r\
    \n}"
add name=ether1_force policy=read,write source=":if ([/interface find name=\"e\
    ther1\"] = \"\") do={\r\
    \n\t:error \"Target interface does not exist\";\r\
    \n\t}\r\
    \n\t\r\
    \n:if ([/interface get [find name=\"ether1\"] disabled ]) do={\r\
    \n\t:error \"Target interface ether1 is disabled.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client find interface=\"ether1\"] = \"\") do={\r\
    \n\t:error \"Target interface is not running a DHCP client.\";\r\
    \n\t}\r\
    \n\r\
    \n:if ([/ip dhcp-client get [find interface=\"ether1\"] status] != \"bound\
    \") do={\r\
    \n\t:error \"DHCP client is not bound to an address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether1\"] gate\
    way];\r\
    \n:if (\$dhcpgateway = \"\") do={\r\
    \n\t:error \"Interface has not been assigned a gateway address.\";\r\
    \n\t}\r\
    \n\t\r\
    \n:local oldgatewayid [/ip route find comment=\"ether1_force\"];\r\
    \n\r\
    \n:if (\"\$oldgatewayid\" = \"\") do={\r\
    \n\t:log warning \"Adding route\";\r\
    \n\t:execute \"/ip route add \\\r\
    \n\t\tdst-address=0.0.0.0/0 \\\r\
    \n\t\tcomment=ether1_force \\\r\
    \n\t\trouting-mark=conn1 \\\r\
    \n\t\tgateway=\$dhcpgateway\";\r\
    \n\t:error \"All done.\";\r\
    \n\t}\r\
    \n\r\
    \n:local oldgateway [/ip route get number=\"\$oldgatewayid\" gateway];\r\
    \n:if (\"\$oldgateway\" != \"\$dhcpgateway\") do={\r\
    \n\t/ip route set numbers=\"\$oldgatewayid\" gateway=\"\$dhcpgateway\";\r\
    \n\t}\r\
    \n\r\
    \n#The Same IP Gatway\r\
    \n\r\
    \n:local dhcpgateway [/ip dhcp-client get [find interface=\"ether1\"] gate\
    way];\r\
    \n\r\
    \n /ip route set [find comment=\"ether1_force\"] gateway=(\$dhcpgateway.\"\
    %ether1\")\r\
    \n\r\
    \n# Disable Schedule\r\
    \n\r\
    \n:local RCount [/system scheduler get [find name =schedule1] run-count]\r\
    \n\r\
    \n:if (\$RCount >2) do={\r\
    \n/system scheduler set [find name=\"schedule1\"] disable=yes\r\
    \n#: log warning phalla;\r\
    \n}"


/system scheduler
add disabled=yes interval=10s name=schedule1 on-event=\
    "\r\
    \n/system script run ether1_force" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=\
    startup
add disabled=yes interval=10s name=schedule2 on-event=\
    "\r\
    \n/system script run ether2_force\r\
    \n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive \
    start-time=startup
add disabled=yes interval=10s name=schedule4 on-event=\
    "\r\
    \n/system script run ether4_force\r\
    \n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive \
    start-time=startup
add disabled=yes interval=10s name=schedule3 on-event=\
    "\r\
    \n/system script run ether3_force\r\
    \n" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive \
    start-time=startup
add name=Enable-All-Schedules on-event=" /system scheduler set [find name=\"sc\
    hedule1\"] disable=no;\r\
    \n\r\
    \n /system scheduler set [find name=\"schedule2\"] disable=no;\r\
    \n\r\
    \n /system scheduler set [find name=\"schedule3\"] disable=no;\r\
    \n\r\
    \n /system scheduler set [find name=\"schedule4\"] disable=no;\r\
    \n\r\
    \n /system scheduler set [find name=\"schedule5\"] disable=no;" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-time=\

    startup

0 التعليقات لموضوع "حل مشكله عدم سحب الايبى من الروترDSL وتغير مسار السحب من الخطوط"