OpenVPN siunčia multicast kiekvienam klientui, o ne prenumeratoriams
Naudotojo erdvės serveris kopijuoja grupės paketą kiekvienam klientui, o ne kiekvienam prenumeratoriui. Suskaičiuokite išsiuntimą, įrodykite jį tunelio skaitikliais ir tada apribokite dizaino apimtį.
"Palaiko multicast" atsako į protokolo klausimą ir palieka talpos klausimą nepaliestą. Operatyviai svarbu, kiek kopijų serveris išsiunčia vienam grupės paketui ir kurie tuneliai jas neša. Viena prenumeruota programa, gaunanti srautą, įrodo tik tai, kad pristatymas kažkur veikia. Ji neįrodo, kad nebesuinteresuoti klientai buvo sutaupyti pralaidumo.
Trys klausimai viename funkcijos teiginyje
Narystė grupėje klausia, ar gavėjas prisijungė prie grupės. Pristatymas tuneliu klausia, ar paketas apskritai perėjo tunelį. Replikacijos politika klausia, kiek kopijų serveris padarė ir kam. Tiekėjo teiginys gali būti teisingas pirmajam ir tylėti apie trečiąjį, ir būtent ten gyvena sąnaudos.
Atskirkite juos, kai nustatote ryšio dydį. Tik trečiasis klausimas nustato siuntimo biudžetą serverio pusėje.
Ką naudotojo erdvės serveris daro su grupės paketu
Tradiciniame naudotojo erdvės serveryje OpenVPN 2.6 atvykęs transliacijos ar multicast paketas klasifikuojamas TUN/TAP įvesties kelyje ir perduodamas transliacijos paskirstymo rutinai, o ne paieškai pagal grupę. Ta rutina eina per klientų egzempliorius, praleidžia siuntėją ir bet kurį sustabdytą egzempliorių, taiko savo VLAN patikrą ten, kur ji sukonfigūruota, ir į eilę įdeda kopiją kiekvienam likusiam klientui. Nė vienas to ciklo žingsnis nesikreipia į narystės lentelę. Tai transliacijos stiliaus replikacija, ir tai yra visas mechanizmas.
Traktuokite tai kaip to kodo kelio savybę, o ne kaip visuotinį dėsnį. Pagreitinti duomenų keliai, kitos implementacijos ir skirtingos versijos gali elgtis kitaip, ir niekas iš to nepadaro TAP reikalavimo ar taisymo.
Suskaičiuokite kopijas prieš ką nors matuodami
Paimkite naudingosios apkrovos spartą ir padauginkite ją iš tinkamų klientų skaičiaus. Srautas, siunčiantis vieną megabitą per sekundę dvidešimčiai klientų, sukuria dvidešimt megabitų per sekundę naudingosios apkrovos, kuri palieka serverį, prieš inkapsuliavimą, pakartotinį siuntimą ir bet kokias sąnaudas vienam klientui. Ta aritmetika yra biudžetas, o ne jūsų diegimo matavimas.
ip -s link show tun0Perskaitykite siunčiamų baitų skaitiklį prieš ir po fiksuoto intervalo su vienu žinomu aktyviu siuntėju. Padalinkite iš intervalo ir palyginkite su naudingosios apkrovos sparta, padauginta iš klientų skaičiaus. Skaičius artimas vieno srauto spartai reiškia, kad replikacija yra apribota; skaičius artimas padaugintai spartai reiškia, kad kiekvienas klientas gauna kopiją.
Skaitiklis apima ir jūsų pačių tunelio srautą, todėl laikykite bandymo langą trumpą, o serverį kitu metu tykų. Tikslumas svarbus mažiau nei eilės tvarka, ir to pakanka vienai kopijai nuo dvidešimties atskirti.
Dviejų klientų bandymas, kuris išsprendžia apimties klausimą
Prijunkite vieną klientą, kuris turėtų gauti srautą, ir antrą, kuris neturėtų. Paleiskite siuntėją, tada stebėkite antrojo kliento tunelio skaitiklius tą patį intervalą. Augimas antrajame kliente yra tiesioginis plataus replikavimo įrodymas, kad ir ką sakė funkcijų sąrašas.
Filtruokite įrašą pagal grupės adresą, kad neskaitytumėte nesusijusio srauto, ir apribokite jį tunelio sąsaja. Fizinės sąsajos įrašymas užimtame serveryje sukuria failą, kurio niekas negali interpretuoti, ir gali išsaugoti naudotojo duomenis, kurių neketinote rinkti.
Tada sukeiskite vaidmenis. Jei rezultatas seka gavėją, o ne grupę, matote kažką, kas atsižvelgia į narystę, ir ankstesnė prielaida buvo klaidinga jūsų naudai.
Rinktis apribotą dizainą, o ne šalinti ribas
Kai paskirstymas per platus, taisymas yra palaikomas apriboto paskirstymo sprendimas, o ne visų turimų kontrolės priemonių ištrynimas. Galimybės apima paskirstymo taško priartinimą prie gavėjų, šaltiniui būdingo prenumeratos modelio, pernešančio šaltinio tapatybę kartu su grupe, naudojimą arba srauto padalijimą, kad nebesuinteresuotos vietos niekada nebūtų toje pačioje paskirstymo riboje.
Laikykite šaltinio ir grupės tapatybę atskirai nuo pliko fakto, kad paskirties vieta yra multicast. Gavėjas, atpažįstantis grupę, bet ne šaltinį, yra kitas prenumeratorius nei tas, kuris paprašė konkretaus kanalo. Sumaišius abu, vėlesnis talpos planavimas tampa spėjimu.
Šaltiniui būdingas multicast kanalo modelis yra to skirtumo nuoroda. Kokį dizainą bepasirinktumėte, užrašykite tinkamų partnerių rinkinį, replikacijos savininką ir skaitiklį, kurį skaitysite kitą kartą; būtent šis įrašas paverčia pralaidumo netikėtumą žinomomis sąnaudomis.