„MikroTik dinamikus WAN interfészek kezelése” változatai közötti eltérés

Innen: IT documentation
 
(47 közbenső módosítás ugyanattól a szerkesztőtől nincs mutatva)
1. sor: 1. sor:
{{DISPLAYTITLE:MikroTik dinamikus címek kezelése}}
==Összefoglalás==
==Összefoglalás==
A leírás MikroTik RouterOS 6.44.6 verzión készült.
A leírás MikroTik RouterOS 6.48.6 verzión készült.
 
Ha a WAN interfész(ek)en dinamikus IP cím van, de mégis szolgáltatás kell, hogy fusson rajtuk, amikor a cím(ek) változnak, szükség van az címek automatikus frissítésére egyéb rendszerekben, mint például DNS rekordok vagy Address list-ek esetén.
 
A következő Mikrotik RouterOS szkript ez esetben lehet hasznos.
 
== Funkciók ==
 
===Időzítés===
A script első futtatásakor automatikusan létrehozza az időzített futtatást a MikroTik RouterOS-ben. A '''$scriptName''' paraméterben a script nevét kell megadni (amely néven elmentettük), A '''$defaultInterval''' paraméterben pedig a futtatás gyakoriságát lehet megadni.<syntaxhighlight lang="shell">
# scriptName: (string) This script name in Mikrotik RourerOS
# defaultInterval: (time) Interval of schelude
:local scriptName "DynamicWAN"
:local defaultInterval 00:01:00
</syntaxhighlight>
 
=== Értesítés ===
A script képes értesítés küldeni syslog és email -en keresztül. A '''$logFacility''' paraméterben a log szintjét állíthatjuk, a '''$emailFacility''' paraméterben pedig az email értesítések szintjét. Az email küldés paramétereit az '''$Email...''' paraméter csoportban állíthatjuk be.<syntaxhighlight lang="shell">
# logFacility,
# emailFacility: (string) Log and email facility. Valuses. none,debug,info,warn,error
:global logFacility "info"
:global emailFacility "none"
 
# Email parameters
# EmailServer: (string) SMTP server host
# EmailPort: (num) SMTP host
# EmailTLS: (string) SMTP TLS
# EmailUser: (string) SMTP user
# EmailPassword: (string) SMTP password
# EmailRecipient: (string) Email recipient
# EmailSender: (string) Email sender
:local EmailServer "myEmailserver"
:local EmailPort 25
:local EmailTLS "no"
:local EmailUser "username"
:local EmailPassword "password"
:local EmailRecipient "Name <email address>"
:local EmailSender "Name <email address>"
</syntaxhighlight>


Előfordulhat, hogy az interfész(ek)en dinamikus IP cím van (és nem is lehet más), de mégis szolgáltatás kell, hogy fusson rajtuk. Amikor a cím(ek) változnak, szükség van az információ automatikus frissítésére egyéb rendszerekben (például DNS rekordok vagy Address list-ek).
=== Online ellenőrzés ===
Tipikusan több WAN interfész esetében szükséges ellenőrizni, hogy az interfész valóban képes e összeköttetést biztosítani az internettel. Ezt pusztán L2 vagy L3 szinten nem elég ellenőrizni, hiszen működő link és helyes IP beállítások mellett is elképzelhető, jellemzően szolgáltató hiba esetén, hogy valójában nincs internetkapcsolat.


A következő Mikortik RouterOS script ebben az esetben lehet hasznos.
A legmegfelelőbb teszt az internet kapcsolat ellenőrzésére, hogy megnézzük, elérünk e az adott interfészen keresztül, egy adott, biztosan elérhető hostot. A script az ellenőrzést ping-el hajtja végre.


==IP váltás észlelése==
A script policy-based route-okat hoz létre interfészenként WAN0, WAN1 ... WANX néven, amit majd az ellenőrzéskor használ.
A WANIP golbális változóba helyezzük az aktuális címet és figyeljük, hogy változik e a WAN interface IP címe:<syntaxhighlight lang="bash">
:global WANIP
:local tempip [ /ip address get [ /ip address find interface="WAN" ] address ]
:local tempip [:pick $tempip 0 [:find $tempip  "/" -1 ] ]


