Expert IT — April 20, 2016 at 7:29 pm

Programator de nevoie

by

Alexandru Gaiu, Solution Engineer la Allied Telesis

Povestea de azi începe cu o buclă. Nu, nu este o buclă ce implică și o panglică ci una dintre acele temute bucle de rețea. Când am văzut toate echipamentele clipind sălbatic din led-uri trebuie să recunosc faptul că am început să râd. Asta a fost probabail cea mai ciudată buclă pe care am reușit să o fac vreodată, deși mi-au trecut ceva echipamente prin mână.

De obicei buclele sunt apanajul rețelelor locale formate din switch-uri.
Există și posibilitatea unei bucle într-o rețea rutată, nu spun nu, dar a ceea se termină repede și în general de la sine.Buclele de nivel doi pe de altă parte, dacă nu sunt oprite de ceva din exterior continuă și se amplifică până când ceva cedează, dar divaghez
prea mult. Bucla de față s-a format prin tuneluri L2TP/ IPSec ce traversau 5 routere și 3 switch-uri. Cu toate că era evidentă de când am făcut desenul rețelei, nu m-am putut abține să nu râd văzând un broadcast storm propagându-se prin tuneluri criptate.
După momentul inițial de veselie, a trebuit să revenim la realitate fiindcă problema trebuia rezolvată într-un fel sau altul, fără ajutorul spanning-tree-ului, nu că aș fi vrut să mă bazez pe el pentru blocarea vreunui tunel.

Am reușit să rezolv problema fără a-i spune clientului că trebuie folosită metoda manuală de redundanță folosind un feature ușor necunoscut al echipamentelor noastre. Toate echipamentele Allied Telesis din seriile x, GS900MX precum și noile NextGen Firewall-uri au un motor de scripting extrem de prietenos pus acolo special pentru astfel de cazuri.
În cazul de față această facilitate mi-a permis să mențin oprite tunelurile secundare atâta timp cât cele principale pot transporta trafic. Dacă se întâmplă ceva acolo, cele secundare sunt ridicate și în plus totul a putut fi făcut într-o manieră care să nu permită formarea buclelor.

Facilitatea de scripting de la Allied Telesis nu necesită cunoștințe de programare.
Se bazează pe linii de configurare identice cu ce ați scrie în mod normal pentru echipamentul cu pricina, un set de triggere- mecanisme ce detectează anumite evenimente și permit lansarea bucăților de configurație la momentul oportun, și bineînțeles puțină imaginație:). Dacă treaba e ceva mai dificilă, și nu se poate rezolva cu cele de mai sus, sau setul de triggere este insuficient pentru ce avem de făcut, putem să folosim armele mari. Sistemul de scripting poate rula script-uri bash complete ce permit crearea de fișiere, extragerea de informații din fișiere sau chiar din mesaje de log sau output ale echipamentului și compunerea lor în comenzi către sistem.

În trecut am reușit să folosesc acest feature cu succes pentru backup sau modificarea de la distanță a configurațiilor echipamentelor, modificarea dinamică a listelor de acces sau crearea de legături duble pentru echipamente ce nu aveau suport software pentru acest tip de redundanță.

În încheiere mă voi folosi de una dintre sintagmele favorite ale departamentului de marketing și anume “ pay as you grow”.
Culmea e că nu are nici o legatură cu situația de față, dar nu pot să nu spun ceva despre departamentul de marketing într-un articol, și în plus de data asta e de bine fiindcă e gratis, nu plătiți nimic, e deja acolo, în echipament. Când e nevoie de o funcție neprevăzută în operarea rețelei, există o șansă destul de bună ca motorul de scripting să poată înlocui o funcție ce nu a fost cerută de la început.