<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux 360° &#124; Italia &#187; routerOS</title>
	<atom:link href="http://www.linux360.it/tag/routeros/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linux360.it</link>
	<description>Notizie, guide e tutorial per il mondo Linux a 360°</description>
	<lastBuildDate>Tue, 16 Dec 2014 14:03:33 +0000</lastBuildDate>
	<language>it-IT</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Mikrotik Scripting: Evitare cadute Asterisk causate da Failover</title>
		<link>http://www.linux360.it/2014/06/25/mikrotik-scripting-evitare-cadute-asterisk-causate-failover/</link>
		<comments>http://www.linux360.it/2014/06/25/mikrotik-scripting-evitare-cadute-asterisk-causate-failover/#comments</comments>
		<pubDate>Wed, 25 Jun 2014 15:06:11 +0000</pubDate>
		<dc:creator><![CDATA[Paolo Daniele]]></dc:creator>
				<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[routerOS]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.paolodaniele.it/?p=1914</guid>
		<description><![CDATA[<p>Ciao Ragazzi, oggi vi mostro alcuni trucchi di scripting Mikrotik! Supponiamo di avere 2 Connessioni internet (es. due gestori diversi per avere banda ridondata) e un dispositivo Mikrotik che gestisce il failover, ossia quando cade la primaria effettua in automatico lo switch sulla secondaria. Fino a qua non ci sono problemi. Cosa succede se abbiamo ...</p>
<p>L'articolo <a rel="nofollow" href="http://www.linux360.it/2014/06/25/mikrotik-scripting-evitare-cadute-asterisk-causate-failover/">Mikrotik Scripting: Evitare cadute Asterisk causate da Failover</a> sembra essere il primo su <a rel="nofollow" href="http://www.linux360.it">Linux 360° | Italia</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Ciao Ragazzi,</p>
<p>oggi vi mostro alcuni trucchi di scripting Mikrotik!</p>
<p>Supponiamo di avere 2 Connessioni internet (es. due gestori diversi per avere banda ridondata) e un dispositivo Mikrotik che gestisce il failover, ossia quando cade la primaria effettua in automatico lo switch sulla secondaria.</p>
<p>Fino a qua non ci sono problemi. Cosa succede se abbiamo un centralino VoIP con Asterisk.</p>
<p>Se cade la connessione primaria e switchamo sulla secondaria, si verifica il problema che le connessioni voip rimangono appese sulla primaria e quindi il problema persiste perchè non funziona la parte telefonica anche se la connessione c&#8217;è.</p>
<p>Come risolvere questo problema?</p>
<p>Andiamo a programmare!!</p>
<p>Per prima cosa vi spiego l&#8217;idea alla base dello script.</p>
<p>Periodicamente effettuiamo un check ping su due indirizzi ip (ovviamente su due reti geografiche diverse). Se il ping è ok non succede niente, il sistema continua a funzionare.</p>
<p>Quando entrambi i ping falliscono, vuol dire che abbiamo perso la connessione primaria (es. Adsl down, problemi in centrale e robe simili): questo fa da trigger al nostro script!</p>
<p>Il primo script, che chiameremo &#8220;Check Script&#8221;, disabilità l&#8217;interfaccia primaria (quella down per capirci) e ci manda una mail indicando il problema e su quale apparato è avvenuto.</p>
<p>Dopo 3 secondi riavvia il router.</p>
<p>Al riavvio entra in funzione il secondo script, che chiameremo &#8220;Restart Script&#8221;, che dopo 10 sec (il tempo necessario a far ripartire totalmente il device) controlla se l&#8217;interfaccia primaria è ritornata funzionante (es. se uno riavvia il router per qualunque motivo non è che deve ogni volta disabilitare/abilitare le interfacce di rete!)</p>
<p>Se è disabilitata e non è ritornata su, allora le viene assegnata priorità/distanza 3 (quindi l&#8217;interfaccia secondaria diventa la Master) e la riabilita per provare a vedere se è ritornata attiva.</p>
<p>Se i ping sono apposto cambia la distanza a 1 e torna tutto come prima, se i ping falliscono allora la connessione rimane up sulla interfaccia secondaria.</p>
<p>Sotto questo scenario le chiamate voip, tranne per il breve momento necessario al riavvio della Mikrotik, continueranno a funzionare!</p>
<p>Ecco i due script:</p>
<p><strong>CHECK SCRIPT</strong></p>
<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Click to show/hide code block">Source code</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Print code"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.linux360.it/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="powershell" style="font-family:monospace;">:global strDate <span class="br0">[</span><span class="sy0">/</span>system clock get date<span class="br0">]</span>
:global strTime <span class="br0">[</span><span class="sy0">/</span>system clock get time<span class="br0">]</span>
:global strSystemName <span class="br0">[</span><span class="sy0">/</span>system identity get name<span class="br0">]</span>
&nbsp;
&nbsp;
:<span class="kw3">if</span> <span class="br0">&#40;</span><span class="br0">[</span><span class="sy0">/</span>ping 10.104.7.187 interface<span class="sy0">=</span>pppoe<span class="sy0">-</span>out1 count<span class="sy0">=</span><span class="nu0">5</span><span class="br0">]</span> <span class="sy0">=</span> <span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="br0">[</span><span class="sy0">/</span>ping 8.8.4.4 interface<span class="sy0">=</span>pppoe<span class="sy0">-</span>out1 count<span class="sy0">=</span><span class="nu0">5</span><span class="br0">]</span> <span class="sy0">=</span> <span class="nu0">0</span> <span class="sy0">&amp;&amp;</span> <span class="br0">[</span><span class="sy0">/</span>ip route get <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> disabled<span class="br0">]</span><span class="sy0">=</span>false<span class="br0">&#41;</span> <span class="kw3">do</span><span class="sy0">=</span><span class="br0">&#123;</span>
    :log info <span class="st0">&quot;Disabling Primary&quot;</span>;
    <span class="sy0">/</span>ip route <span class="kw2">set</span> <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> disabled<span class="sy0">=</span>yes
    <span class="sy0">/</span>tool e<span class="sy0">-</span>mail send from<span class="sy0">=</span><span class="st0">&quot;yyyyy@gmail.com&quot;</span> to<span class="sy0">=</span><span class="st0">&quot;xxxx@gmail.com&quot;</span> subject<span class="sy0">=</span><span class="st0">&quot;Route Failover - $strDate $strTime - $strSystemName&quot;</span> body<span class="sy0">=</span><span class="st0">&quot;Failover to Telecom occurred at $strDate $strTime on $strSystemName&quot;</span>
    :delay 3
    <span class="sy0">/</span>system reboot
&nbsp;
<span class="br0">&#125;</span> <span class="kw3">else</span><span class="sy0">=</span> <span class="br0">&#123;</span>
    :log info <span class="st0">&quot;No Failover Necessary&quot;</span>;
<span class="br0">&#125;</span></pre></div></div>
<p>&nbsp;</p>
<p><strong>RESTART SCRIPT</strong></p>
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Click to show/hide code block">Source code</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Print code"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.linux360.it/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="powershell" style="font-family:monospace;">:delay <span class="nu0">10</span>;
:<span class="kw3">if</span> <span class="br0">&#40;</span><span class="br0">[</span><span class="sy0">/</span>ip route get <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> disabled<span class="br0">]</span><span class="sy0">=</span>true<span class="br0">&#41;</span> <span class="kw3">do</span><span class="sy0">=</span><span class="br0">&#123;</span>
    <span class="sy0">/</span>interface ethernet <span class="kw2">set</span> numbers<span class="sy0">=</span>4 disabled<span class="sy0">=</span>no
   
     <span class="sy0">/</span>ip route <span class="kw2">set</span> <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> disabled<span class="sy0">=</span>no
     <span class="sy0">/</span>ip route <span class="kw2">set</span> <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> distance<span class="sy0">=</span>3
    :delay 10
    :<span class="kw3">if</span> <span class="br0">&#40;</span><span class="br0">[</span><span class="sy0">/</span>ping 10.104.7.187 routing<span class="sy0">-</span>table<span class="sy0">=</span>Primary count<span class="sy0">=</span>5<span class="br0">]</span> <span class="sy0">&gt;</span> 0 <span class="sy0">&amp;&amp;</span> <span class="br0">[</span><span class="sy0">/</span>ping 8.8.4.4 routing<span class="sy0">-</span>table<span class="sy0">=</span>Primary count<span class="sy0">=</span>5<span class="br0">]</span> <span class="sy0">&gt;</span> 0<span class="br0">&#41;</span> <span class="kw3">do</span><span class="sy0">=</span><span class="br0">&#123;</span>
&nbsp;
       <span class="sy0">/</span>ip route <span class="kw2">set</span> <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> distance<span class="sy0">=</span>1
       <span class="sy0">/</span>system reboot
    <span class="br0">&#125;</span>
     <span class="kw3">else</span><span class="sy0">=</span> <span class="br0">&#123;</span>
       
        <span class="sy0">/</span>ip route <span class="kw2">set</span> <span class="br0">[</span>find comment<span class="sy0">=</span><span class="st0">&quot;Primary&quot;</span><span class="br0">]</span> distance<span class="sy0">=</span>3
&nbsp;
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span> <span class="kw3">else</span><span class="sy0">=</span> <span class="br0">&#123;</span>
    :log info <span class="st0">&quot;No Failover Necessary&quot;</span>;
<span class="br0">&#125;</span></pre></div></div>
<p>Enjoy!</p>
<p>L'articolo <a rel="nofollow" href="http://www.linux360.it/2014/06/25/mikrotik-scripting-evitare-cadute-asterisk-causate-failover/">Mikrotik Scripting: Evitare cadute Asterisk causate da Failover</a> sembra essere il primo su <a rel="nofollow" href="http://www.linux360.it">Linux 360° | Italia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linux360.it/2014/06/25/mikrotik-scripting-evitare-cadute-asterisk-causate-failover/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mikrotik Scripting: Queue Tree Limit Exceeded</title>
		<link>http://www.linux360.it/2014/05/10/mikrotik-scripting-queue-tree-limit-exceeded/</link>
		<comments>http://www.linux360.it/2014/05/10/mikrotik-scripting-queue-tree-limit-exceeded/#comments</comments>
		<pubDate>Sat, 10 May 2014 16:10:36 +0000</pubDate>
		<dc:creator><![CDATA[Paolo Daniele]]></dc:creator>
				<category><![CDATA[Mikrotik]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[queue tree]]></category>
		<category><![CDATA[routerOS]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.paolodaniele.it/?p=1877</guid>
		<description><![CDATA[<p>Today i&#8217;ll show you a little script for RouterOS to check if queue tree exceed the limit you set. For. Example i&#8217;ve a queue tree that limit the amount o total traffic(Upload+Download) to 50MBps I want to know whenever this queue exceed the limit, and i want the system to send me an email. This ...</p>
<p>L'articolo <a rel="nofollow" href="http://www.linux360.it/2014/05/10/mikrotik-scripting-queue-tree-limit-exceeded/">Mikrotik Scripting: Queue Tree Limit Exceeded</a> sembra essere il primo su <a rel="nofollow" href="http://www.linux360.it">Linux 360° | Italia</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Today i&#8217;ll show you a little script for RouterOS to check if queue tree exceed the limit you set.</p>
<p>For. Example i&#8217;ve a queue tree that limit the amount o total traffic(Upload+Download) to 50MBps</p>
<p>I want to know whenever this queue exceed the limit, and i want the system to send me an email.</p>
<p>This is the script:</p>
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Click to show/hide code block">Source code</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Show code only"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Print code"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://www.linux360.it/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Show plugin information"><img border="0" style="border: 0 none" src="http://www.linux360.it/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><ol class="php" style="font-family:monospace;"><li class="li1"><div class="de1"><span class="sy0">:</span><span class="kw2">global</span> checkrate <span class="br0">[</span><span class="sy0">/</span>queue tree get total<span class="sy0">-</span>traffic rate<span class="br0">]</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">:</span>local limit 50000000</div></li>
<li class="li1"><div class="de1">&nbsp;</div></li>
<li class="li1"><div class="de1"><span class="sy0">:</span><span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$checkrate</span> <span class="sy0">&lt;</span> <span class="re0">$limit</span> <span class="br0">&#41;</span> <span class="kw1">do</span><span class="sy0">=</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">:</span><a href="http://www.php.net/log"><span class="kw3">log</span></a> info <span class="br0">&#40;</span><span class="st0">&quot;Queue not Exceeded&quot;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">:</span><span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$checkrate</span> <span class="sy0">&gt;</span> <span class="re0">$limit</span> <span class="br0">&#41;</span> <span class="kw1">do</span><span class="sy0">=</span><span class="br0">&#123;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">:</span><a href="http://www.php.net/log"><span class="kw3">log</span></a> info <span class="br0">&#40;</span><span class="st0">&quot;Queue Exceeded&quot;</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="sy0">/</span>tool e<span class="sy0">-</span><a href="http://www.php.net/mail"><span class="kw3">mail</span></a> send server<span class="sy0">=</span>xxx<span class="sy0">.</span>xxx<span class="sy0">.</span>xxx<span class="sy0">.</span>xxx from<span class="sy0">=</span><span class="st0">&quot;me@myself.com&quot;</span> to<span class="sy0">=</span><span class="st0">&quot;me@myself.com&quot;</span> subject<span class="sy0">=</span><span class="br0">&#40;</span><span class="st0">&quot;Queue Limit Exceed&quot;</span><span class="br0">&#41;</span> body<span class="sy0">=</span><span class="br0">&#40;</span><span class="st0">&quot;Queue Limit Exceed, Limit is: &quot;</span> <span class="sy0">.</span> <span class="re0">$checkrate</span><span class="br0">&#41;</span></div></li>
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>
</ol></div></div>
<p>&nbsp;</p>
<p>I&#8217;ll explain the code:</p>
<p>First i define a variable <strong>checkrate</strong> that represent the instant rate of the queue tree named <strong>total-traffic</strong> then i define a <strong>limit</strong>(this case i&#8217;ve used 50Mbps) then i check if rate less than limit do nothing or just log to test the script.</p>
<p>If checkrate greater than limit send an email to myself.</p>
<p>Be sure to specify as email server an IP address and not the name of the server(ex. mail.myself.com)</p>
<p>Enjoy!</p>
<p>&nbsp;</p>
<p>L'articolo <a rel="nofollow" href="http://www.linux360.it/2014/05/10/mikrotik-scripting-queue-tree-limit-exceeded/">Mikrotik Scripting: Queue Tree Limit Exceeded</a> sembra essere il primo su <a rel="nofollow" href="http://www.linux360.it">Linux 360° | Italia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linux360.it/2014/05/10/mikrotik-scripting-queue-tree-limit-exceeded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