if ( $WANIP != $tempip ) do={
A '''$pingSites''' paraméterben megadott host-okkal ellenőriz. Ha az első host nem elérhető, csak akkor ellenőrzi a másodikat, ha az sem, akkor a harmadikat, stb. Ha az összes host elérhetetlen az interfészen keresztül, akkor minősíti offline-nak az interfészt.


    # teendők a régi IP -vel
Az '''$Int->$if''' paraméterben adhatjuk meg a WAN intefész nevét.<syntaxhighlight lang="shell">
    :set WANIP $tempip
# pingSites: (array) Ping sites for check that WAN is alive
    # teendők az új IP -vel
:local pingSites {
  "example.com";
  8.8.8.8;
}


# Int: (array) Array of WAN interfaces
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
:local Int {
{
"if"="WAN1";
};
{
"if"="WAN2";
};
}
}
</syntaxhighlight>
</syntaxhighlight>


==DNS rekord frissítése==
=== Default route ===
Lehetőség van egy DNS szerveren egy domain egy vagy több "A" rekordjának frissítésére.
Ha pl. a WAN1 interfész online, de nem forgalmaz, míg a WAN2 forgalmaz, akkor át kell állni a WAN2-re. A scripteben megadhatunk online és offline állapothoz tartozó route distance-ot. Ha a WAN1 offline route distance nagyobb, mint a WAN2 online route distance, akkor a default route átáll a WAN2-re. Lsd. lenti példa.


Ha távoli eléréshez használnánk ezt a rekordot, akkor sokkal egyszerűbb a Mikrotik DDNS-ét használni:<syntaxhighlight lang="bash">
Az '''$Int->$distanceOnline,'''  '''$Int->$distanceOffline,''' paraméterekben adhatjuk meg a route distance értékeket. A funkció működéséhez mindkét config tömb elemnek léteznie kell numeric értékkel.<syntaxhighlight lang="shell">
/ip cloud set ddns-enabled=yes
# Int: (array) Array of WAN interfaces
/ip cloud print
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
    ddns-enabled: yes
# distanceOnline,
    ddns-update-interval: none
# distanceOffline: (num) Route Distance in online and offline state. Both settings required to set route distance.
    update-time: yes
:local Int {
    public-address: x.x.x.x
{
    public-address-ipv6: X:X:X::X
"if"="WAN1";
    dns-name: XXX.sn.mynetname.net
"distanceOnline"=1;
    status: updated
"distanceOffline"=11;
</syntaxhighlight>A következő módszer inkább egyéb szolgáltatások rekordfrissítéséhez használható.A rekord frissítéshez szükség van egy kulcsra (authorization key / Transfer Signature key), amelyet a DNS szerver üzemeltetőjétől szerezhetünk be. A kulcs birtokában egy egyszerű paranccsal frissíthetjük a rekordot:<syntaxhighlight lang="bash">
};
:global WANIP
{
:local tempip [ /ip address get [ /ip address find interface="WAN" ] address ]
"if"="WAN2";
:local tempip [:pick $tempip 0 [:find $tempip  "/" -1 ] ]
"distanceOnline"=2;
"distanceOffline"=21;
};
}
</syntaxhighlight>


