Tag Archives: ma-sa

ios-xe port channels & switchports

Am avut prin August un mic proiect sa bag niste Layer 2 peste balta la un client. In general, daca nu am constrangeri, folosesc Juniper pe switch-uri managed L2/L3 din motive de obisnuinta, familiaritate etc.

Anul asta, din cauza de pandemie si timpi de livrare mari, peste 4 luni in medie, am pus niste Cisco Catalyst cu IOS-XE.

Mno, pentru redundanta & stuff, sunt mare fan bundle-uri de X x 1GE sau X x 10GE (in functie de nevoi & stuff).

Pe Juniper, la modul cel mai simplu, un port channel se cheama o interfata ae (aggregated ethernet) si se configureaza in doi pasi.

Prima oara ii zici la interfata fizica din ce port-channel face parte:

ge-0/0/0 {
    description "to xyz vmnic0";
    ether-options {
        802.3ad ae1;
    }
}

ge-1/0/0 {
    description "to xyz vmnic1";
    ether-options {
        802.3ad ae1;
    }
}

Si dupa configurezi si interfata de port channel:

description "to xyz";
mtu 9216;
unit 0 {
    family ethernet-switching {
        interface-mode trunk;
        vlan {
            members [ v101, v121 ];
        }
    }
}

Easy peasy lemon squeezy.

Cu Cisco nu prea am avut treaba in ultimii ani, si am zis ca hei, trebuie sa fie la fel din ce mai tineam eu minte de and era la moda sa fac PAgP pe IOS clasic.

E, e cam la fel si pe IOS-XE. La nivel de interfata ii zici:

interface TenGigabitEthernet1/1/3
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!
interface TenGigabitEthernet1/1/4
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!

Si dupa configurezi interfata PortChannel1

interface Port-channel1
 switchport trunk allowed vlan 101-121
 switchport mode trunk
!

E, si te astepti ca la un “sh ru” sa vezi prin configuratie fix acelasi lucru.

Dar nu, IOS-XE e cu “surprise motherfucker”, si zice asa:

interface Port-channel1
 switchport trunk allowed vlan 101-121
 switchport mode trunk
!
interface TenGigabitEthernet1/1/3
 switchport trunk allowed vlan 101-121
 switchport mode trunk
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!
interface TenGigabitEthernet1/1/4
 switchport trunk allowed vlan 101-121
 switchport mode trunk
 channel-protocol lacp
 channel-group 1 mode active
 lacp rate fast
!

Cand am vazut asta, zic ma oi fi fost io obosit si am scris gresit, si am bagat configuratia si la interfata si la port channel. Si m-am mancat in cur sa “repar” de la distanta treaba asta. Si am sters configuratie de switchport si trunk de pe te/1/1/3. N-a fost chiar cea mai buna idee a mea.

Dupa ce am reparat printr-o sesiune de TeamViewer problema, in sensul ca am facut de la zero toata configuratie de port channel, m-am dus sa ma culc ca se facuse tarziu la mine.

Fast forward vreo 2-3 saptamani, iar a trebuit sa umblu un pic la switch-uri sa mai adaug ceva VLAN-uri, si bam, iar configuratie de switchport pe interfetele din port chanel. Si eram, ba da am sters si-am pus la loc. Ce mortii ma-sii se intampla. Si atunci mi s-a aprins un pic beculetu, si zic ia sa vad daca adaug un VLAN pe interfata de port channel, se pune si in configuratie la interfetele care formeaza port channel-ul?

Raspunsul e da. Si uite asa am invatat eu ca IOS-XE mirroreaza configuratia de pe PortChanel pe interfetele prinse in port chanel.

