Tento dokument přibližuje stěžejní informace potřebné pro správné pochopení spolupráce systému ISPadmin s routery MikroTik. Bez následujících znalostí nebudete dost dobře schopní správně definovat důležité nastavení v ISPadmin.
Obecně
Update konfigurace všech routerů probíhá periodicky každých 5 minut. Pokud ale budete například odlaďovat jeden určitý router, máte kdykoliv možnost provést update jen jeho konfigurace (propsání pravidel) tlačítkem Update konfigurace routeru v jeho záhlaví.
Konfigurace se přenáší rozdílově. To znamená, že si systém při updatu konfigurace nejdříve stáhne aktuální konfiguraci routeru, provede porovnání s konfigurací, která by v routeru měla být, a poté zjištěné rozdíly přenese. Tím se minimalizuje počet zápisů na flash routerbordu, čímž se minimalizuje i výskyt vadných bloků.
Monitoring routeru se provádí pomocí protokolu SNMP a případně i API, pokud je aktivované. Veškeré změny konfigurace, které ISPadmin přenáší do routeru se přenášejí přes SSH protokol nebo opět prostřednictvím rozhraním API. Podmínkou správného fungování routeru tedy je aktivní komunikace mezi ním a systémem ISPadmin.
- SNMP - Zajišťuje monitorování routeru (traffic, přenesená data, CPU, RAM, atd.).
- SSH - Propisování pravidel, automatické zálohy konfigurace (textové i binární).
- API - Pokročilejší a rychlejší komunikace s routerem, vyčítání verze ROS, zapisování pravidel, grafy WIFI signálu (SIGNAL, NOISE, SNR, TCQ atd.).
Ověřit spojení na router můžete tlačítkem Otestovat spojení v jeho záhlaví. Ověřit spojení je možné také provést hromadně na všechny routery stejným tlačítkem v horní části stránky Hardware Routery Všechny.
Routery přidávejte nejprve v monitorovacím režimu. To znamená že zadané routery systém vidí a zobrazuje v administraci, ale nezapisuje na ně žádné změny konfigurace. Pokud je router v "monitorovacím režimu", systém pouze pasivně vyčítá informace pomocí SNMP a případně i API a v pětiminutových intervalech vykresluje různé hodnoty, statistiky a grafy.
Pokud je tedy spojení na router v pořádku, můžete přehodit ze stavu zapnutého "monitorovacího režimu" na stav vypnuto, čímž umožníte propisování změn konfigurace pomocí SSH nebo API.
Za stabilní považujeme verze 3.30, 4.17, 5.23, 5.6, a 6.x
Případně můžete použít i novější verze (6.x a výše) ale doporučujeme nejdříve nasadit novou verzi na několika méně významných routerech a pokud bude vše v pořádku, teprve pak nasadit novou verzi plošně.
Zálohy konfigurace routerů
Přes veškerou opatrnost se může stát, že si poškodíte funkční konfiguraci na některém routeru. Z tohoto důvodu je doporučeno využívat funkce automatického zálohování routerů, čímž zkrátíte dobu potřebnou k nápravě na minimum. Zálohy routerů (MikroTik, Ubiquiti, Canopy, Flash linux) lze uchovávat v textové podobě. U routerů Mikrotik je navíc možné dělat i binárních zálohy {příkaz backup}, které jsou velice jednoduše použitelné pro obnovení systému. Kliknutím na příslušnou ikonu pak je možné tuto zálohu uložit na lokální disk. Zálohu pak můžete jednoduše nahrát do MikroTiku "přetažením" z lokálního disku přes okno Winboxu do záložky "Files". Vybráním zálohy ve Winboxu a kliknutím na tlačítko "restore" se pak klasicky obnoví kompletní konfigurace routeru.
Propisování konfigurace na router
ISPadmin kompletně propisuje potřebná pravidla do konfigurace routerů MikroTik. Systém ve všech případech pracuje pouze s pravidly, které mají v comment uvedeno "ispadmin_" (Firewall, QueueTree, ppp) nebo mají v packet mark uvedeno "ispadmin_" (Mangle).
Díky tomuto řešení je možné si do routeru přidat vlastní pravidla Firewallu, omezení Queue Tree atd., a Vámi definovaná pravidla zůstanou netknuta. Tyto pravidla zůstávají na začátku Firewallu, Mangle, Queue Tree a ISPadmin je nikdy nemodifikuje. Pravidla se samozřejmě provedou v zadaném pořadí.
V případě ruční změny libovolného pravidla (např. přes Winbox), které je propisováno systémem ISPadmin se toto ručně upravené pravidlo při dalším update konfigurace přepíše původním pravidlem zadaném v systému. Veškeré změny nastavení rychlosti klientů, tarifů, atd. je tedy potřeba provádět z ISPadmina.
Systém ISPadmin tedy modifikuje pouze následující části konfigurace a do jiných částí RouterOS nezasahuje:
Firewall
MikroTik - Zpracování FIREWALL FILTER pravidel
/ip firewall filter
Zde se zapisují pravidla firewallu. Nejdříve se povolí IP adresy klientů, jejich koncových zařízení, routerů, které jsou v daném segmentu, a na konci se celá podsíť zakáže ve FORWARDU pravidlem DROP. Aby vůbec bylo možné přidat klienta do systému, tak musí být v záložce Routery v položce Routované sítě uvedena celá podsíť jako "IP adresy pro WIFI uživatele".
Zapisování firewallu je možné vypnout v nastavení routeru tak, že necháte checkbox položky Aplikovat pravidla firewallu nezaškrtnutý. Pokud není tato položka zaškrtnuta, tak se pravidla firewallu do routeru nepropíší. Toto je možné použít například v případě, že ještě nemáte v systému všechny uživatele. V tomto případě by firewall nezadané uživatele zablokoval a je tedy lepší firewall po dobu zadávání stávajících klientů do systému neaplikovat.
Standardně se do firewallu propisuje omezení na IP adresy jak SRC tak i DST. V některých případech (například z důvodu snížení počtu pravidel ve firewallu) je potřeba omezovat pouze na SRC nebo DST. Tento typ propisování firewallu je možné nastavit v Nastavení Syst. nastavení Mikrotik. Typ propisování pravidel se nastaví v položce mikrotik_fw_drop.
Struktura firewallu, který je zapisován ISPadminem:
Ve verzi ISPadmin 4.04 byly provedeny optimalizace pravidel FIREWALL a NAT do stromové struktury. Podobně jako již nový MANGLE, tak i FILTER a NAT začne využívat stromovou strukturu řazení pravidel dle schématu:
- Pravidla FIREWALL
- FILTER -| vlastní pravidla(bez označení ispadmin)
- | ispadmin_first_forward
- | ispadmin_first_(pořadí)_(komentář)
- .
- .
- | ispadmin_service_forward
- | ispadmin_SSH_trust_server_(IP)
- | ispadmin_SMTP_trust_server_(IP)
- | rtr_(jméno routeru)_ispadmin_up
- | rtr_(jméno routeru)_ispadmin_down
- | dev_(jmeno zarizeni)_ispadmin_up
- | dev_(jméno zarizeni)_ispadmin_down
- | switch_(jméno switche)_ispadmin_up
- | switch_(jméno switche)_ispadmin_down
- | ispadmin_services_mac_up
- | ispadmin_services_mac_down
- .
- .
- | ispadmin_basic_forward
- | ispadmin_group_src_(IP rozsah)
- | iptel_(tel číslo)_(id)_ispadmin_up
- | (jméno klienta)_ispadmin_(id)_up
- .
- .
- .
- .
- | ispadmin_group_dst_(IP rozsah)
- | iptel_(tel číslo)_(id)_ispadmin_down
- | (jméno klienta)_ispadmin_(id)_down
- .
- .
- .
- .
- | ispadmin_last_forward
- | ispadmin_last_(pořadí)_(komentář)
- .
- .
- | ispadmin_drop_forward
- | ispadmin_drop_NETWORK
- | ispadmin_DROP_SSH
- | ispadmin_DROP_SMTP
Tato struktura zajišťuje velmi detailní zpracování firewallu a v důsledku zavedení skoku i efektivní procházení a zvýšení výkonu při menším zatížení (již se nemusí procházet celý strom firewallu (třeba i tisíce pravidel), aby se našlo pravidlo na úplném závěru, ale projde maximálně pár skoky (3-5), aby se dostal do poslední větve, kde projde x-pravidel závisle na zadané masce pro sítě. Tuto velikost masky (bloku po kterém jsou jednotlivé rozsahy rozděleny) je možné nastavit v menu Nastavení Syst. nastavení Mikrotik, klíč "mikrotik_mangle_net_block". Přitom je zachována možnost zapisovat vlastní sadu pravidel globálně pro všechny routery (Nastavení Syst. nastavení Mikrotik, klíč "mikrotik_default_fw") na začátku stromu (klíč "mikrotik_default_fw_last" pro sadu pravidel umístěných na konci firewallu). K této defaultní sadě pravidel je možné přímo u routeru přidat individuální, pro každý router vlastní pravidla, která jsou platná pouze pro konkrétní router. Pravidla je možné nastavit při editaci routeru v sekci firewall. Jedná se o pravidla uvedená v položce "Úvodní FW na routeru" a "Závěrečný FW na routeru". Tím je dána variabilita firewalu.
Nově se vytváří v "address-listu" na routeru MikroTik seznam (název - ispadmin_DROP_NETWORKS) IP adres, do kterého jsou zapisovány sítě klientských rozsahů pro dropování provozu neregistrovaným klientům. Při aktualizaci routerů se již nemažou a nepřidávají tyto rozsahy, pouze se na dobu updatu "disabluje" zakazovací chain "ispadmin_drop_forward".
/ip firewall nat
- Pravidla NAT
- NAT ----| vlastní pravidla(bez označení ispadmin)
- | ispadmin_first_(název chainu)
- | ispadmin_first_(pořadí)_(komentář)
- .
- .
- | ispadmin_first_dstnat
- | ispadmin_remind
- | remind
- | ispadmin_info_pages
- | info_pages
- | ispadmin_service_dstnat
- | ispadmin_trustserver_https__(doména)
- .
- .
- | ispadmin_basic_forward
- | ispadmin_disabled_user
- | ispadmin_last_(název chainu)
- | ispadmin_last_(pořadí)_(komentář)
Opět tato struktura zajišťuje velmi detailní zpracování firewallu v sekci NAT. Zpracování je podobné jako u pravidel firewall filter. Při editaci routeru je opět možné zadat pro konkrétní router "Úvodní NAT" a "Závěrečný NAT", který funguje obdobně jako u pravidel firewall filter.
Každý klient, který má pozastavenou službu Internet, je zapsán do NAT, kde je zajištěno přesměrování jeho provozu na "Informační stránku", kterou je možné editovat v menu Nastavení Info page. Vlastní pozastavení se provádí v Kartě klienta ve službě Internet. Zde je při pozastavení služby také možné vybrat "Důvod pozastavení" a podle této volby se vybere zobrazovaná stránka.
Podmínkou propisování pravidel do NATu je nastavení klíče "mikrotik_nat_disable_users" na hodnotu "1". Nastavení se provádí v Nastavení Syst. nastavení Mikrotik. Pokud je zde nastavena hodnota "0", tak se pravidla do NAT nepropíší. To je možné využít například v případě, že je přesměrování pozastavených uživatelů řešeno jiným způsobem mimo ISPadmin. Volba "mikrotik_nat_disable_users" = "2" zajistí zapisování pozastavených klientů do "address-list" a vytvoření pouze 3 pravidel pro každý důvod pozastavení v NATu místo zapisování 3 pravidel pro každého pozastaveného klienta. Součástí těchto pravidel jsou povolené servery definované v Nastavení Info page Povolené stránky. Na tyto adresy se pak klient může přihlásit a případně provést úhradu nezaplacených faktur.
S propisováním pravidel do sekce firewall nat souvisí propisování NAT pools v ISPadminovi. Tato funkce zajištuje propisování pravidel typu "netmap". Ty vám umožnují provádění DSTNAT 1:1. Aby bylo propisování DSTNAT adresy na routeru aktivní, tak je nutné mít v Nastavení Syst. nastavení Mikrotik mít nastaven klíč "mikrotik_nat_for_end_user" na hodnotu "1". V opačném případě (hodnota nastavena na "0") se DSTNAT do MikroTiku nepropisuje. Pokud je automatické propisování povoleno, tak se přidá pro každého klienta DSTNAT a SRCNAT pravidlo:
/ip firewall nat add action=netmap chain=ispadmin_first_dstnat comment=ispadmin_NAT_1.2.3.4_10.10.0.100 dst-address=1.2.3.4 to-addresses=10.10.0.100
/ip firewall nat add action=netmap chain=ispadmin_last_srcnat comment=ispadmin_NAT_10.10.0.100_1.2.3.4 to-addresses=1.2.3.4 src-address=10.10.0.100
Další sada pravidel zabezpečuje přesměrování klientů na stránku o prodlení platby po splatnosti. Tato funkce se zapíná v Nastavení Info pages Prodlení platby v klíči "remind_pay" na "1". Je možné zadat další parametry ovlivňující tuto funkci: Počet dní pro opakování připomenutí, Počet dnů po splatnosti, Zobrazovat od výše celkové dlužné částky. Tato sada pravidel se zapisuje do sekce "ispadmin_remind" na MikroTikovi.
Poslední sada pravidel se zapisuje do sekce "ispadmin_info_pages" a přesměrovává klienta na Informační stránky definované v Nastavení Info pages Inf. zprávy. Po zadání upřesňujících informací, které klienty zahrnout do seznamu, můžete vytvořit vždy jen jedno aktivní pravidlo.
/ ip firewall mangle
Zde se provádí manglování paketů, kdy klient dostane "packet mark" ve tvaru "ispadmin_ID", kde ID je jedinečné číslo klienta v databázi. Pokud má klient více IP adres nebo má uvedené další "IP rozsahy" v nastavení služby Internet, tak všechny tyto IP rozsahy mají stejný packet mark a tím se omezují ve stejné Queue Tree.
MikroTik - Zpracování MANGLE pravidel
Od verze 3.65 beta1 je kompletně přepracována práce s MANGLE pravidly díky čemuž by se měl zvýšit výkon routeru při větším množství paketů.
Všechna pravidla MANGLE jsou rozdělena do skupin, takže každý paket nemusí procházet všechna pravidla, která jsou v routeru v MANGLE uložena, ale paket v případě že narazí na skupinu (CHAIN) pro kterou je určen, tak potom prochází pouze omezenou skupinu pravidel MANGLE.
Základní skupiny jsou vytvořeny automaticky následovně:
- -- CHAIN ispadmin_first_pre - PREROUTING - aktuálně se zde přidávají pravidla pro automatické upozornění neplatičů (Remind). Prozatím se zde jiná pravidla nepřidávají.
- -- CHAIN ispadmin_first_post - POSTROUTING - tento target je prozatím volný a je možné jej použít pro vlastní potřebu. Pokud potřebujete nějaká pravidla uplatnit v POSTROUTINGu, tak je možné si vytvořit vlastní a přidat je do chainu ispadmin_first_post. Systém tyto Vaše pravidla nijak neovlivní ani nepřepíše.
- -- CHAIN ispadmin_first_forward - FORWARD - tento CHAIN slouží prozatím k povolení servisních MAC adres, které jsou definované v menu Nastavení Administrátoři Servisní MAC. Pro tyto servisní MAC je vytvořen příslušný address list, kde jsou povolené MAC adresy uvedeny. Bližší informace jsou uvedeny v changelogu 3.60 beta1.
- -- CHAIN ispadmin_group_pre a ispadmin_group_post - tyto dva chainy slouží k manglování paketů pro příchozí a pro odchozí provoz pro jednotlivé služby klientů.
Každý tento chain se automaticky rozdělí do menších skupin po blocích IP adres s maskou /26. Tím se výrazně urychlí procházení pravidel u routeru, kde je větší množství klientů, protože každý paket projde předchozími pravidly až se dostane k pravidlu ispadmin_group_pre. Toto pravidlo se automaticky rozdělí (podle IP adresy) například na CHAIN ispadmin_group_pre_192.168.7.0 (počet podskupin je vždy závislý na rozsahu IP adres, které jsou na routeru nastaveny). Následně každý paket, který prochází routerem a má zdrojovou IP adresu z rozsahu 192.168.7.0/26 prochází pouze podskupinu několika pravidel z tohoto rozsahu (mangle v routeru pro ostatní rozsahy tento paket nezajímají) a nemusí procházet například tisíce pravidel (na "větším" routeru). Tím by mělo dojít k výraznému zrychlení zpracování MANGLE fronty. Základní dělení podskupin je maskou /26. Toto dělení je možné změnit v Nastavení Syst. nastavení Mikrotik, klíč mikrotik_mangle_net_block. Zde je možné nastavit masku v rozsahu /24 - /30. Toto rozdělení je nutné zvážit podle počtu použitých sítí na routeru.
V Nastavení Syst. nastavení Mikrotik je klíč mikrotik_default_mangle_first. Zde je možné přidat vlastní sadu pravidel MANGLE, které se zařadí na začátek všech pravidel MANGLE a aplikují se jako první. Pravidla se zapisují ve tvaru "/ip firewall mangle add ........". Každé pravidlo se zapisuje na další řádek. Tato pravidla se aplikují na všech routerech MikroTik.
V Nastavení Syst. nastavení Mikrotik je klíč mikrotik_default_mangle_last. Zde je možné vložit vlastní pravidla, která se zařadí na konec všech pravidel MANGLE a provedou se jako poslední v případě že se neodchytí v žádném předchozím (není využita funkce passthrough) pravidel. Syntaxe je stejná jako v případě mikrotik_default_mangle_first. Tato pravidla se aplikují na všech routerech MikroTik.
U každého routeru je možné definovat vlastní sadu MANGLE pravidel, která se provedou jako první pravidla nebo jako poslední. Při editaci routeru je k tomu připravené pole "Úvodní mangle", který se provede jako první a "Závěrečný mangle", který se provede jako poslední.
Při zápisu všech pravidel je možné použít vlastní komentáře ke každému pravidlu. Komentář musí začínat znakem #. V praxi může pravidlo s komentářem vypadat následovně "/ip firewall mangle add ........ # Můj komentář pravidla" nebo jako nový řádek začínající "# Můj komentář". Při zpracování jsou všechny komentáře před zápisem do routeru odstraněny a slouží pouze lepší orientaci v pravidlech.
Zpracování pravidel je následující:
--- defaultní MANGLE pravidla aplikovaná na všechny routery (mikrotik_default_mangle_first)
--- speciální MANGLE pravidla aplikovaná na konkrétní router
--- CHAIN "ispadmin_first_pre"
--- CHAIN "ispadmin_first_post"
--- CHAIN "ispadmin_first_forward"
--- CHAIN "ispadmin_group_pre"
-- rozdělení MANGLE pravidel podle zdrojové IP adresy a seskupení do skupin
--- CHAIN "ispadmin_group_post"
-- rozdělení MANGLE pravidel podle cílové IP adresy a seskupení do skupin
--- defaultní MANGLE pravidla aplikovaná na všechny routery
--- speciální pravidla MANGLE aplikovaná na konkrétním routeru
Defaultní firewall
V Nastavení Syst. nastavení Mikrotik je možné v položce mikrotik_default_fw definovat výchozí pravidla firewallu, které se propíší na všechny routery, kde je povolen přístup přes SSH. Tímto je například možné omezit sdílení OS Windows, šíření specifických virů zablokováním příslušných portů.
Pravidla která jsou uvedena v defaultním firewallu musí vždy začínat "/ip firewall filter add". Pravidla která nejsou takto definována budou ignorována.
Příklad defaultního firewallu:
/ip firewall filter add chain=forward protocol=tcp dst-port=135-139 action=drop comment="netbios"
/ip firewall filter add chain=forward protocol=udp dst-port=135-139 action=drop comment="netbios"
/ip firewall filter add chain=forward protocol=tcp dst-port=445 action=drop comment="netbios"
/ip firewall filter add chain=forward protocol=udp dst-port=445 action=drop comment="netbios"
/ip firewall filter add chain=forward src-address=10.0.0.0/8 protocol=udp dst-port=53 action=accept comment="DNS"
/ip firewall filter add chain=forward src-address=10.0.0.0/8 protocol=icmp action=reject reject-with=icmp-admin-prohibited
MAC filter
Na každém routeru MikroTik (volitelně i u Ubiquiti) je možné aktivovat MAC filter. Aktivace se provede u routeru MikroTik zaškrtnutím položky MAC filter. Pokud je MAC filter aktivní, tak se do firewallu (sekce firewall filter) propíše jak IP, tak i MAC adresa klienta. Pokud si klient změní IP nebo MAC adresu, tak mu Internet nefungovat nebude.
Systém automaticky načítá MAC adresy z routeru 1x za hodinu. Pokud máte tedy aktivovaný MAC filter a připojujete nového klienta, tak nemusíte MAC adresu klienta vyplnit. Systém v tomto případě (pokud není MAC vyplněna) klienta na firewallu povolí, a až se klient připojí, tak si systém z ARP tabulky na routeru tuto MAC adresu načte a doplní ji ke klientovi. Potom se klientovi "uzamkne" vazba IP a MAC adresy.
Pokud je potřeba v některých případech vypnout automatické načítání MAC adres u určitého klienta, tak místo MAC adresy vyplňte "-" (pomlčku). Tím se IP adresa klienta na firewallu povolí a proto se neprovede uzamčení MAC. Toto se použije v případě, že například na IP adrese se střídají dva počítače (notebooky, PDA, apod.).
Automatické načítání MAC adresy je možné pro všechny uživatele vypnout v globálním nastaveni v Nastavení Syst. nastavení Obecné systémovou proměnnou macfilter_getusermac.
Queue Tree a propisování do konfigurace routeru
Obecně
Systém ISPadmin podle nastavení tarifu provede zapsání pravidel do Queue Tree. Simple Queue není podporována protože neumožňuje nastavit takové parametry jako Queue Tree. Systém zadané rychlosti v nastavení tarifu před zapsání do Queue Tree "násobí" hodnotou rate_exponent. Tuto hodnotu je možné nastavit v Nastavení Syst. nastavení Obecné. Hodnota rate_exponent udává, jakou rychlost klient skutečně dostane přidělenou. Jako výchozí hodnota je nastaven rate_exponent na 1.2, takže při rychlosti 1024 kbit/s je do Queue Tree propsána rychlost 1228 kbit/s. Tímto navýšením rychlosti tarifu se v podstatě klientovi "pokryje" režie protokolu a případná ztrátovost paketů, která se na WiFi může objevit. Zákazník je spokojen, protože většinou dostane vyšší rychlost než má uvedenou na smlouvě. Někdy je totiž nemožné zákazníkovi vysvětlit, že pokud má rychlost 1024 kbit/s, tak se mu z důvodu režie protokolu v prohlížeči nikdy neukáže rychlost stahování 128 kB/s.
V Nastavení Tarify je možné nastavit veškeré parametry tarifu jako jsou rychlosti, typ linky, burst, agregace, apod.
Nastavení "global-in" vs. "global-out"
!! global-in, global-out - zastaralé, od verze OS 6.x se používá jednotná hodnota global !!
U každého routeru je možné vybrat v pop-up menu "Queue type". Toto nastavení ovlivňuje jak se bude zpracovávat Queue Tree. Možnosti jsou "global-in" nebo "global-out". Toto nastavení je zásadní pro správné fungování routeru. K pochopení je nutné důkladně prostudovat cestu paketu podle schématu pro RouterOS 6.x:
Zde odkaz na schéma odpovídající RouterOS 3.x a 4.x.
Pokud se QoS (Quality of Service) provádí na centrálním routeru, tak je tato volba neaktivní, protože se MANGLE řídí nastavením centrálního routeru. Pokud se provede změna nastavení routeru (například z global-in na global-out), tak se nejdříve Queue Tree a MANGLE kompletně vymaže a nastaví se znovu podle nového nastavení (To platí jen pro starší verze OS < 6.x. U novejších se používá jen parametr Global). Toto se provádí z důvodu "pročištění" všech tabulek MikroTiku tak, aby nedošlo k nesprávnému zapsání pravidel.
Jednotlivé možnosti:
global-out
Výchozí nastavení routeru.
Pakety směrem od klienta (dst-address) se v MANGLE markují v POSTROUTINGU.
Pakety směrem ke klientovi (src-address) se v MANGLE markují v PREROUTINGU.
Toto nastavení se používá v případě že se na routeru používá NAT, protože se pakety správně značkují a jsou v POSTROUTINGU vidět správné adresy klientů a nikoliv jejich přeNATované veřejné adresy.
Nevýhodou je to že každý paket musí projít celým firewallem, čímž se zvyšuje zátěž routeru. Ovšem v případě že se na routeru provádí i NAT, tak je to jediná možnost jak na klienta aplikovat QOS a omezení datového toku.
global-in
Pakety směrem ke klientovi (src-address) i od klienta (dst-address) se v MANGLE markují v PREROUTINGU.
Použitím global-in se snižuje zátěž routeru.
Tuto volbu však nelze použít v případě že se na routeru provádí i NAT. V tomto případě by se u klienta neomezoval download, protože pakety vstupují do Firewallu ještě NATované (pod veřejnou adresou) a nejsou tedy správně markovány a proto se nezařadí do správné Queue Tree.
Lokální a centrální shaping
U každého routeru MikroTik je možné vybrat z pop-up menu QoS provádět na routeru router, na kterém se shapování provádí. Pokud je vybraná volba Lokálně, tak se QoS provádí přímo na tomto routeru. Při výběru jiného routeru z menu se provádí shaping klientů na cílovém routeru. Pokud se nastaví shapování na jiném routeru (nikoli lokálně), tak se v hlavičce routeru zobrazí poznámka, že se klienti na tomto routeru shapují na routeru jiném. Při přidání nebo editaci služby Internet se v případě shapování klientů na jiném routeru zobrazí při výběru routeru poznámka, kde je uvedeno na kterém routeru se shaping provádí.
Lokální shaping má výhodu v tom, že klient je omezen už na nejbližším přístupovém bodě a celková zátěž shaperu se sníží, protože na každém přístupovém bodě se omezuje pouze pár klientů. Nevýhodou je však to, že pokud používáme agregované tarify, např. pokud na přístupovém bodě máme 3 klienty s agregovaným tarifem 1:10, tak při tomto počtu klientů je výsledná agregace prakticky 1:3. V tomto případě je lepší použít centrální shaping, který vlastně na jednom routeru shapuje klienty například z pěti AP (například v rámci města). Tím se na jednom routeru sejde více klientů a agregace se už uplatní. Nevýhoda centrálního shapingu je v tom, že na router musí být použit výkonnější HW, který je schopen shapovat větší počet klientů.
Lokální a centrální firewall
U každého routeru MikroTik je možné vybrat z pop-up menu Aplikovat pravidla firewallu. Pokud je vybraná volba Lokálně, tak se firewall provádí přímo na tomto routeru. Při výběru jiného routeru z menu se provádí firewall klientů na cílovém (nadřazeném) routeru. Pokud se nastaví dělání firewallu na jiném routeru (nikoli lokálně), tak se v hlavičce routeru zobrazí poznámka, že se firewall klientům na tomto routeru dělá na routeru jiném.
Nastavení queue-type
Na routeru MikroTik je možné nastavit systém "řízení datového toku", který je důležitý pro správnou funkci a správné zajištění kvality připojení. Nastavení se provádí v menu Queues / Queue type.
!! Toto nastavení neprovádí ISPadmin sám, ale je na zvážení a nastavení administrátora. ISPadmin při zapisování pravidel queue tree vyuziva typ "default". Proto pokud budete preferovat typ "sfq" , nastavte si jej u třídy default. !!
Typy Queues jsou:
PFIFO - Packet First In First Out
PFIFO a BFIFO posílá pakety tak jak příjdou. To znamená že paket, který přišel první také nejdříve odchází. Toto nastavení "QueueType" není pro shapování vhodné, protože při takovémto principu není možné zajistit smysluplný shaping. Dochází zde k "zahlcování” linky, vysoké odezvy... Tento typ QT je nastaven jako defaultní a je potřeba jej změnit!
SFQ - Stochastic Fair Queueing
Je jednoduchý algoritmus pro zajištění rovnoměrného využití sítě všemi aktivními datovými proudy. Nezajistí však férové využití mezi uživately či programy ale např. mezi jednotlivými TCP spojeními. Vytváří více front, do kterých rozděluje jednotlivá TCP spojení a UDP proudy podle hashovací funkce. Tyto fronty jsou zpracovávány algoritmem "round robin". Každé spojení tak má šanci na vyřízení a jeden objemný datový proud nezahltí většinu kapacity linky. Hashovací funkce se v čase mění a jsou tak řešeny kolize (dva proudy ve stejné frontě dlouho nezůstanou).
RED - Random Early Detection
Je určen pro vytížené páteřní spoje. Podle vypočítaných statistik snižuje zátěž zahazováním paketů, aby zamezil zahlcení linky. Čím blíže je celkový traffic maximální hodnotě, tím více jsou pakety zahazovány. Tento algoritmus neposkytuje žádné možnosti shapingu a chová se ke všem datovým proudům stejně. Na vytížených strojích ovšem nemá tak vysoké výpočetní nároky a udržuje co největší průchodnost a co nejnižší zpoždění linky.
PCQ - Per Connection Queue
Usnadňuje omezení většího počtu nesdílených linek. Je podobný SFQ, ale má některé funkce navíc. Umožňuje využívat identifikátorů jednotlivých datových toků (dst-address | dst-port | src-address | src-port) a dokáže pomocí pcq-rate nastavovat rychlostní omezení pro jednotlivé toky.
Tarif HALF-DUPLEX (HD)
Při použití tohoto tarifu se taktéž omezí upload a download. Zároveň se obě tyto QT vloží pod nadřazenou QT, která zajistí, že klient může stahovat samostatně 1024 kb/s , odesílat 512 kb/s, ale pokud spustí zároveň stahování a odesílání, tak celkový součet těchto rychlostí nepřekročí 1024 kb/s. Výhodou je, že zákazník si při otestování rychlosti spustí test, který testuje samostatně download a samostatně upload, takže vše je OK. Pokud si však klient spustí stahování a zároveň například nějaký torrent, který odesílá, tak nebude jeho celkový provoz v obou smeřech vyšší než 1024kb/s.
Pro nastavení tohoto typu linky je download, v našem případě ispadmin_7837_down na hodnotě "0". To je v pořádku, protože rychlost je omezena nadřazenou "queue ispadmin__7837". Tímto se šetří CPU routeru, protože se QT omezuje pouze jednou v nadřazené QT. Rychlost nadřazené QT je vlastně shodná s rychlostí downloadu, tak není nutné jej samostatně omezovat. Pokud by linka měla rychlost 1024/1024, tak by byla nastavena rychlost "0" i pro QT ispadmin_7837_down. QT technicky nejsou potřeba, ale můžou být (i s nulovou rychlostí) zapsány kvůli počítání dat, kreslení grafů a statistik.
Sdílená (agregovaná) linka HD
Při použití této agregované linky se nastaví nadřazená linka, která se vypočítá podle vzorce:
(download * počet klientů) / agregace = celková agregovaná linka
Příklad v praxi - v případě agregované linky 1:10 o rychlosti 1024/512 při počtu 20 klientů se vypočítá celková linka následovně:
(1024 * 20) / 10 = 2Mbit/s
Na MikroTiku se tedy založí linka 2 Mbit/s (pokud je nastaven rate_exponent, pak jsou hodnoty download a upload násobeny tímto číslem) a do ní se zařadí všichni klienti s touto agregací. Celková "agregační" skupina se dynamicky nastavuje podle aktuálního počtu klientů. Takže pokud v agregační skupině bude klientů 40, tak bude celková agregační skupina mít rychlost 4Mbit/s. Každý klient, který je zařazen do této agregační skupiny, je omezen maximální rychlostí 1024/512, takže žádný klient nepojede vyšší rychlostí jak 1024/512 (pokud má nastaven burst, využije se toto chvilkové navýšení) s tím, že se sčítá upload a download (stejně jako u klasického HD tarifu) a zároveň všichni tito klienti dohromady nepřekročí rychlost 2Mbit (opět v uploadu a downloadu dohromady).
V našem příkladu je zobrazena QT sdíleného HD tarifu. Jedná se o tarif 1024/512 kb/s s agregací 1:2. Podle výše uvedeného vzorce je vypočtena "nadřazená" linka "shared_629". Do této linky jsou zařazeni tři uživatelé, kteří jsou omezeni rychlostí 1024/512 a tento download + upload je ještě celkově pro každého klienta omezen rychlostí 1024 kbit, která omezuje součet download + upload (např. Test_user1__7837).
Sdílená linka FD
Pokud je agregovaná linka typu FD, tak se provede v agregační skupině oddělení downloadu od uploadu. To znamená, že výpočet rychlosti se provádí pro každý směr zvlášť. Takže v případě agregované FD linky 1024/512 s agregací 1:10 a počtem 20 klientů se provede pro download následující výpočet rychlosti:
download = (1024 * 20) / 10 = 2Mbit/s upload = (512 * 20) / 10 = 1Mbit/s
Založí se tedy agregační skupina zvlášť pro download (2Mbit) a pro upload (1Mbit). Do těchto dvou skupin se zařadí download a upload všech klientů v této agregační skupině.
Zde je zobrazen sdílený HD tarif 1024/512 kb/s s agregací 1:2. V tomto případě je zvlášť vypočtena rychlost pro download (shared_629_down) a pro upload (shared_629_up). Do těchto dvou agregačních linek se zařadí odděleně upload a download všech klientů, kteří mají tento tarif.
Zařazení klientů do speciální Queue Tree
V některých případech je potřeba zařadit klienty do speciální QT, například rozdělit provoz na routeru do tří skupin, kde každá skupina reprezentuje jeden spoj např. do další vesnice. Každý tento spoj má definovanou kapacitu (např. 2 Mbit).
V tomto případě je na MikroTiku potřeba vytvořit speciální QT pro každou skupinu a nastavit jim příslušnou rychlost, případně jiné parametry této QT nastavit ručně, protože každý provider má jiné požadavky, anebo je potřeba vytvářet hlouběji zanořené struktury QT, které není možné vytvářet automaticky.
Na MikroTiku je potřeba vytvořit pojmenované QT (které se zanesou do systému). Pokud se bude QT jmenovat např. VIP, tak je potřeba na MK vytvořit:
VIP – do této QT se budou řadit klienti, kteří mají HD tarif (upload a download je sdílený)
VIP_IN – do této QT se bude řadit download klientů pokud mají nastaven FD tarif
VIP_OUT – do této QT se bude řadit upload klientů pokud mají nastaven FD tarif
Na příkladu jsou vytvořeny dvě skupiny pro klienty, USERS a VIP. Na každou skupinu jsou nastaveny rychlostní parametry podle potřeby, kde se nastaví celková rychlost skupiny a rychlost pro download a upload, případně je možné zde alokovat další omezení jako třeba omezení P2P sítí nebo počtu spojení...
Celý strom může být vytvořen podle potřeby. Systém "zajímají" pouze "koncové větve" celého stromu, kam se budou řadit klienti. V našem případě pro VIP je to VIP, VIP_IN a VIP_OUT. Je jedno v jaké úrovni se koncová "větev" stromu nachází.
Nyní je potřeba systému ISPadmin „sdělit“, že existuje speciální QT VIP. Toto lze nastavit konkrétnímu routeru (v menu Routery) v záložce Queue tree. Zde je potřeba přidat speciální QT „VIP“. QT VIP_IN a VIP_OUT není potřeba zadávat. Existence těchto QT se předpokládá již při zadání QT VIP. Pokud není na MK založena QT VIP_IN a VIP_OUT (Syntaxe je v tomto případě důležitá. Je potřeba použít stejný název, jako máte založený v ISPadminovi i na MikroTikovi, a navíc přípony _IN a _OUT musí být velkým písmem.), tak se budou klienti, kteří mají zadaný tarif FD řadit do QT "global-out" (v novější verzi OS Mikrotik > 6.x již jen třída "global") mimo tento "strom".
Kliknutím u routeru na ikonu "Otestovat spojení" se provede test QT, který testuje tyto speciální Queue Tree a měl by proběhnout správně.
Pokud jsou správně nastavené QT na routeru a test proběhne korektně, tak je možné u každého klienta nastavit zařazení do této speciální QT. To je možné při zadání nebo editaci služby Internet v kartě klienta. Při editaci nebo přidání služby Internet výběrem nastaveného tarifu se (v případě, že je agregace 1:1) objeví další pop-up menu Queue tree, kde je možné vybrat QT, do které se klient zařadí. Výběr QT je možný pouze v případě že je agregace 1:1. V opačném případě se výběr speciální QT NEZOBRAZÍ. Je to z toho důvodu, že pokud je klient zařazen v agregovaném (sdílenem) tarifu, tak již není možné klienta zařadit do speciální QT, protože klient nemůže patřit do agregované linky a zároveň být zařazen do speciální QT. Technicky není totiž možné 2x manglovat paket klienta. Paket může mít pouze jeden packet mark a tím může logicky patřit pouze do jedné linky (agregovaná nebo sdílená).
Pokud tedy přiřadíme klienta Test_user1 do QT VIP, tak se v MikroTiku zařadí následovně:
Všichni klienti mají tarif 1024/512 s agregací 1:1 a jedná se o tarif HD. Klient Test_user1 a Test_user2 je zařazen do QT VIP. Klient test_user3 se standardně zařadí do "global-out", protože nemá nastavenou žádnou QT. Protože se jedná o FD tarif, tak se download a upload klientu rozdělí do VIP_IN a VIP_OUT
Pokud bude tarif nastaven na HD, tak se klienti zařadí následovně:
Klienti Test_user1 a Test_user2 jsou zařazeni v QT VIP a nikoli VIP_IN a VIP_OUT jako u HD tarifu. Všichni klienti mají nastaven klasický HD tarif, kde je omezen download a upload nadřazenou QT (například Test_user1__7837). Klient Test_user3 je zařazen v "global-out".
Výše uvedené postupy je možné kombinovat podle potřeby. V našem příkladu mají klienti Test_user1 a Test_user2 nastaven tarif FD s agregací 1:1 a rychlostí 1024/512. Klient Test_user3 má nastaven HD tarif 256/256, proto je zařazen v QT VIP.
mikrotik_preffered_queue - V některých případech je potřeba všechny klienty řadit do určité QT. Například v případě, že potřebujeme přesně nastavit celkovou rychlost linky. Toto je možné nastavit předchozím způsobem zařazení každého klienta do určité QT. Toto je však poměrně pracné a je možné se dopustit chyby tím, že některého klienta nezařadíme do QT a potom bude automaticky zařazen do global-out. Z tohoto důvodu je možné v Nastavení Syst. nastavení Mikrotik klíčem mikrotik_preffered_queue nastavit QT, do které se automaticky zařadí všichni klienti v případě, že nejsou explicitně zařazeni předchozím způsobem do jiné QT. Opět platí, že pokud nastavíme mikrotik_preffered_queue "VIP", tak musí být na routeru vytvořena QT VIP, VIP_IN, VIP_OUT. Defaultní hodnota klíče mikrotik_preffered_queue je global-out.
Ovládání z příkazové řádky
Update konfigurací se provádí každých 5 minut. Pokud na routeru nenastala nějaká změna, jako je například změna tarifu klienta, změna nastavení routeru atd, tak se update konfigurace na tomto routeru neprovádí. V případě že se provádí update konfigurace, tak se přenáší pouze změny a neprovádí se celé vymazání a opětovné nahrátí konfigurace. Systém si z konfigurace MikroTiku stáhne aktuální pravidla a porovná je s vlastní konfigurací, která by v routeru měla být a změny přenese na router. Tím se minimalizuje počet zápisů na flash paměť routeru.
Pokud je potřeba provést update konfigurace okamžitě (nikoli do 5ti minut), tak je možné toto provést z příkazové řádky spuštěním příkazu:
/usr/local/script/ispadmin/update_conf.pl
Pokud spustím příkaz pro update konfigurace bez parametru, tak se zobrazí nápověda se seznamem routerů včetně jejich ID:
Automatický režim podle stavu systému (tj. updatují se jen ty routery, které byly ovlivněny nějakou změnou v systému - přidání služby, změna parametrů služby apod.):
/usr/local/script/ispadmin/update_conf.pl auto
Vygeneruje nové DOCSIS soubory pro všechny modemy:
/usr/local/script/ispadmin/update_conf.pl gendocsis
Vygeneruje nové DOCSIS soubory pro router s uvedeným ID:
/usr/local/script/ispadmin/update_conf.pl gendocsis <ID routeru>
Nahrátí konfigurace na všechny routery:
/usr/local/script/ispadmin/update_conf.pl reload all
Nahrátí konfigurace na router s uvedeným ID:
/usr/local/script/ispadmin/update_conf.pl reload <ID routeru>
Vynucené nahrátí konfigurace na router s uvedeným ID:
/usr/local/script/ispadmin/update_conf.pl reload <ID routeru> force
Nové generování konfigurace na všech routerech - používat velmi opatrně, způsobí značné vytížení systému (master reset - způsobí vymazání všech pravidel managovaných ISPadminem ze všech částí mikrotika a opětovné nahrání):
/usr/local/script/ispadmin/update_conf.pl master_reset all
Nové generování konfigurace na routeru:
/usr/local/script/ispadmin/update_conf.pl master_reset <ID routeru>
Dostupné routery:
ID | IP | Stav | Stav DHCP | Název routeru |
91 | 88.103.224.215 | online | stopped | home |
101 | 10.0.0.1 | online | stopped | mk1 |
Pokud potřebujete provést update routeru číslo 91 (interní jedinečné číslo routeru zobrazované v hlavičce routeru ID: xxx), tak spustíte příkaz:
/usr/local/script/ispadmin/update_conf.pl reload 91 force
Výsledek vypadá následovně:
16.2. 2009 13:24:30 home --- Nastavuji router home, IP 88.146.172.90, ID 91
16.2. 2009 13:24:30 home --- Kontroluji nova sitova rozhrani
16.2. 2009 13:24:30 home --- Stahuji data z routeru
16.2. 2009 13:24:32 home --- Nastavuji omezeni klientum
16.2. 2009 13:24:32 home --- Aktualizuji konfiguraci routeru 1/2 ( 3360 b - rows 10 )
16.2. 2009 13:24:32 home --- Aktualizuji konfiguraci routeru 2/2 ( 360 b - rows 2 )
16.2. 2009 13:24:32 home --- Provadi se kontrola zavislosti QTREE
16.2. 2009 13:24:33 home --- Update routeru 91, IP 88.146.172.90, home dokoncen
Pokud potřebujete rozšířené debugovací informace, nastavte v Nastavení Syst. nastavení Mikrotik klíč "mikrotik_qt_debug" na "1".