if ( $WANIP != $tempip ) do={
=== Address list frissítése ===
 
Ha a WAN IP-vel dolgozni szeretnénk, pl. tűzfal szabályban, akkor egy "address list"-ben lehet tárolni és frissíteni a dinamikus címet.  Az '''$Int->$addresslist''' paraméter adja meg az address list nevét, melyben tárolni szerenénk az interfész címét. Megadható string-ként egy lista, vagy tömbként több lista is.
    :set WANIP $tempip
    # DNS rekord frissítése
    /tool dns-update dns-server=<domain vagy IP> name=<rekord neve, pl: mail> zone=<zóna neve, pl: domain.hu> address=$WANIP ttl=3600 key-name=<kulcs neve> key="<kulcs érték>"


Dinamikus address list-et hoz létre a '''$defaultInterval''' paraméterben megadott lease time-al.  <syntaxhighlight lang="shell">
# Int: (array) Array of WAN interfaces
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# addresslist: (string|array) IP address list(s) what will be refresh with address of interface and lease time as $defaultInterval.
:local Int {
{
"if"="WAN1";
"addresslist"="WAN";
};
{
"if"="WAN2";
"addresslist"={
    "WAN";
    "WAN2";
};
};
}
}
</syntaxhighlight>
</syntaxhighlight>


==Address list frissítése==
===DNS rekord frissítése===
Ha a WAN IP-vel dolgozni szeretnénk, pl. tűzfal szabályban, akkor egy "address list" -en kell tárolni és frissíteni a dinamikus címet. A következő változat ezt oldja meg:<syntaxhighlight lang="bash">
DNSSEC-et támogató névszerverek esetén lehetőség van egy domain "A" rekordjának frissítésére. A rekord frissítéshez szükség van egy kulcsra (authorization key / Transfer Signature key), amelyet a DNS szerver üzemeltetőjétől szerezhetünk be.
:global WANIP
:local tempip [ /ip address get [ /ip address find interface="WAN" ] address ]
:local tempip [:pick $tempip 0 [:find $tempip  "/" -1 ] ]


if ( $WANIP != $tempip ) do={
A '''$DNS...''' paraméter csoportban állíthatjuk be a DNS frissítéshez szükséges paramétereket.
   
    # régi IP levétel
    /ip firewall address-list remove [find list="WAN" address=$WANIP]
    :set WANIP $tempip
    # új IP felvétel
    /ip firewall address-list add list=WAN address=$WANIP


Az '''$Int->$dns''' paraméterrel adhatjuk meg, mely WAN iterfész IP címe, mely DNS rekordon frissüljön. Megadható string-ként egy DNS rekord, vagy tömbként több DNS rekord is.<syntaxhighlight lang="shell">
# DNS refresh parameters
# DNSserver: (string) Nameserver host
# DNSdomain: (string) Domain zone name
# DNSttl: (num) Domain record TTL
# DNSkeyname: (string) Key name
# DNSkey: (string) Key
:local DNSserver "myNameServer";    # Nameserver host
:local DNSdomain "mydomain.com";    # Domain zone name
:local DNSttl 3600;                  # Domain record TTL
:local DNSkeyname "keyname";        # Key name
:local DNSkey "key";                # Key
# Int: (array) Array of WAN interfaces
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# dns: (string|array) Subdomain(s) what have to refresh with the address of interface according to DNS refresh parameters.
:local Int {
{
"if"="WAN1";
"dns"="isp1";
};
{
"if"="WAN2";
"dns"={"isp2";"backupisp"};
};
}
}
</syntaxhighlight>
</syntaxhighlight>


== Időzítés ==
===Dinamikus tunnel===
Megtehetjük, hogy ciklikusan időzítjük a scriptet, pl óránként, így beállítva a frissítési gyakoriságot. Ez estben lehet szolgáltatás kiesés, példánkban maximum 1 óra. Ha szeretnénk pontosan időzíteni, figyelni kell a dinamikus IP cím lejárati idejét, és erre az időpontra időzíteni a következő ellenőrzést.
A szkript EoIP, IPIP, és GRE tunnel interfészeket támogat.  
 
Az '''$Int->$interfaces''' tömb paraméterrel adhatjuk meg, mely WAN iterfész IP címe, mely tunnel interfész(ek) local-address paramétere frissüljön.  


A példában feltételezzük, hogy a scriptnek "chkIP" a neve, és ugyanezen néveh hozza létre az időzítést.<syntaxhighlight lang="bash">
Az  '''$Int->$interfaces->$if''' paraméter a tunnel interész nevét adja meg.  
:global WANIP
:local intName "WAN"
:local scriptName "chkIP"


