## Sunday, June 19, 2016

### Check IP Pool Statistics

• /ip pool {
• :local poolname
• :local poolused
• :local poolpercent
• :local findindex
• :local tmpint
• :local maxindex
• :local line
• :put ("IP Pool Statistics")
• :put ("------------------")
• :foreach p in=[find] do={
• :set poolname [get \$p name]
• :set poolused 0
• :set line ""
• :set line (" " . \$poolname)
• :foreach r in=[:toarray [get \$p range]] do={
• :set findindex [:find [:tostr \$r] "-"]
• :if ([:len \$findindex] > 0) do={
• :set minaddress [:pick [:tostr \$r] 0 \$findindex]
• :set maxaddress [:pick [:tostr \$r] (\$findindex + 1) [:len [:tostr \$r]]]
• } else={
• }
• :for x from=0 to=([:len [:tostr \$minaddress]] - 1) do={
• :if ([:pick [:tostr \$minaddress] \$x (\$x + 1)] = ".") do={
• :set minaddress ([:pick [:tostr \$minaddress] 0 \$x] . "," . \
• }
• :for x from=0 to=([:len [:tostr \$maxaddress]] - 1) do={
• :if ([:pick [:tostr \$maxaddress] \$x (\$x + 1)] = ".") do={
• :set maxaddress ([:pick [:tostr \$maxaddress] 0 \$x] . "," . \
• }
• :set maxindex ([:len [:toarray \$minaddress]] - 1)
• :for x from=\$maxindex to=0 step=-1 do={
• # Calculate 256^(\$maxindex - \$x)
• :set tmpint 1
• :if ((\$maxindex - \$x) > 0) do={
• :for y from=1 to=(\$maxindex - \$x) do={ :set tmpint (256 * \$tmpint) }
• }
• :set tmpint (\$tmpint * ([:tonum [:pick [:toarray \$maxaddress] \$x]] - \
• [:tonum [:pick [:toarray \$minaddress] \$x]]) )
• # for x
• }
• }
• # foreach r
• }
• :set poolused [:len [used find pool=[:tostr \$poolname]]]
• :set poolpercent ((\$poolused * 100) / \$pooladdresses)
• :set line ([:tostr \$line] . " [" . \$poolused . "/" . \$pooladdresses . "]")
• :set line ([:tostr \$line] . " " . \$poolpercent . " % used")
• :if ( [:tonum \$poolpercent] > \$criticalthreshold ) do={
• :log error ("IP Pool " . \$poolname . " is " . \$poolpercent . "% full")
• :put ([:terminal style varname] . \$line)
• } else={
• :if ( [:tonum \$poolpercent] > \$warnthreshold ) do={
• :log warning ("IP Pool " . \$poolname . " is " . \$poolpercent . "% full")
• :put ([:terminal style syntax-meta] . \$line)
• } else={
• :put ([:terminal style none] . \$line)
• }
• }
• # foreach p
• }
• # /ip pool
• }
• /#IP Pool Statistics

## Sunday, June 5, 2016

### 2 WAN EQUAL LOAD BALANCING PCC /interface ethernet
set [ find default-name=ether1 ] name=ether1
set [ find default-name=ether2 ] name=ether2
set [ find default-name=ether3 ] name=ether3
set [ find default-name=ether4 ] name=ether4
set [ find default-name=ether5 ] name=ether5
/system note set note="Server Configuration By <HAMZA KHALIL> (www.itlearnweb.com)" show-at-login=yes
/ip dns
set allow-remote-requests=yes cache-size=5000KiB max-udp-packet-size=2048 servers=192.168.1.1,192.168.2.1
/ip firewall mangle
add action=mark-routing chain=prerouting connection-mark=WAN1_con in-interface=ether5 new-routing-mark=to_WAN1
add action=mark-routing chain=prerouting connection-mark=WAN2_con in-interface=ether5 new-routing-mark=to_WAN2
/ip firewall nat