Nu e mare inginerie treaba asta cu un port channel intre 2 switch-uri, dar lucrurile par complicate cand nu prea ai parte de experienta pe niste echipamente si lucrezi cu ele doar din joi in pasti. Exista si un termen sa zicem stiintific pentru asta: skill fade. Si problema e ca ti se pare ca stii, da de fapt nu prea :(

google cloud support

Una din corporatiile pe unde ma mai duc la produs are chestii in GCP. Si pe acolo am facut si eu un proiect sa tin cateva VM-uri, nimic complicat. VM-urile alea trebuie sa vorbeasca cu niste componente care sunt intr-una din locatiile clientului. Pentru asta am facut un tunel IPSec intre GCP si locatie.

Asta se intampla la inceputul lui August. Acu vreo saptamana, intr-o luni, ma suna omenii din locatia respectiva ca “nu mai merge ping-ul din google la ei in locatie”. Ma uit si eu, si chiar nu mai exista conectivitate. Ma uit pe acolo prin dashboard-ul de la GCP, toate verzi. Ma uit la mine, toate verzi.

Au astia la GCP un “Connectivity tester” si alea zicea ca poa sa dea ping. Nu chiar pana la capat, da a dedus el ca ar trebui sa mearga. Nu vroia ping-ul ala sa mearga neam. Am sapat pe acolo prin loguri pana mi-au sarit mucii, nimic util. Zic bine, hai sa pun tcpdump sa vad ce si cum.

Dau ping din locatie intr-un VM din GCP, ajung pachetele la ala, raspunde la ele, la mine in locatia ajungea fix o pula. M-am scremut un pic sa fac o captura de pachete la mine, ca firewall-urile astea enterprise sunt la fel de utile ca igrasia cand ai de debugat, ca abia poti vedea una alta. Nimic util, nici un pachet.

Zic trec la planul B, imi fac un Linux cu Strongswan si vad pe ala ce se intampla, ca macar pot sa-l debughez calumea. Mai fac repede un tunel cu GCP, se ridica imediat, dau ping, la fel, ajungeau cum trebuie pana acolo, cand sa se intoarca… se intorceau prin gura.

Ma zic, nu e de la mine, hai sa vad daca e de la astia. Ca na, se mai strica si cloud-ul din cand in cand si zic poate pot sa-mi zica si mie daca din “Google Cloud VPN” ies pachetele cum trebuie, ca era pe traseu singura necunoscuta.

Dau acolo $100 sa pot sa deschid caz, fac cazul cu toate astea si in vreo doua-trei ore asa imi raspunde un baiat ca s-a uitat el prin loguri si problema e ca e de la mine, ca nu stie VPN-ul de la mine sa faca tunele ESP, ca zice clar in loguri ca “ESP_TFC_PADDING_NOT_SUPPORTED” si ca sa il configurez sa faca tunele cum trebuie. Si ii zic, bosulache, ia fii atent aici schema: pleaca pachetele de la mine, ajung la voi, VM-ul meu raspunde la ele, dar de la voi ciuciu, deci nu ca nu fac eu tunelul cum trebuie. Si i-am explicat si ce cacat e TFC, sa nu mai aibe idei pe langa daca mai vede asta vreodata. Asa mult imi displac oamenii astia de la suport pe care-i doare in pula de problema ta si cauta repede “error” in loguri ca poate, poate e de la tine ceva si nu trebuie ei sa faca nimic.

Aproape o zi liniste, gen vreo 21-22h de liniste de puteai sa auzi pachetele pe cablu. Mai bag o fisa si upgradez la $250 sa pot sa apas pe butonul de escalate, in ideea ca o sa ma bage cineva in seama. Intr-o ora-doua asa imi raspunde iar baiatul asta si zice ca da, interesant, dar poate e din cauza ca am firewall pus si de aia nu merge. Ii trimit screenshot cu “n-am nimic pus”, si dupa mai raspunde tot asa un pic cu intarziere ca este posibil sa necesite investigatii amanuntite treaba asta si sa completez un template de sloturi disponibile sa facem un call cu screen sharing sa se uite si aia sa vada ce si cum.

Ne intelegem la un slot orar pe la 10 noaptea la mine si ma paseaza la o alta echipa. Se face ora, intra doi in call si le arat exact ce si cum, fix cat puteam sa vad eu loguri in GCP acolo. O ora jumate si dupa ce am trecut cred ca de 4-5 ori prin fix aceleasi meniuri, loguri, pasi. M-au intrebat si astia daca n-am firewall, le-am aratat ca nici macar iptables nu aveam pe una din masini. Astia foarte “thorough” asa, au vrut sa vada de cel putin vreo 2-3 ori daca chiar n-am firewall pe masini. Si intr-un final mi-au zis ca ei n-au acces asa sa vada ce se intampla cu VPN gateway-ul lor si daca scoate pachete cum trebuie.

Dimineata imi dau mail ca “fii antena, tre sa dezactivezi VPC mode auto, ca de aia nu-ti merge ca ai facut VPN-ul gresit”. Zic babaieti, mergea de vreo luna jumate pana cand brusc n-a mai mers. Si a doua la mana, mai am un VPN facut tot asa, fix in proiectul asta care ala n-a sughitat deloc. Nu mai bine reparati voi ce-ati stricat si sa faceti sa mearga lucrurile asa cum erau inainte?

Si ce sa vezi, alt mesaj cu “Nu, la noi e ok, daca schimbi cum ti-am zis o sa mearga, ca asa cum e acum nu are cum sa mearga”. Le mai dau o data screenshot-ul ala cu alt VPN mergand, l-au ignorat cu succes si au tinut-o pe a lor.

Pentru ca statea productia, am facut ce vroiau ei si a luat-o. Doar, doar sa nu se uite la ei sa vada ce sloboz au stricat si sa repare.

Din tot ce am investigat si asa, parea destul de clar ca era o problema de rutare pe undeva prin burta lu’ GCP, ca pachetele ajungeau teoretic unde trebuie, doar ca nu erau criptate mai departe si trimise la mine.

Am trecut in 3 zile prin 4 oameni, unu’ cu cea mai mare durere posibila in pula, altii doi un fel de Lolek si Bolek, ei nu stiau, da erau convinsi ca nu poa’ sa fie de la ei, si un al treilea la care am tipat ca si asta era “noi nu gresim”. Doar, doar sa nu dea un tcpdump la ei sa vada daca ies pachetele cum trebuie sau daca nu ies, sa vada de ce nu ies.

M-au umplut de spume, ca in primul rand i-a durut fix in cur de problema, probabil daca nu dadeam mai multi bani sa pot apasa butonul de escalate raspundea baiatul ala cand ii mai venea lui cheful, probabil peste cateva zile dupa ce-si facea siesta. In al doilea rand au facut tot posibilul sa nu investigheze ceva pe partea lor. In al treilea rand ca mi-au dat un workaround pe post de solutie, desi nu cred ca a fost vreun mesaj in care sa nu le amintesc ca “a mers si brusc n-a mai mers”. Si in al patrulea rand pentru “stonewalling” si faptul ca desi le aratam ca merge ce ziceau ei ca nu merge, insistatau ca nu are cum – ba cu poza in fata gen, ei erau cu “nu merge, ti se pare”.

Ca si cu multe altele, e bine sa n-ai probleme cu cloud-ul, ca daca ai, o sugi cu gratie ca nu-i pasa nimanui de la suport sa-ti rezolve problema.

sunburst

Niste unii, pe nume SolarWinds si-au furat-o intr-un mare fel: niste oameni si-au adaugat niste cod nu tocmai prietenos in directoarele cu surse si cand astia au dat build, au dat la clienti si niste malware sa aiba. Ca doar la cati bani costa produsele astora, merita lumea si un pic de bonus. Din toata distractia asta pot sa trag cateva concluzii super rapide:

  • pula proces de code review la aia, probbil scriu cod in notepad pe share-uri de windows sau ceva
  • pula merge request-uri si alte procese din astea minime de bun simt. oare or folosi vreun soft de version control sau e un share undeva si au directoare cu “final_final_version_1_really_final_2_final”?
  • daca se termina “build”-ul il impacheteaza si-l dau la clienti. Cam cum fac toti astia ultimii ani cu codul: if it builds, it ships.

Printre aia de si-au furat-o sunt si FireEye, cu ale caror produse m-am dat si eu si fac o treaba buna sa analizeze malware si sa zica ce si cum. Mi se pare ironica treaba asta, ca astia de la FireEye erau pe cai mari cum cautau ei chinezi cu binoclul pe google maps si scriau zeci si sute de pagini despre APT-uri si alte minuni si acu si-au luat-o intr-un mare fel. Din punctul meu de vedere meritau sa si-o ia si mai grav pentru simplu motiv ca au uitat regula numarul unu din interne: “oricat de jmecher te crezi, tot timpul o sa fie unul mai jmecher ca tine”. Asa e cand te apropii prea tare de soare, o sugi.

Microsoft a sarit de cur in sus ca vai, dar nu se face asa ceva, spionam, spionam, dar ceste este cu atat de mult “collateral damage” si alte abureli din astea. Microsoft care sunt aia cei mai vocali cand vine vorba de publicarea de vulnerabilitati, ca ei vor ca inainte sa le zici direct lor ca scriu cod prost si sa aiba timp sa puna niste scotch pe ici pe colo si abia dupa nustiucat luni in functie de cum au ei chef ca sa nu se faca de cacat, sa scoate un update de Windows sau de ce produse mai au ei, si abia dupa aia sa faci publica vulnerabilitatea, ca asa este “responsabil”. La fel si astia, si-o ard prost ca sa ascunda faptul ca scriu cod cu picioarele.

Mno, s-o suga toti astia de zic ca sunt cu security da’ ii pisa altii in freza de nu se vad.

optimizarea asteptarii

In distractia asta a mea cu postitutia intelectuala, am ajuns sa fiu pimpuit de niste luxemburghezi unor italieni care la randul lor ma pimpuiesc la un client de-al lor din sectorul public. Cre’ca e si-o melodie cu “pimping all the way in one horse open sleigh” sau ceva de genul.

Anyways, clientului final ii place foarte mult birocratia si are un fetish pentru spell checking pe documente si daca nu sunt chiar la virgula, le rejecteaza si dureaza o saptamana pana iti da un feedback sa zica ce ai scris gresit si dupa ce corectezi o virgula scapata aiurea, mai dureaza o saptamana sa zica daca e de acord cu modul in care zi rezolvat obiectia lui. Si cand nu gresesti tot dureaza pana iti da voie sa faci ceva. Long story short, lucrurile dureaza la client. Norocul meu ca ma lasa sa ma dau pe net si pot sa muncesc pentru altii in timp ce astept si nu ma plictisesc.

Italienii au vazut ca nu prea e progres cu implementatul la diverse pe care ar trebui sa le fac eu pe aici din cauza ca stau mult sa zica clientul ceva, si s-au apucat sa se gandeasca cum sa rezolve problema.

Si au venit saptamana asta cu o solutie: de luni o sa am colegi noi, in ideea ca daca asteptam impreuna sa raspunda clientul o sa fie mai eficient decat daca o sa astept doar eu.

O sa asteptam mai repede cum s-ar zice.

distractie cu un scammer

Luna trecuta am pus pe OLX la vanzare un MacBook Pro de mi-l luasem acum vreo doi ani si pe care l-am schimbat cu unul ultima generatie. Mai mult pentru RAM ca la 32GB merg lucrurile altfel si pentru tastatura, ca aia veche incepuse sa se balbaie.

Initial am primit mesaje din astea scrise fie de boti fie de scammeri agramati direct pe OLX.

Dupa aia, a aparut un gigel care voia mi-a scris ca e interesat de laptop si ca il vrea. Acu nu stiu despre altii, dar nu cumpara nimeni un MacBook dintr-o alta tara si e dispus sa plateasca transportul cand poate sa-l ia mai ieftin de acolo. Asa ca am zis sa ma distrez un pic si sa vad pana unde merge scam-ul si ce metoda sau metode o sa foloseasca sa ma faca sa i-l trimit.

“Doavada” de la “banca”, arata asa:

Sa revenim la discutie:

Inca nu imi dau seama daca am dat de cel mai prost scammer din lume, ca am vorbit cu el doua saptamani despre “i did not get the money” sau nu prea mai merge business-ul si astia trebuie sa insiste pana le pica si lor ceva.

Vorbeam ieri c’un prieten de asta si m-a intrebat de ce nu i-am trimis o caramida. Raspunsul de ieri a fost ca m-ar fi costat caramida aia si n-ar fi fost amuzant.

Azi incepui sa ma gandesc serios sa-i trimit un vibrator (pe net e vreo 60 de lei unul) si o foaie cu “Here, now go fuck yourself”. Daca e sa fie circ, sa fie pana la capat.

pandemia in romania

Cineva in China a mancat un liliac nefiert si ce se intampla daca faci asta a ajuns sa stie fiecare om de pe planeta asta.

Pe la inceputul lui Ianuarie, chinezii inca mai arestau doctori care ziceau c-o sa fie nasol ca speriau lumea si nu se face asa ceva. Pe la sfarsitul lui Ianuarie, Winnie the Pooh a pus lacatul pe un oras intreg cand s-a lamurit ca situatia e maro inchis.

O luna mai tarziu, pe la sfarsitul lui Februarie iese in presa seful de la Institutul de Boli Infectioase, care teoretic studiaza si isi da cu parerea despre virusi si alte chestii mai putin placute corpului uman, sa spuna la lume ca ce se intampla in China e de 10 ori mai slab ca gripa si sa ne spalam pe maini cu apa si sapun si-o sa fie bine. Ultima partea imi inchipui ca a zis-o special pentru aia de le e frica de sapun.

Toate firmele private au inceput sa ia masuri de protectie, cumparat dezinfectant de maini, masti in caz ca situatia degenereaza etc. Prin restaurante si cafenele s-au lasat locuri libere de cate o masa sa nu intre lumea in contact etc. Responsabilitate, chiar am ramas uimit de cat de repede s-a miscat lumea.

Sa mai zic o data, asta in timp ce guvernul prin vocea unuia sau altuia spunea ca n-o sa fie nasol deloc si ca sa nu se sperie nimeni. In timp ce un oras de 11 milioane de locuitori era inchis cu cheia si Italia isi inchidea nordul tarii asa ca avusese un super sezon de iarna si cu ocazia asta se puteau odihni oamenii dupa atata munca.

Pe plan politic, Ludovicc Orban si cu PNL-ul incercau marea cu degetul sa forteze alegeri anticipate, ca abia ajunsesera la putere dupa ce a plecat Veorica de la guvernare si n-a mai vazut PNL ceva guvernare de cand cu USL, adica de prin 2012 asa. Adica au astia costele lipite de sira spinarii de atata foame de bani si de putere. Sa nu mai pui mana pe ciolan din 2012…

Doua saptamani mai tarziu si un guvern demis, robotul de la Cotroceni declara stare de urgenta, ca e nasol cu virusul asta, ca mor oamenii, ca vine apocalipsa si alte chestii care cu o saptaman mai devreme nici nu existau si evident ca nu aveau cum sa se intample in Romania. I-a luat pe nepregatite, cum s-ar zice. Intre timp era cat pe aci sa nu mai fie Orban prim-ministru, si il pune pe subalternul sau desemnat sa formeze un guvern sa-si depuna demisia si asa ajunge Orban iar prim-ministru. Curat cinstit manevra ce-au facut.

Parlamentul, pentru probabil prima oara in viata lui, voteaza in unanimitate treaba asta. Ca asa se scapa de virus, cu parnaiala generala in toata tara. Si cu armata pe strazi. Ca probabil s-au gandit ca daca la virus nu-i e frica de politie si de carnetul de amenzi, poate se sperie de Kalashnikov-urile mai vechi decat soldatii de le poarta in spate si fuge inapoi in China.

No, starea asta de urgenta permite guvernului sa nu mai stea dupa Parlament dupa legi, dupa facut licitatii si asteptat dupa contestatii si alte cele.

Cum greaua mostenire a lasat spitalele fara echipamente, PNL s-a apucat sa-si sune prietenii sa faca si ei niste smenuri cu achizitii directe, ca daca nu acum, cand? Ca sansele sa mai vada ciolanul scad pe zi ce trece.

Intre timp, s-a apucat politia sa munceasca si au furat confiscat echipamente de protectie de la diversi oameni pe care le-au dat prompt spitalelor, dupa ce si-au oprit (ma gandesc) si ei asa partea. Ce tu sechestru, procese, asteptat sentinte definitive si alte chestii din astea democratice. Burghejii dracu le tineau pentru ei cand poporul avea nevoie, asa ca militia a actionat prompt si eliminat elementele dusmanoase care complotau impotriva poporului.

Intre timp, prim-ministrul Mandolina a facut o conferinta de presa prin care a anuntat ca un cumatru de-al lui din partid are coronavirus si ca e bine sa nu stea lumea pe langa el si ca o sa se izoleze pe malul unui lac. Probabil sa contempleze niste combinatii din alea strategice, de pandemie asa, nu gainariile obisnuite.

Apoi au infiintat Ministerul Adevarului. Sub forma Grupului de Comunicare Strategica. Strategica da? Cre’a lacrimeaza in mormant aia de scriau la Scanteia. Ca nu poti comunica altfel decat strategic sa spui trei vorbe la oameni. Si ce se apuca sa faca noul minister? Pai sa cenzureze site-uri care nu spuneau adevarul, evident. Care bagau panica in oameni. Inca nu se stie care erau oamenii aia panicosi, dar partidul i-a salvat de la panica.

Teoretic acum tara e condusa de ministrul de interne. Care probabil la vreun sfat al unui expert din asta in comunicare, i-au dat o geaca de piele s-o poarte la conferintele de presa tinute pe Facebook unde nu trebuie sa raspunda la intrebari. Pe langa el e mereu Arafat, cunoscut publicului larg ca omul de si-a lipit curul cu super glue de scaunul de la DSU si nu vrea sa plece neam de acolo, si seful militiei. Zic militie pentru ca e genul ala de politist care abia stie sa citeasca de pe foi cand are ceva de zis, si cand citeste se vede cum i se umfla o vena la cap, probabil de la prea multa concentrare. Cam cum erau militienii pe vremuri. Cred ca fac conferintele astea fara public ca poate era nevoie sa-si ia notite omul si mai trebuia sa scrie, si era in pus in situatia in care trebuiau sa-l scoata la inaintare pe alalalt sef de militie, ala care stie sa scrie.

Dupa ce a aratat robotul cine e noul sef al tarii, s-a pus omul pe treaba si a inchis toate afacerile ne-esentiale: baruri, restaurante, frizerii, mall-uri si ce-a mai prins. Si puf, peste noapte au aparut un milion de someri. Ca vorba aia, cine i-a pus sa lucreze in mall sau intr-o cafenea? Nu puteau sa fie si astia angajati la stat unde nu ai probleme din astea existentiale, gen sa fii dat afara daca nu-ti faci treaba sau sa intri in somaj daca se inchide sandramaua.

La putin timp, dupa un zvon despre o vizita din asta de noapte a nu spunem cui, ministrul numit si Manivela s-a sucit si in mall-uri o sa fie deschise si magazinele de electrocasnice care au si optiune de livrare la domiciliu. Poate isi schimba lumea electrocasnicele fix acum si n-are de unde cumpara. Te duci frumos la mall, iti alegi frigiderul si dupa stai cuminte acasa in carantine si veni zanul frigiderelor, da de doua ori din bagheta si poof, ai frigider nou.

Dupa, gigelul care e ministru de finante, a zis stati asa, nu disperati, ca va platim noi somaj tehnic 75%. Da’ stati, ca intai trebuie sa veniti cu dosar cu sina sa aratati ca a scazut business-ul cu cel putin 25%, ca aveti sapca de culoarea potrivita si alte cele. Si 75% din salariu raportat la salariul mediu, nu la cat aveati inainte, ca nu se face asa ceva.

Dupa aia tot ala de la finante, care are mecla unuia de se uita cu tcpdump la trafic si nu intelege nimic, a zis ca ajuta oamenii care au rate la banci cu o mica amanare. A fost asa un pic de bucurie pe aia care ramasesera fara serviciu. Am zis mai sus ca nu toti au noroc sa fie angajati la stat. Pana a dat-o la intors si a zis ca se amana doar principalul, dobanda se calculeaza in continuare, si cand s-or apuca de platit iar rate, o sa plateasca mai mult, ca asa-i in tenis si nu e vina bancii ca l-a lasat statul fortat fara loc de munca. Cine l-a pus sa-si aleaga cariera intr-un domeniu din asta ne-esential?

Intre timp, s-a dat interzis la iesit din casa decat daca dai cu subsemnatul pe o foaie de hartie pe care sa o ai la tine sa o arati organului in caz ca te opreste. Treaba asta au facut-o un pic grabit si au scos de la sertar modelul de pe vremea lui Ceausescu cand pe cereri trebuia sa treci si numele parintilor, sa stie organul si partidul daca ai origini sanatoase sau nu. Ca nu toata lumea merita portocale si ciocolata. Dupa, au mai scos cateva modele de declaratii, unde diferenta dintre doua era ca una avea casutele rotunde si alta le avea patrate. Sunt convins ca cineva si-a luat bonus pentru treaba asta. Si militia s-a apucat sarguincios de facut ce stie sa faca mai bine: sa dea amenzi la oameni ca n-au sapca. Ca de prins hoti sau alte chestii din astea un pic mai complexe, evident ca nu s-au sinchisit sa faca ceva, ca aia presupune munca. Mai si anuntau mandri ca au scazut infractiunile cu 20 si ceva la suta. Sa mai zic o data, intr-o tara inchisa si cu lumea stand in case, infractiunile au scazut doar cu 20 si ceva la suta.

Prin spitale, evident, a inceput circul. Doctori care si-au dat demisia, doctori care au fost infectati de prieteni ai partidului care au mintit pe unde au fost. A patit cineva ceva? Evident ca nu, ca nu se face sa-ti bagi prietenii in belea pentru atata treaba.

A trecut aproape o luna de stare de urgenta si robotul a zis c-o mai prelungeste o luna, ca inca n-am scapat. Probabil a vrut sa zica ca n-a terminat partidul lui de furat si ca ii mai trebuie o luna sa termine ce a inceput. In caz ca avea cineva dubii ca astia de la PNL sunt suficient de prosti incat nu sunt capabili nici sa fure eficient, intr-o luna in care furatul pe bani public era legal, gen puteai da contracte cu doua maini si nu te intreba nimeni de sanatate.

De data asta a scris robotul in declaratia de prelungire a starii de urgenta ca nimeni nu mai poate sa-si dea demisia. De ce sa-ti dai demisia din spital cand poti muri patriot acolo? Sa repet: in 2020, robotul prezidential a declarat sclavia legala. Asta cumva a fost apogeul incompetentei si nesimtirii unui presedinte. Democratie doar in vorbe, ca in fapte nu prea.

Asa, tot robotul prezidential, acu ceva vreme a inaugurat un spital la Suceava cu care s-au laudat si el si partidul lui, vai cel mai modern spital. Fix acel spital a devenit “ground zero” pentru un focar de infectie pentru ca pe toti de acolo i-a durat la banana si din cauza alora de acolo, moldovenii (care nu recunosc ca sunt moldoveni) din Suceava au fost trecuti la urmatorul nivel de parnaiala. Cireasa de pe tort cu toata distractia asta a fost ca robotul pizdii a retras decoratia data spitalului. Am ramas un pic mirat de asta, ca aveam asa impresia ca dai decoratii la persoane pentru ca au facut ceva util, dar acum se confirma asa fara nici un dubiu, ca robotul dupa ce a dat decoratii la tot ce-a prins, s-a apucat sa dea si la ce-a mai prins. Noaptea mintii.

Intre timp, baiatul de la Institutul de Boli Infectioase a debitat o treaba numita “Vacanta Mare” sau ceva de genul prin care a zis ca aia peste 65 de ani sa mai stea in case sau sa fie trimisi undeva sa nu aiba contact cu lumea. Ca poate daca nu mor acasa, mor undeva frumos in grija statului. In replica, prim-ministrul Mandolina l-a lasat fara job in comisia de pandemie. Fix asa, nu o sa se mai poata lauda ca a facut ceva de pandemie. E bine-mersi sef in continuare la institutul de pareri infectioase.

La un moment dat a venit Pastele. Prima oara la catolici. Toti in casa, ca sunt catolici. Peste o saptamana a venit si pentru ortodocsi. Pentru astia, s-a gandit guvernul sa faca cumva sa primeasca lumina, ca merita sau ceva de genul. Si noul sef al tarii, ministrul Manivela, a venit cu ideea nastrusnica sa trimita politia din casa in casa si apartament in apartament sa dea lumina la oameni. Nu prea a fost clar daca era obligatoriu s-o primesti sau nu. Pentru ca lumea s-a suparat un pic pe treaba asta, a venit cu o alta idee: fiecare bloc sa aiba aiba un reprezentant si “voluntari” sa vina cu lumina pana la fiecare bloc, sa o dea la reprezentantul stabilit de bloc si ala sa dea lumina la toti. Asta a fost cre’ca cel mai josnic mod de pana acu’ de l-a gandit vreun partid sa faca cumva sa castige voturi. A fost apogeul shitshow-ului cu pandemia asta.

Ministrul finantelor a zis ca a gasit solutia cu toate firmele de s-au dus pe pula ca au fost inchise de stat: le da imprumuturi sa le ajute sa-si reia activitatea. Dar nu imprumut la toata lumea dat de la stat, dat de banci in functie de cat de bancabil esti si poti ii demonstrezi unui gigel de la banca. Pentru cine nu stia ce inseamna expresia “si futut, si cu banii luati”… acum stie. Ajutor, nu gluma. Le-a dat la antreprenori de i-a julit.

Cu vreo doua saptamani inainte sa se termine starea de urgenta, a zis CCR ca amenzile date pana acu sunt neconstitutionale si ca nu poti da amenzi prin ordonante militare (sau ceva de genul), insa ideea de baza e ca dupa ce au zis asta, numarul de amenzi a scazut maxim, semn ca nici inainte nu s-au date pe bune. In loc sa admita ca au gresit si sa dea banii inapoi la toti de la care i-au furat prin amenzi, astia de la PNL au tras inainte ca ei au avut dreptate, da’ i-a sapat avocatul poporului, care de fapt vrea raul oamenilor

Un pic de pe repede-inainte, s-a facut 15 mai si s-a terminat starea de urgenta si s-a intrat in starea de alerta. De fapt s-a terminat starea de urgenta, au urmat 3 zile de distractie si abia dupa aia s-a intrat in starea de alerta. Ca PNL-ul si-a mai dovedit inca o data incompetenta, si n-au fost in stare sa scrie o mica lege care sa poata fi aprobata de parlament in timp util. Si legea aia s-a vota marti, joi a fost trimisa la robot pentru semnat, si dupa s-a asteptat regulamentar trei zile sa intre in vigoare. Dar asta nu e totul, robotul si-a aratat fata de profesor provincial ratat si intr-o conferinta de presa a declarat printre dinti ca “daca nu sta populatia cuminte, el o sa bage din nou starea de urgenta”. Ca asa e cand esti incompetent, ameninti lumea. The oldest trick in the book – threaten people into submission. Cre’ca ultimul dictator a lacrimat un pic in mormant, de bucurie ca vechile metehne inca exista bine-mersi.

Nu mai stiu care ministru a zis ca nu ratifica acordul de liber tranzit cu Grecia si alte tari pentru atunci cand s-or duce oamenii in vacanta pe motiv ca “anul asta credem ca romanii vor prefera Romania”. Imi inchipui ca asa i-a zis vreun consilier, ca visul romanilor in vacanta e sa dea 1000-2000EUR pe 7 nopti de cazare la Mamaia.

Singurul lucru care nu m-a dezamagit din tot shitshow-ul asta a fost incompetenta PNL-ului. Pe alocuri am avut impresia ca au tinut mortis sa arate pot fi mai retardati ca PSD-ul.

Initial intentionam sa vad cum decurge si starea de urgenta pana la capat, insa nu cred ca are rost. In cazul cel mai bun ramane asa cum e acum si pe 15 Iunie se termina cu balamucul asta si o sa vedem cum o sa ne descurcam post-pandemie cu distantarea si masurile de precautie.

elasticsearch fun

Elasticsearch asta e misto sa pui chestii in el si dupa aia sa le cauti si sa le analizezi.

Mai putin distractiv e cand de la o versiune la alta nu merg lucruri si in documentatia aia a lor care e scrisa de autisti nu gasesti nimic util.

Pe undeva pe la 6.8 sau 7.0, au renuntat la ideea de a face un index pe zi. Cazul cel mai comun e cand scrie Logstash in el si indecsii se chemau logstash-2019.04.01, logstash-2019.04.02 si asa mai departe.

E, au zis ei ca nu mai e modern sa folosesti curator sa stergi indecsii vechi si l-au invatat pe Elasticsearch sa faca asta. Si nu mai e chiar ok sa ai indecsi dupa data, ci sa ii ai dupa logstash-0001, logstash-0002 si tot asa. Si Logstash sa scrie in indexul numit logstash care e de fapt un alias la logstash-xxxx, care se roteste dupa “rollover policy” – policy care poate fi setat la numar de documente, secunde (gen cat de batran e indexul) sau marime.

Pana aici, nici o problema. Problema apare cand vrei sa pui niste setari mai aparte pe index, cum ar fi numarul maxim de campuri ce pot fi mapate intr-un index. Implicit vine cu 1000 de campuri, care de fapt sunt 1002, da’ nu e important ca nici eu nu ma pricep la matematica.

“Inainte”, dupa ce faceai primul index, ii ziceai asa:

~$ curl -XPUT 'localhost:9200/logstash/_settings' -H 'Content-Type: application/json' -d'{"index":{"mapping":{"total_fields":{"limit":"2000"}}}}'

Si acum poti sa-i zici la fel, da ce sa vezi, uita de treaba asta cand roteste indexul si aplica setarile implicite. Si cum ziceam, documenatie scrisa de autisti, ca nu zice nicaeri cum sloboz sa-l faci sa fie ca inainte.

Azi, dupa ce mi-am futut intermitent creierii cu asta am gasit cum se rezolva: trebuie modificate setarile de pe template la index cam asa:

~$ curl -XPUT localhost:9200/_template/logstash -H 'Content-Type: application/json' -d '{"index_patterns":["logstash-*"],"settings":{"index":{"mapping.total_fields.limit":"2000"}}}'

Care mapping.total.fields.limit “inainte” era un parametru prin elasticsearch.yml, dar daca il pui acum, crapa ca zice ca nu mai e OK parametrul.

Distractia asta a durat super mult timp pana acum gasit termenii pe care sa-i caut pe internet sa ma duca intr-o directie cat de cat ok, si dupa a durat mai putin pana am nascut un JSON care sa fie acceptat de Elasticsearch.

Long story short:

~$ curl -X GET "localhost:9200/_template/logstash?pretty"
 {
   "logstash" : {
     "order" : 0,
     "index_patterns" : [
       "logstash-*"
     ],
     "settings" : {
       "index" : {
         "mapping" : {
           "total_fields" : {
             "limit" : "2000"
           }
         }
       }
     },
     "mappings" : { },
     "aliases" : { }
   }
 }

Da, cand n-ai de lucru, iti dau upgrade-urile de lucru…

la incendiu

Din categoria “cand e sa ai ghinion gasesti cuie si-in pizda”, joi noapte m-am trezit brusc pe la vreo 03:30 asa ca a sunat cineva la sonerie. Bine, n-am stiut atunci cat e ceasul ca asteptam pe cineva dimineata si mi s-a parut dubios sa nu vad pe nimeni pe vizor cand m-am dus la usa.

Si daca tot ma trezisem, m-am dus in bucatarie (n-am idee de ce, da cre’ca e vreun automatism din asta, gen daca tot eram pe hol sa vad si ce e in bucatarie) si acolo m-am uitat pe geam. Afara vreo doua masini de pompieri si miros de fum si cativa oameni pe afara.

M-am gandit ca OK, arde un apartament in bloc si cine a sunat la usa a fost vreun pompier sa scoata lumea din casa. Super, incendiu n-avusesem pana acum. Opresc centrala, ca na – gaze si chestii, inchid geamurile la bucatarie si alalalt dormitor in ideea ca daca se propaga flacarile in sus sa nu intre in casa si sa strice zugraveala.

Dupa aia m-am imbracat, inclusiv mi-am dat cu deodorant, ca poate aveam de stat mai mult p’afara si caldura si chestii sa nu put :))