:local tempip [ /ip address get [ /ip address find interface=$intName ] address ]
'''$Int->$interfaces->$disableOffline''' paraméter true érték esetén a tunnel interfészt letiltja, amíg a WAN intefész offline, azaz feleslegesen nem fog próbálkozni a router a tunnel felépítésével.
:local tempip [:pick $tempip 0 [:find $tempip  "/" -1 ] ]


:local expr [ /ip dhcp-client get value-name=expires-after  [find interface=$intName] ]
'''Int->$interfaces->$localAddress''' paraméter true érték esetén a tunnel interfész local-adress paramétere felveszi a WAN intefész mindenkori IP címét. Így dinamikus tunnel alakítható ki.<syntaxhighlight lang="shell">
if ( [:len [/system scheduler find  name="test"]] =0) do={
# Int: (array) Array of WAN interfaces
    /system scheduler add name=$scriptName interval=$expr start-time=[/system clock get time] start-date=[/system clock get date] policy=read,sniff,policy,test on-event="/system script run $scriptName"  
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# interfaces: (array) Interface(s) what have to manage by WAN states.
# interfaces->if: (string) Interface name.
# interfaces->disableOffline: (boolean) If true, when WAN interface goes offline, the interface will be disabled too.
# interfaces->localAddress: (boolean) If true, the lacal-address will be refresh with WAN address. The interface type have to be tunnel.
:local Int {
{
"if"="WAN1";
        "interfaces"={
            {
                "if"="tunnel1";
                "disableOffline"=true;
        "localAddress"=true;
      };
        };
};
{
"if"="WAN2";
        "interfaces"={
            {
                "if"="tunnel2";
                "localAddress"=true;
            };
        };
};
}
}
:local expr2 [ /system scheduler get $scriptName value-name=interval ]
 
if ( expr!=exp2) do={
</syntaxhighlight>
    /system scheduler set $scriptName interval=$expr start-time=[/system clock get time] start-date=[/system clock get date]
===VRRP prioritás===
VRRP prioritást állít attól függően, hogy a WAN interfész online vagy offline. Ha a WAn offline, a prioriás növelésével VRRP Master állapot átatható a VRRP Backup párjának.
 
Az '''$Int->$interfaces''' tömb paraméterrel adhatjuk meg, mely WAN iterfész, mely vrrp interfész(ek) prioritása frissüljön.
 
Az '''$Int->$interfaces->$if''' paraméter a vrrp interész nevét adja meg.
 
'''$Int->$interfaces->$VRRPOnline''' és '''$Int->$interfaces->$VRRPOffline''' paraméterrel a vrrp  interfészt online és offline prioritása adható meg. <syntaxhighlight lang="shell">
# Int: (array) Array of WAN interfaces
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# interfaces: (array) Interface(s) what have to manage by WAN states.
# interfaces->if: (string) Interface name.
# interfaces->VRRPOnline,
# interfaces->VRRPOffline: (num) VRRP interface priority in online and offline state. Both settings required and the interface type have to be vrrp.
:local Int {
{
"if"="WAN1";
        "interfaces"={
            {
                "if"="vrrp1";
        "VRRPOnline"=1;
          "VRRPOffline"=11;
      };
        };
};
{
"if"="WAN2";
        "interfaces"={
            {
                "if"="tunnel2";
                "localAddress"=true;
            };
            {
                "if"="vrrp2";
        "VRRPOnline"=2;
          "VRRPOffline"=21;
            };
        };
};
}
}


