Protože už mě nebavilo neustálý překlikávání ve winboxu, abych zaregistroval novýho uživatele udělal jsem si takovej jednoduchej skript pro vložení registrace. Pro mou potřebu malý vesnický sítě pro pár uživatelů to zatím stačí tak kdyby se to někomu hodilo...
Co to dělá: po vyplnění základních parametrů jako je jméno uživatele, IP adresy a rychlostí stačí pustit skript a vytvoří se mangle pro download a upload, vloží se IP adresa do address-listu (kvůli reklamě neregistrovaným) a vytvoří se jednotlivé Queue pro parrenty DOWNLOAD a UPLOAD
############################################################################################################
# Vyplnit pouze následující údaje, pak kliknout na Apply a následně Run Script.
############################ IP adresa
:local ipadresa "10.10.10.10"
############################ Jméno uživatele
:local jmenouzivatele "Pepa Zdepa"
############################ Unikátní jméno - bez diakritiky a s podtržítkem místo mezery
:local unikatnijmeno "pepa_zdepa"
############################ Rychlost downloadu a uploadu [ bits/s ]
:local download "5M"
:local upload "5M"
############################ Priorita
:local priorita "5"
#############################################################################################################
### Vlastní skript dál už nic neměnit! ###
# Vytvoření magle - download/upload
:if ( [/ip firewall mangle find dst-address=$ipadresa] = "" ) do={
/ip firewall mangle
add chain=forward dst-address=$ipadresa action=mark-packet new-packet-mark=([$unikatnijmeno] . "_down") passthrough=yes comment=([$jmenouzivatele] . "- DOWN") disabled=no
} else={
:log error ("Tato adresa " . [$ipadresa] . " je již v DST mangle - nebyla přidána!!")
}:if ( [/ip firewall mangle find src-address=$ipadresa] = "" ) do={
/ip firewall mangle
add chain=forward src-address=$ipadresa action=mark-packet new-packet-mark=([$unikatnijmeno] . "_up") passthrough=yes comment=([$jmenouzivatele] . "- UP") disabled=no
} else={
:log error ("Tato adresa " . [$ipadresa] . " je již v SRC mangle - nebyla přidána!!")
}#Vložení IP adresy do address listu
:if ( [/ip firewall address-list find list=registrovani address=$ipadresa] = "" ) do={
/ip firewall address-list add address=$ipadresa list=registrovani comment=$jmenouzivatele disabled=no
} else={
:log error ("IP adresa " . [$ipadresa] . " je již v addresslistu - nebyla přidána!!")
}# Vytvoření Queue Tree
:if ( [/queue tree find packet-mark=([$unikatnijmeno] . "_down")] = "" ) do={
/queue tree
add name=([$unikatnijmeno] . "_down") parent=DOWNLOAD packet-mark=([$unikatnijmeno] . "_down") queue=default priority=$priorita max-limit=$download disable=no
} else={
:log error ("Tato queue " . ([$unikatnijmeno] . "_down") . " je již použita - změň prosím unikátní jméno!!")
}:if ( [/queue tree find packet-mark=([$unikatnijmeno] . "_up")] = "" ) do={
/queue tree
add name=([$unikatnijmeno] . "_up") parent=UPLOAD packet-mark=([$unikatnijmeno] . "_up") queue=default priority=$priorita max-limit=$upload disable=no
} else={
:log error ("Tato queue " . ([$unikatnijmeno] . "_up") . " je již použita - změň prosím unikátní jméno!!")
}# Výpis do logu
:log warning ("Jojo " . [$jmenouzivatele] . " byl úspěšně přidán mezi uživatele!")
Je to zatím první verze co jsem tak z dlouhý chvíle sesmolil - určitě to budu ještě vylepšovat a budu rád za další nápady na vylepšení a připomínky. Testováno na verzi 4.5