Impachetat go-bag, care la mine inseamna un rucsac cu laptop, autentificator de la banca, pasaport, portofel cu buletin si permis si m-am dus jos, pregatit de ce ar putea urma.

Well, jos era doar miros de fum si-o masina arsa fix langa a mea care s-a topit pe partea din spate si era asa scursa un pic. E genul ala de moment in care nici draci nu poti sa ai ca esti pus in fata faptului implinit. O mut un pic mai fata dupa ce se uita pompierii in portbagaj sa nu arda ceva mocnit, ii mai face poze un tip de la criminalistica ca nu stiau de ce la ce a fost provocat incendiul. Dau acte si talon la pompieri/politie si dupa ce s-au lamurit pompierii ca nu mai au ce stinge la masina aia, au inceput sa se impacheteze.

Dupa m-am dus cu un politist la sectie sa depun plangere, ca sa afle ce se s-a intamplat.

La politie e super, prima oara scrii de mana o plangere tipizata in sesul de frazeologie, pe care o semnezi si dupa aia politistul mai scrie una in Word care contine fix ce-ai scris de mana, o tipareste si o semnezi. Cine a inventat jmecheria asta nu prea doreste ca lumea sa scrie plangeri. A trebuit sa scriu in plangerea aia ca (literlamente) “Mentionez ca nu am relatii de dusmanie cu nimeni”. Mai ca incepusem sa fredonez in cap treaba aia cu “dusmanii imi poarta pica ca n-au valorea mea”.