if ( $WANIP != $tempip ) do={
</syntaxhighlight>
===Szkipt futtatás===
Ha egyedi funkcióval szeretnénk kibővíteni a szkipt működését, lehetőség van szkript futtatására a WAN interfész eseményeinél.


    # teendők a régi IP -vel
Az  '''$Int->$script''' paraméterben felsorolható egy vagy több RouterOS szkcript, mely a WAN interfész eseményeinél lefut. A paramétereket globális változóban kapja meg a futatandó szkript.
    :set WANIP $tempip
    # teendők az új IP -vel


* WANevent: Az esemény megnevezése. Lehetséges értékek: online, offline, IPCange
* WANinterface: A WAN interfész neve.
* WANnewIP, WANprevIP: A WAN interfész előző és az aktuális IP címe. Csak az IPCange eseménynél frissül!
<syntaxhighlight lang="shell">
# Int: (array) Array of WAN interfaces
# if: (string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# script: (string|array) Run script at events of WAN interface.
# The fuction gives some parameters in global wariables:
# WANevent: The  event when the script was called. Values: online, offline, IPCange
# WANinterface: The WAN interface's name, same as "if" parameter.
# WANnewIP, WANprevIP: The previous and actual IP address of WAN interface. Will be refresh only at IPCange event!
:local Int {
{
"if"="WAN1";
    "script"={
      "scriptname";
        };
};
}
}
</syntaxhighlight><br />
 
</syntaxhighlight>
[[Kategória:MikroTik]]

A lap jelenlegi, 2022. február 3., 15:08-kori változata


Összefoglalás

A leírás MikroTik RouterOS 6.48.6 verzión készült.

Ha a WAN interfész(ek)en dinamikus IP cím van, de mégis szolgáltatás kell, hogy fusson rajtuk, amikor a cím(ek) változnak, szükség van az címek automatikus frissítésére egyéb rendszerekben, mint például DNS rekordok vagy Address list-ek esetén.

A következő Mikrotik RouterOS szkript ez esetben lehet hasznos.

Funkciók

Időzítés

A script első futtatásakor automatikusan létrehozza az időzített futtatást a MikroTik RouterOS-ben. A $scriptName paraméterben a script nevét kell megadni (amely néven elmentettük), A $defaultInterval paraméterben pedig a futtatás gyakoriságát lehet megadni.

# scriptName: 					(string) This script name in Mikrotik RourerOS
# defaultInterval:				(time) Interval of schelude
:local scriptName "DynamicWAN"
:local defaultInterval 00:01:00

Értesítés

A script képes értesítés küldeni syslog és email -en keresztül. A $logFacility paraméterben a log szintjét állíthatjuk, a $emailFacility paraméterben pedig az email értesítések szintjét. Az email küldés paramétereit az $Email... paraméter csoportban állíthatjuk be.

# logFacility,
# emailFacility:				(string) Log and email facility. Valuses. none,debug,info,warn,error
:global logFacility "info"
:global emailFacility "none"

# Email parameters
# EmailServer:					(string) SMTP server host
# EmailPort:					(num) SMTP host
# EmailTLS:						(string) SMTP TLS
# EmailUser:					(string) SMTP user
# EmailPassword:				(string) SMTP password
# EmailRecipient:				(string) Email recipient
# EmailSender:					(string) Email sender
:local EmailServer "myEmailserver"	
:local EmailPort 25	
:local EmailTLS "no"
:local EmailUser "username"
:local EmailPassword "password"
:local EmailRecipient "Name <email address>"
:local EmailSender "Name <email address>"

Online ellenőrzés

Tipikusan több WAN interfész esetében szükséges ellenőrizni, hogy az interfész valóban képes e összeköttetést biztosítani az internettel. Ezt pusztán L2 vagy L3 szinten nem elég ellenőrizni, hiszen működő link és helyes IP beállítások mellett is elképzelhető, jellemzően szolgáltató hiba esetén, hogy valójában nincs internetkapcsolat.

A legmegfelelőbb teszt az internet kapcsolat ellenőrzésére, hogy megnézzük, elérünk e az adott interfészen keresztül, egy adott, biztosan elérhető hostot. A script az ellenőrzést ping-el hajtja végre.

A script policy-based route-okat hoz létre interfészenként WAN0, WAN1 ... WANX néven, amit majd az ellenőrzéskor használ.

A $pingSites paraméterben megadott host-okkal ellenőriz. Ha az első host nem elérhető, csak akkor ellenőrzi a másodikat, ha az sem, akkor a harmadikat, stb. Ha az összes host elérhetetlen az interfészen keresztül, akkor minősíti offline-nak az interfészt.

Az $Int->$if paraméterben adhatjuk meg a WAN intefész nevét.

# pingSites:					(array) Ping sites for check that WAN is alive
:local pingSites {
   "example.com";
   8.8.8.8;
}

# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
:local Int {
	{
		"if"="WAN1";
	};
	{
		"if"="WAN2";
	};
}

Default route

Ha pl. a WAN1 interfész online, de nem forgalmaz, míg a WAN2 forgalmaz, akkor át kell állni a WAN2-re. A scripteben megadhatunk online és offline állapothoz tartozó route distance-ot. Ha a WAN1 offline route distance nagyobb, mint a WAN2 online route distance, akkor a default route átáll a WAN2-re. Lsd. lenti példa.

Az $Int->$distanceOnline, $Int->$distanceOffline, paraméterekben adhatjuk meg a route distance értékeket. A funkció működéséhez mindkét config tömb elemnek léteznie kell numeric értékkel.

# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# distanceOnline,
# distanceOffline:				(num) Route Distance in online and offline state. Both settings required to set route distance.
:local Int {
	{
		"if"="WAN1";
		"distanceOnline"=1;
		"distanceOffline"=11;
	};
	{
		"if"="WAN2";
		"distanceOnline"=2;
		"distanceOffline"=21;
	};
}

Address list frissítése

Ha a WAN IP-vel dolgozni szeretnénk, pl. tűzfal szabályban, akkor egy "address list"-ben lehet tárolni és frissíteni a dinamikus címet. Az $Int->$addresslist paraméter adja meg az address list nevét, melyben tárolni szerenénk az interfész címét. Megadható string-ként egy lista, vagy tömbként több lista is.

Dinamikus address list-et hoz létre a $defaultInterval paraméterben megadott lease time-al.

# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# addresslist:					(string|array) IP address list(s) what will be refresh with address of interface and lease time as $defaultInterval.
:local Int {
	{
		"if"="WAN1";
		"addresslist"="WAN";
	};
	{
		"if"="WAN2";
		"addresslist"={
		    "WAN";
		    "WAN2";
		};
	};
}

DNS rekord frissítése

DNSSEC-et támogató névszerverek esetén lehetőség van egy domain "A" rekordjának frissítésére. A rekord frissítéshez szükség van egy kulcsra (authorization key / Transfer Signature key), amelyet a DNS szerver üzemeltetőjétől szerezhetünk be.

A $DNS... paraméter csoportban állíthatjuk be a DNS frissítéshez szükséges paramétereket.

Az $Int->$dns paraméterrel adhatjuk meg, mely WAN iterfész IP címe, mely DNS rekordon frissüljön. Megadható string-ként egy DNS rekord, vagy tömbként több DNS rekord is.

# DNS refresh parameters
# DNSserver:					(string) Nameserver host
# DNSdomain:					(string) Domain zone name
# DNSttl:						(num) Domain record TTL
# DNSkeyname:					(string) Key name
# DNSkey:						(string) Key
:local DNSserver "myNameServer";     # Nameserver host
:local DNSdomain "mydomain.com";     # Domain zone name
:local DNSttl 3600;                  # Domain record TTL
:local DNSkeyname "keyname";         # Key name
:local DNSkey "key";                 # Key

# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# dns:							(string|array) Subdomain(s) what have to refresh with the address of interface according to DNS refresh parameters.
:local Int {
	{
		"if"="WAN1";
		"dns"="isp1";
	};
	{
		"if"="WAN2";
		"dns"={"isp2";"backupisp"};
	};
}

Dinamikus tunnel

A szkript EoIP, IPIP, és GRE tunnel interfészeket támogat.

Az $Int->$interfaces tömb paraméterrel adhatjuk meg, mely WAN iterfész IP címe, mely tunnel interfész(ek) local-address paramétere frissüljön.