Ziceam la inceputul postului de ghinion ca acu vreo doua luni mi s-a spart blocul motor la o alta masina fix dupa ce plecasem de la semafor. Si acu am o masina arsa. Interesant anul asta din punct de vedere al masinilor.

Acu urmeaza partea aia fascinanta de inlocuire a placutei de inmatriculare pe spate, ca e arsa mai rau ca tigaia si cautat piese si gasit service care sa vopseasca masina. Fix genul ala de distractie de care nu aveam nevoie. Si evident ca nu te poti duce la inmatriculari cu aia stricata si sa-ti dea una noua, trebuie sa faci cerere si sa vii cu acte in original si copie.

In retrospect, m-a bucut ca am luat-o logic cu analiza situatiei si a actiunilor de dupa, fara vreo panica sau in graba. M-a dresat bine oncall-ul cand trebuia sa fiu coerent indiferent de ora la care venea alerta si trebuia sa ma apuc de treaba.

unele zile…

Saptamana asta dupa ce am terminat de instalat si configurat un ESXi offline si am pus pe el un server de DHCP a venit vremea sa-l dau in productie sa inlocuiasca actualul server de DHCP. Easy peasy. Scoti cablul de la ala vechi din switch si il pui pe ala nou si gata.

Well… ieri m-am invartit ca un coi intr-o caldare toata ziua pentru ca dupa ce puneam serverul nou in switch, nu mergea DHCP-ul. Cu laptop si cablu direct infipt in el, mergea cum trebuie. Prin switch pula.