Az $Int->$interfaces->$if paraméter a tunnel interész nevét adja meg.

$Int->$interfaces->$disableOffline paraméter true érték esetén a tunnel interfészt letiltja, amíg a WAN intefész offline, azaz feleslegesen nem fog próbálkozni a router a tunnel felépítésével.

Int->$interfaces->$localAddress paraméter true érték esetén a tunnel interfész local-adress paramétere felveszi a WAN intefész mindenkori IP címét. Így dinamikus tunnel alakítható ki.

# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# interfaces:					(array) Interface(s) what have to manage by WAN states.
# interfaces->if:				(string) Interface name.
# interfaces->disableOffline:	(boolean) If true, when WAN interface goes offline, the interface will be disabled too.
# interfaces->localAddress:		(boolean) If true, the lacal-address will be refresh with WAN address. The interface type have to be tunnel.
:local Int {
	{
		"if"="WAN1";
        "interfaces"={
            {
                "if"="tunnel1";
                "disableOffline"=true;
    		    "localAddress"=true;
    		   };
        };
	};
	{
		"if"="WAN2";
        "interfaces"={
            {
                "if"="tunnel2";
                "localAddress"=true;
            };
        };
	};
}

VRRP prioritás

VRRP prioritást állít attól függően, hogy a WAN interfész online vagy offline. Ha a WAn offline, a prioriás növelésével VRRP Master állapot átatható a VRRP Backup párjának.

Az $Int->$interfaces tömb paraméterrel adhatjuk meg, mely WAN iterfész, mely vrrp interfész(ek) prioritása frissüljön.

Az $Int->$interfaces->$if paraméter a vrrp interész nevét adja meg.

$Int->$interfaces->$VRRPOnline és $Int->$interfaces->$VRRPOffline paraméterrel a vrrp interfészt online és offline prioritása adható meg.

# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# interfaces:					(array) Interface(s) what have to manage by WAN states.
# interfaces->if:				(string) Interface name.
# interfaces->VRRPOnline,
# interfaces->VRRPOffline:		(num) VRRP interface priority in online and offline state. Both settings required and the interface type have to be vrrp.
:local Int {
	{
		"if"="WAN1";
        "interfaces"={
            {
                "if"="vrrp1";
    	    	"VRRPOnline"=1;
       	    	"VRRPOffline"=11;
   	    	};
        };
	};
	{
		"if"="WAN2";
        "interfaces"={
            {
                "if"="tunnel2";
                "localAddress"=true;
            };
            {
                "if"="vrrp2";
    	    	"VRRPOnline"=2;
       	    	"VRRPOffline"=21;
            };
        };
	};
}

Szkipt futtatás

Ha egyedi funkcióval szeretnénk kibővíteni a szkipt működését, lehetőség van szkript futtatására a WAN interfész eseményeinél.

Az $Int->$script paraméterben felsorolható egy vagy több RouterOS szkcript, mely a WAN interfész eseményeinél lefut. A paramétereket globális változóban kapja meg a futatandó szkript.

  • WANevent: Az esemény megnevezése. Lehetséges értékek: online, offline, IPCange
  • WANinterface: A WAN interfész neve.
  • WANnewIP, WANprevIP: A WAN interfész előző és az aktuális IP címe. Csak az IPCange eseménynél frissül!
# Int:							(array) Array of WAN interfaces
# if:							(string) ISP (WAN) iterface name. The intervace have to have an synamic IP address.
# script:						(string|array) Run script at events of WAN interface.
#								The fuction gives some parameters in global wariables:
#								WANevent: The  event when the script was called. Values: online, offline, IPCange
#								WANinterface: The WAN interface's name, same as "if" parameter.
#								WANnewIP, WANprevIP: The previous and actual IP address of WAN interface. Will be refresh only at IPCange event!
:local Int {
	{
		"if"="WAN1";
	    "script"={
	       "scriptname";
        };
	};
}