Am avut o zi din aia in care am avut un mica criza existentiala despre cunostintele mele de retelistica si Layer2 in special. M-am uitat in vSwitch-ul de pe ESXI mai atent decat m-am uitat vreodata la un switch virtual. La fel si pe portul de pe switch-ul fizic. N-a avut portul ala parte de atata atentie in viata lui.

Cablu direct merge, prin switch nu. Serverul de DHCP zicea ca oferea adrese IP clientilor, da aia nu faceau ACK. Si nu intelegeam de ce. De ce n-ar da? Le placea la clienti asa mult de serverul vechi ca protestau?

Pe la opt seara am cedat si m-am dus acasa deja aveam idei de schimbat cariera.

Am ajuns acasa, am desfacut o bere, am re-vazut jumate de Avengers si inainte sa ma culc am zis sa mai iau o data meniurile de pe switch la rand, chiar si optiunile alea care nu ar avea de ce sa se se aplice.

Si-am gasit ca pe switch exista un meniu de DHCP care are o optiune sa blocheze raspunsurile de DHCP de la adrese MAC necunoscute si doar sa accepte adrese permise. Adica scris MAC-ul acolo cu liniuta.

Primul MAC era pus acolo, pe al doilea l-am pus eu dupa alta criza de draci.

Unele zile…

mssql replication & log shipping

Acu ceva vreme am instalat la niste oameni niste multe servere de MSSQL pentru niste chestii de logistica.

Anul asta au zis oamenii ca bai, e important sa nu pierdem datele pe care le avem pe servere si hai sa facem un backup offsite.

Backup-ul offsite n-a fost sa fie ca latenta si TCP e picky cu latenta cand vrei sa transferi single-connection fisiere mari si eram intr-o situatie din aia in care dura mai mult de-o zi sa transfer un fisier de backup (mind you, gigabit in ambele parti, da TCP…). “Stiintific” treaba asta se cheama “long fat pipe problem” si necesita un pic de inginerie sa mearga cum trebuie, da’ in cazul de fata n’aveam ce inginerie sa fac ca tehnologia era la impuse.

Long story short, zic hai ca am solutia: facem replicare intre servere de MSSQL si o sa fie aproape realtime datele, eventual o sa se mai piarda cateva tranzactii, da’ nu e un capat de lume.

Si ma apuc eu si instalez un SQL server in alta parte si da-i sa fac replicare. Ma gandeam eu ca e la MySQL undeva faci un master/slave, restaurezi un backup pe ala remote si dupa aia trimiti binlog-urile pe al doilea sa le face replay si aia e. Simplu.

Well… not really, ca Microsoft fiind Microsoft au zis ca de ce sa fie simplu cand poate sa fie complicat si nu poti face replicare asa simplu. Ca de exemplu daca ai tabele fara primary key nu le poti include in replicare. Procedurile stocate nu se replica, because reasons…

Multa muie lor pe tema asta ca mi-au scos peri albi.

Zic bine, facem transaction log shipping care “replica” tot. O sa fie baza de date remote un pic in urma, da’ a zis lumea ca poate trai si daca se pierd 30min de date.

Acum, astia cu logistica sunt mai speciali… cam ca niste autisti de speciali, si ei nu cred in versiuni prea noi de software si asa am ajuns eu sa am si MSSQL 2014 si 2016, ca fiecare producator are versiunea lui de baza de date “suportata”.

Mno, acu aveam servere din astea diferite, zic hai ca pun MSSQL 2017 in locatia remote si stochez acolo toate bazele de date ca fiecare baza de date un Compatibility Level care e in functie de versiunea de SQL Server, gen 2014, 2016 si 2017.

Instalez eu serverul vietii, dau sa setez transcation log shipping: nu se poate prietene ca trebuie upgradata versiunea de baza de date pe serverul remote si ghinion ca tu ai o versiune mai veche. Morti si raniti si muie alora de-au programat mizeria asta.

Se pare ca desi poti bifa acolo Compatibility Level, intern MSSQL mai modifica un pic baza de date ca sa fie compatibila cu noul engine de SQL, da’ la suprafata se comporta ca ala vechi…

Alte ore pierdute aiurea, da-le-as muie la imbecilii pulii. Pai orice esti backward compatible ori nu esti.

Zic bine, hai ca pun un 2014 remote sa se impace cu 2014 local. Pun serverul pulii, setez acolo replicarea, face primul backup mare de pe sursa, il copiaza super repede pe destinatie si imi da prin gura: n-ai destul loc pe C:\ ca sa restaurez baza de date pe destinatie. Mi-au scapat instant multe mui inspre Microsoft pe tema asta…

Asta desi din setup era configurat sa tina bazele de date pe alt disk cu suficient de mult spatiu. Dar nu, el vrea musai pe C:\ pentru ca ma gandesc eu ca acolo are setat “Instance Root Directory” si simte nevoia s-o puna acolo desi ar trebui s-o puna in alta parte.

Varianta complicata a fost sa fac eu un backup full la o baza de date, s-o copiez in 3 ore in partea ailata si s-o restaurez unde trebuie si abia dupa aia sa setez transaction log shipping pe sursa si sa-i zic la sursa ca deja exista baza de date in partea ailalta.

Asta era azinoapte. Dupa un pic de investigatii descoperii ca de fapt nu merge log shipping.

Banuiesc ca e din cauza ca pana s-a copiat baza de date si s-a restaurat a trecut prea mult timp pe sursa si logurile pe care le genereaza nu au logica pe destinatie ca’s la prea mare distanta in timp.

Back to the drawing board. Sa moara in chinuri aia de la MS care in loc sa faca un setup simplu, l-au complicat pana i-au scos mucii pe cur. Unfuckingbelieveable…

(Cateva zile mai tarziu…)

Dupa un pic de desenat am descoperit cum pot sa-l fac sa restaureze baza de date unde trebuie. La Restore are niste optiuni semi-ascunse in care ii zici unde sa restaureze baza de date si unde sa restaureze logurile. La asta cu restauratul evident ca nu e simplu: baza da date pe sursa se cheama ABC si are doua fisiere mari si late: ABC.MDF si ABC_LOG.LDF (baza de date propriuzisa si logurile). Eh, cand le faci restore in alta parte, poti sa schimbi numele bazei de date – asa cum am facut eu, ca poate vrei s-o prefixezi cu ceva. Catch-ul e ca numele de pe disk al fisierelor nu se schimba in noul prefix, gen baza sa fie LS-ABC si fisierele sa se cheme LS-ABC.MDF si LS-ABC_LOG.LDF… Pai ce erau prosti sa-l schimbe? Nu, pe disc ramane la fel. Si daca ai doua servere din medii diferite de productie si cu acelasi nume de baza de date si vrei sa faci log shipping de pe ambele pe un singur server… ghici ce… la a doua restuare o sa-ti dea eroare ca deja exista baza de date si ca bla bla e folosita. Si trebuie sa faci alte directoare pentru baza si pentru loguri ca sa poti face log shipping si pentru al doilea server…

Problema de dinainte era din cauza ca aveam alte job-uri de log backup si MSSQL asta nu e asa inteligent sa nu amestece oalele, si se facea backup la loguri din 2 in 5 si evident ca unele loguri era salvate undeva si alte altundeva si pula continuitate in loguri si n-avea ala la ce sa faca restore.

Fixat asta, dat backup/restore si log shipping si pare sa mearga. Trebuie sa stau cu geana pe el sa vad ca nu sughita, sa dau un reboot pe ici pe colo sa vad cum face cand se mai pierde sursa sau destinatia un pic.

Sa-i chis in freza pe astia de la Microsoft si mai ales pe aia de scriu la MSSQL ca au gandit diverse chestii din puta gandirii…