Ann an 2010 a 'chompanaidh wargaming bha 50 frithealaiche ann agus modail lĂŹonra sĂŹmplidh: backend, frontend agus balla-teine. Dhâ fhĂ s an Ă ireamh de luchd-frithealaidh, dhâfhĂ s am modail nas iom-fhillte: stèidse, iomallachd VLANs le ACLs, an uairsin VPNn le VRFs, VLANn le ACLs air L2, VRFs le ACLs air L3. Tha an ceann a' snĂŹomh? Bidh e nas spòrsail nas fhaide air adhart.
Nuair a bha 16 frithealaiche ann, dhâ fhĂ s e do-dhèanta obrachadh Ă s aonais deòir le uimhir de roinnean ioma-ghnèitheach. Mar sin thĂ inig sinn suas le fuasgladh eile. Ghabh sinn an stac Netfilter, chuir sinn Consul ris mar stòr dĂ ta, agus fhuair sinn balla-teine ââââair a sgaoileadh gu luath. Chuir iad an Ă ite ACLs air routers agus chleachd iad iad mar bhalla-teine ââââa-muigh agus a-staigh. Gus an inneal a riaghladh gu dinamach, leasaich sinn an siostam BEFW, a chaidh a chleachdadh anns a h-uile Ă ite: bho bhith aâ stiĂšireadh ruigsinneachd luchd-cleachdaidh air an lĂŹonra toraidh gu bhith aâ dealachadh earrannan lĂŹonra bho chèile.
Innsidh e dhut mar a tha e uile ag obair agus carson a bu chòir dhut sĂšil nas mionaidiche a thoirt air an t-siostam seo. Ivan Agarkov (bliadhna) na cheannard air buidheann tèarainteachd bun-structair na roinn cumail suas aig ionad leasachaidh Minsk na companaidh. Tha Ivan na neach-leantainn SELinux, tha gaol aige air Perl, agus aâ sgrĂŹobhadh còd. Mar cheannard na buidhne tèarainteachd fiosrachaidh, bidh e ag obair gu cunbhalach le logaichean, cĂšl-taic agus R&D gus Wargaming a dhĂŹon bho luchd-hackers agus gus dèanamh cinnteach Ă obrachadh a h-uile seirbheisiche geama sa chompanaidh.
CĂšl-eachdraidh Eachdraidheil
Mus innis mi dhut mar a rinn sinn e, innsidh mi dhut mar a thà inig sinn gu seo sa chiad à ite agus carson a bha feum air. Gus seo a dhèanamh, rachamaid air ais 9 bliadhna: 2010, World of Tanks dÏreach air nochdadh. Bha timcheall air 50 frithealaiche aig Wargaming.
ClĂ r fĂ s frithealaiche companaidh.
Bha modal lĂŹonra againn. Airson an Ă m sin bha e as fheĂ rr.
Modail lĂŹonra ann an 2010.
Tha droch ghillean air an aghaidh a tha airson ar briseadh, ach tha balla-teine ââââair. Chan eil balla-teine ââââair an backend, ach tha 50 frithealaiche ann, tha sinn eòlach orra uile. Bidh a h-uile dad ag obair gu math.
Ann an 4 bliadhna, dh'fhàs cabhlach an fhrithealaiche 100 uair, gu 5000. Nochd a 'chiad lÏonraidhean iomallach - stèidse: cha b' urrainn dhaibh a dhol gu riochdachadh, agus gu tric bha rudan a 'ruith an sin a dh'fhaodadh a bhith cunnartach.
Modail lĂŹonra ann an 2014.
Le inertia, chleachd sinn na h-aon pĂŹosan bathar-cruaidh, agus chaidh an obair gu lèir a dhèanamh air VLANan iomallach: tha ACLan air an sgrĂŹobhadh gu na VLANn, a tha aâ ceadachadh no aâ diĂšltadh ceangal de sheòrsa air choreigin.
Ann an 2016, rĂ inig an Ă ireamh de luchd-frithealaidh 8000. Ghabh Wargaming a-steach stiĂšidiothan eile, agus nochd lĂŹonraidhean ceangailte a bharrachd. Tha e coltach gur ann leinn fhĂŹn a tha iad, ach chan eil sin buileach: gu tric chan eil VLAN ag obair dha com-pĂ irtichean, feumaidh tu VPN a chleachdadh le VRF, bidh aonaranachd aâ fĂ s nas toinnte. Dh'fhĂ s am measgachadh insulation ACL.
Modail lĂŹonra ann an 2016.
Ro thoiseach 2018, bha an cabhlach de dh'innealan air fàs gu 16. Bha 000 earrannan ann, agus cha robh sinn a 'cunntadh a' chòrr, a 'gabhail a-steach feadhainn dÚinte anns an robh dà ta ionmhasail air a stòradh. Tha lÏonraidhean gleidhidh (Kubernetes), DevOps, lÏonraidhean sgòthan ceangailte tro VPN, mar eisimpleir, bho IVS, air nochdadh. Bha tòrr riaghailtean ann - bha e goirt.
Modail lÏonra agus dòighean aonaranachd ann an 2018.
Airson aonaranachd chleachd sinn: VLAN le ACL air L2, VRF le ACL air L3, VPN agus mòran a bharrachd. Cus.
Duilgheadasan
Tha a h-uile duine aâ fuireach le ACL agus VLAN. Dè tha ceĂ rr? Bidh a 'cheist seo air a fhreagairt le Harold, a' falach a 'phian.
Bha mòran dhuilgheadasan ann, ach bha còig duilgheadasan mòra ann.
Ărdachadh prĂŹsean geoimeatrach airson riaghailtean Ăšra. Thug gach riaghailt Ăšr nas fhaide ri chur ris na bha roimhe, oir bha e riatanach an toiseach faicinn an robh a leithid de riaghailt ann mu thrĂ th.
Chan eil balla-teine ââââann am pĂ irtean. Bha na h-earrannan ann an dòigh air choreigin air an sgaradh bho chèile, agus cha robh goireasan gu leòr a-staigh mu thrĂ th.
Chaidh na riaghailtean a chuir an sĂ s airson Ăšine mhòr. Bâ urrainn do ghnĂŹomhaichean aon riaghailt ionadail a sgrĂŹobhadh le lĂ imh ann an uair a thĂŹde. Thug am fear cruinne grunn lĂ ithean.
Duilgheadasan le riaghailtean sgrĂšdaidh. Nas mionaidiche, cha robh e comasach. Chaidh na ciad riaghailtean a sgrĂŹobhadh air ais ann an 2010, agus cha robh aâ mhòr-chuid de na h-Ăšghdaran aca ag obair dhan chompanaidh tuilleadh.
Ăre ĂŹosal de smachd bun-structair. Is e seo am prĂŹomh dhuilgheadas - cha robh fios againn glè mhath dè bha aâ dol air adhart san dĂšthaich againn.
Seo cò ris a bha innleadair lĂŹonra coltach ann an 2018 nuair a chuala e: âFeum air barrachd ACL.â
Fuasglaidhean
Aig toiseach 2018, chaidh co-dhÚnadh rudeigin a dhèanamh mu dheidhinn.
Tha prĂŹs aonachadh aâ sĂŹor fhĂ s. Bâ e an t-Ă ite tòiseachaidh gun do sguir ionadan dĂ ta mòra aâ toirt taic do VLANn agus ACLan iomallach leis gu robh na h-innealan aâ ruith a-mach Ă cuimhne.
Fuasgladh: thug sinn air falbh am bà illidh daonna agus rinn sinn fèin-ghluasad air solar ruigsinneachd chun Ïre as à irde.
Bheir na riaghailtean Úra Úine mhòr airson an cur an sà s. Fuasgladh: luathaich cleachdadh riaghailtean, dèan e air a chuairteachadh agus co-shÏnte. Feumaidh seo siostam sgaoilte gus am bi na riaghailtean air an lÏbhrigeadh iad fhèin, gun rsync no SFTP gu mÏle siostam.
Chan eil balla-teine ââââann am pĂ irtean. Thòisich balla-teine ââââtaobh a-staigh earrannan a 'tighinn thugainn nuair a nochd diofar sheirbheisean taobh a-staigh an aon lĂŹonra. Fuasgladh: cleachd balla-teine ââââaig ĂŹre an aoigheachd - ballachan teine ââââstèidhichte air aoigheachd. Cha mhòr anns a h-uile Ă ite tha Linux againn, agus anns a h-uile Ă ite tha iptables againn, chan eil seo na dhuilgheadas.
Duilgheadasan le riaghailtean sgrÚdaidh. Fuasgladh: CÚm na riaghailtean gu lèir ann an aon à ite airson ath-sgrÚdadh agus riaghladh, gus an urrainn dhuinn a h-uile cà il a sgrÚdadh.
Ăre ĂŹosal de smachd air bun-structar. Fuasgladh: gabh clĂ r de gach seirbheis agus ruigsinneachd eatorra.
Tha seo nas motha na phròiseas rianachd na theicnigeach. Aig amannan bidh 200-300 fiosan Ăšra againn gach seachdain, gu sònraichte aig Ă m sanasachd agus saor-lĂ ithean. A bharrachd air an sin, chan eil seo ach airson aon sgioba de na DevOps againn. Le uimhir de sgaoilidhean, tha e do-dhèanta faicinn dè na puirt, IPan agus aonachadh a tha a dhĂŹth. Mar sin, bha feum againn air manaidsearan seirbheis le trèanadh sònraichte a dhâ fhaighnich dha na sgiobaidhean: âDè a thâ ann co-dhiĂš agus carson a thog thu e?â
Ăs deidh a h-uile cĂ il a chuir sinn air bhog, thòisich innleadair lĂŹonra ann an 2019 a âcoimhead mar seo.
Consal
Cho-dhĂšin sinn gun cuireadh sinn a h-uile dad a lorg sinn le cuideachadh bho mhanaidsearan seirbheis a-steach don Chonsal agus Ă s an sin gun sgrĂŹobhadh sinn riaghailtean iptables.
Ciamar a cho-dhÚin sinn seo a dhèanamh?
Cruinnichidh sinn a h-uile seirbheis, lĂŹonra agus neach-cleachdaidh.
Cruthaichidh sinn riaghailtean iptables stèidhichte orra.
Bidh sinn aâ dèanamh smachd fèin-ghluasadach.
....
BRATHADH.
Chan e API iomallach a thâ ann an Consul, faodaidh e ruith air a h-uile nĂłd agus sgrĂŹobhadh gu iptables. Chan eil air fhĂ gail ach smachdan fèin-ghluasadach a chruthachadh a ghlanas rudan neo-riatanach, agus thèid aâ mhòr-chuid de na duilgheadasan fhuasgladh! Obraichidh sinn a-mach an còrr mar a thèid sinn air adhart.
Carson a tha Consal?
Tha e air a dhearbhadh fhèin gu math. Ann an 2014-15, chleachd sinn e mar backend airson Vault, anns am bi sinn aâ stòradh faclan-faire.
Na caill dà ta. Rè an Úine cleachdaidh, cha do chaill Consal dà ta ann an aon tubaist. Tha seo na bhuannachd mhòr airson siostam riaghlaidh balla-teine.
Bidh ceanglaichean P2P aâ luathachadh sgaoileadh atharrachaidh. Le P2P, thig a h-uile atharrachadh gu sgiobalta, chan fheumar feitheamh airson uairean.
API REST goireasach. Bheachdaich sinn cuideachd air Apache ZooKeeper, ach chan eil API REST aige, agus mar sin feumaidh tu crutches a chuir a-steach.
Ag obair mar an dĂ chuid PrĂŹomh Vault (KV) agus Leabhar-seòlaidh (Lorg seirbheis). Faodaidh tu seirbheisean, catalogan, agus ionadan dĂ ta a stòradh aig an aon Ă m. Tha seo goireasach chan ann a-mhĂ in dhuinne, ach cuideachd dha sgiobaidhean faisg air lĂ imh, oir nuair a bhios sinn a âtogail seirbheis chruinneil, tha sinn aâ smaoineachadh gu mòr.
SgrĂŹobhte ann an Go, a tha na phĂ irt den chruach Wargaming. Tha gaol againn air aâ chĂ nan seo, tha mòran de luchd-leasachaidh Go againn.
Siostam ACL cumhachdach. Ann an Consul, faodaidh tu ACLn a chleachdadh gus smachd a chumail air cò a sgrĂŹobhas dè. Tha sinn aâ gealltainn nach bi riaghailtean aâ bhalla-teine ââaâ dol an lĂšib rud sam bith eile agus nach bi trioblaidean againn le seo.
Ach tha na h-eas-bhuannachdan aig Consul cuideachd.
Chan eil e aâ sgèile taobh a-staigh ionad dĂ ta mura h-eil dreach gnĂŹomhachais agad. Chan eil e comasach ach scalable le caidreachas.
Gu mòr an urra ri cà ileachd an lÏonra agus luchd an fhrithealaiche. Chan obraich consul gu ceart mar fhrithealaiche air frithealaiche trang ma tha dà il sam bith san lÏonra, mar eisimpleir, astar neo-chòmhnard. Tha seo mar thoradh air ceanglaichean P2P agus modalan cuairteachaidh Úrachadh.
Duilgheadas aâ cumail sĂšil air ruigsinneachd. Ann an inbhe Consul faodaidh e a rĂ dh gu bheil a h-uile dad gu math, ach bhĂ saich e o chionn fhada.
Dh âfhuasgail sinn aâ mhòr-chuid de na duilgheadasan sin fhad âs a bha sinn aâ cleachdadh Consul, agus is e sin as coireach gun do thagh sinn e. Tha planaichean aig aâ chompanaidh airson backend eile, ach tha sinn air ionnsachadh dèiligeadh ri duilgheadasan agus tha sinn an-drĂ sta aâ fuireach leis aâ Chonsal.
Mar a tha Consal ag obair
Cuiridh sinn a-steach trĂŹ gu còig frithealaichean ann an ionad dĂ ta le cĂšmhnant. Chan obraich frithealaiche no dhĂ : cha bhith e comasach dhaibh cuòram a chuir air dòigh agus co-dhĂšnadh cò tha ceart agus cò tha ceĂ rr nuair nach eil an dĂ ta aâ freagairt. Chan eil barrachd air còig a 'dèanamh ciall, bidh cinneasachd a' tuiteam.
Bidh teachdaichean aâ ceangal ris na frithealaichean ann an òrdugh sam bith: na h-aon riochdairean, dĂŹreach leis aâ bhratach server = false.
Ăs deidh seo, bidh teachdaichean aâ faighinn liosta de cheanglaichean P2P agus aâ togail cheanglaichean nam measg fhèin.
Aig ĂŹre chruinneil, bidh sinn a 'ceangal grunn ionadan dĂ ta. Bidh iad cuideachd a 'ceangal P2P agus a' conaltradh.
Nuair a tha sinn airson dĂ ta fhaighinn air ais bho ionad dĂ ta eile, bidh an t-iarrtas aâ dol bho fhrithealaiche gu frithealaiche. Canar an sgeama seo Pròtacal serf. Tha am protocol Serf, mar Consul, air a leasachadh le HashiCorp.
Beagan fhĂŹrinnean cudromach mun Chonsal
Tha sgrĂŹobhainnean aig Consal a tha aâ mĂŹneachadh mar a tha e ag obair. Cha toir mi seachad ach fĂŹrinnean taghte as fhiach fios a bhith aca.
Bidh luchd-frithealaidh consail aâ taghadh maighstir am measg an luchd-bhòtaidh. Bidh Consal a 'taghadh maighstir bhon liosta de luchd-frithealaidh airson gach ionad dĂ ta, agus bidh a h-uile iarrtas a' dol thuige a-mhĂ in, ge bith dè an Ă ireamh de luchd-frithealaidh. Chan eil reothadh maighstir aâ leantainn gu ath-thaghadh. Mura tèid am maighstir a thaghadh, chan eil duine sam bith aâ frithealadh iarrtasan.
An robh thu ag iarraidh sgèileadh còmhnard? Duilich, chan eil.
Bidh iarrtas gu ionad dĂ ta eile aâ dol bho mhaighstir gu maighstir, ge bith dè am frithealaiche a thĂ inig e. Bidh am maighstir taghte aâ faighinn 100% den luchd, ach a-mhĂ in an luchd air iarrtasan air adhart. Tha leth-bhreac as Ăšire den dĂ ta aig a h-uile seirbheisiche san ionad dĂ ta, ach chan eil ach aon aâ freagairt.
Is e an aon dòigh air sgèile a bhith comasach air modh sean a chomasachadh air an neach-dèiligidh.
Ann am modh sean, faodaidh tu freagairt Ă s aonais cuòram. Is e seo modh anns am bi sinn a âtoirt seachad cunbhalachd dĂ ta, ach aâ leughadh beagan nas luaithe na an Ă bhaist, agus bidh frithealaiche sam bith a âfreagairt. Gu nĂ darra, a 'clĂ radh a-mhĂ in tro na mhaighstir.
Cha bhith Consal aâ dèanamh lethbhreac de dhĂ ta eadar ionadan dĂ ta. Nuair a thèid caidreachas a chur ri chèile, cha bhi ach a dhĂ ta fhèin aig gach frithealaiche. Dha feadhainn eile, bidh e an-còmhnaidh aâ tionndadh gu cuideigin eile.
Chan eil dearbhachd gnÏomhachd air a ghealltainn taobh a-muigh malairt. Cuimhnich nach tusa an aon fhear as urrainn rudan atharrachadh. Ma tha thu ga iarraidh ann an dòigh eadar-dhealaichte, dèan malairt le glas.
Chan eil gnĂŹomhachd bacaidh aâ gealltainn glasadh. Bidh an t-iarrtas a 'dol bho mhaighstir gu maighstir, agus chan ann gu dĂŹreach, agus mar sin chan eil gealltanas sam bith ann gun obraich am bacadh nuair a bhios tu a' bacadh, mar eisimpleir, ann an ionad dĂ ta eile.
Chan eil ACL cuideachd aâ gealltainn ruigsinneachd (ann an iomadh cĂšis). Is dòcha nach obraich an ACL leis gu bheil e air a stòradh ann an aon ionad dĂ ta caidreachais - ann an ionad dĂ ta ACL (Bun-sgoil DC). Mura freagair an DC thu, chan obraich an ACL.
Bheir aon mhaighstir reòta air aâ chaidreachas gu lèir reothadh. Mar eisimpleir, tha 10 ionadan dĂ ta ann an caidreachas, agus tha droch lĂŹonra aig aon dhiubh, agus tha aon mhaighstir a 'fĂ illigeadh. Bidh a h-uile duine a bhios a âconaltradh ris an sĂ s ann an cearcall: tha iarrtas ann, chan eil freagairt ann, bidh an snĂ ithlean aâ reothadh. Chan eil dòigh ann fios a bhith agad cuin a thachras seo, dĂŹreach ann an uair no dhĂ a thuiteas an caidreachas gu lèir. Chan eil dad as urrainn dhut a dhèanamh mu dheidhinn.
Tha inbhe, cuòram agus taghaidhean air an là imhseachadh le snà ithlean air leth. Cha tachair ath-thaghadh, cha nochd an inbhe dad. Tha thu a 'smaoineachadh gu bheil Consul beò agad, tha thu a' faighneachd, agus chan eil dad a 'tachairt - chan eil freagairt ann. Aig an aon à m, tha an inbhe a 'sealltainn gu bheil a h-uile dad gu math.
Tha sinn air an duilgheadas seo a choinneachadh agus bha againn ri pà irtean sònraichte de ionadan dà ta ath-thogail gus a sheachnadh.
Chan eil cuid de na h-eas-bhuannachdan gu h-Ă rd aig an dreach gnĂŹomhachais de Consul Enterprise. Tha iomadh gnĂŹomh feumail aige: taghadh luchd-bhòtaidh, cuairteachadh, sgèileadh. Chan eil ann ach aon âachâ - tha an siostam ceadachaidh airson siostam sgaoilte gu math daor.
Hackadh beatha: rm -rf /var/lib/consul - leigheas airson a h-uile galairean an Ă idseant. Mura h-eil rudeigin ag obair dhut, dĂŹreach sguab Ă s an dĂ ta agad agus luchdaich sĂŹos an dĂ ta bho leth-bhreac. As dualtaiche, obraichidh Consal.
BEFW
A-nis bruidhnidh sinn mu na chuir sinn ri Consul.
BEFW 's e acronaim airson BaicEndFiWuile. Bâ fheudar dhomh an toradh ainmeachadh ann an dòigh air choireigin nuair a chruthaich mi an stòr-tasgaidh gus aâ chiad gheallaidhean deuchainn a chuir a-steach. Tha an t-ainm seo fhathast.
Teamplaidean de riaghailtean a
Tha na riaghailtean sgrÏobhte ann an co-chòrdadh iptables.
-N BEFW
-P INPUT DROP
-A INPUT -m state â state CO-cheangailte, SEASMHACH -j GLACADH
-A INPUT -i lo -j GLACADH
-A INPUT -j BEFW
Bidh a h-uile dad aâ dol a-steach don t-sreath BEFW, ach a-mhĂ in ESTABLISHED, RELATED agus localhost. Faodaidh an teamplaid a bhith mar rud sam bith, is e seo dĂŹreach eisimpleir.
Ciamar a tha BEFW feumail?
Seirbheisean
Tha seirbheis againn, tha port aige an-còmhnaidh, nĂłd air a bheil e aâ ruith. Bhon nĂłd againn, faodaidh sinn faighneachd don neach-ionaid gu h-ionadail agus faighinn a-mach gu bheil seirbheis de sheòrsa air choreigin againn. Faodaidh tu cuideachd tagaichean a chuir.
Bidh seirbheis sam bith a tha aâ ruith agus clĂ raichte leis aâ Chonsal aâ tionndadh gu bhith na riaghailt iptables. Tha SSH againn - port fosgailte 22. Tha an sgriobt Bash sĂŹmplidh: curl agus iptables, chan eil feum air dad sam bith eile.
Cliaint
Ciamar a dh'fhosglas tu ruigsinneachd chan ann don a h-uile duine, ach gu roghnach? Cuir liostaichean IP ri stòradh KV a rèir ainm seirbheis.
Mar eisimpleir, tha sinn airson gum faigh a h-uile duine air an deicheamh lĂŹonra cothrom air an t-seirbheis SSH_TCP_22. Cuir aon raon beag TTL ris? agus a-nis tha ceadan sealach againn, mar eisimpleir, airson latha.
Ruigsinneachd
Bidh sinn a 'ceangal sheirbheisean agus luchd-dèiligidh: tha seirbheis againn, tha stòradh KV deiseil airson gach fear. A-nis bheir sinn cothrom chan ann don a h-uile duine, ach gu roghnach.
buidhnean
Ma sgrĂŹobhas sinn mĂŹltean de IPan airson ruigsinneachd a h-uile uair, fĂ saidh sinn sgĂŹth. Thig sinn suas le buidhnean - fo-sheata air leth ann an KV. Canaidh sinn e Alias ââââ(no buidhnean) agus buidhnean a stòradh an sin a rèir an aon phrionnsapal.
Dèanamaid ceangal: a-nis is urrainn dhuinn SSH fhosgladh chan ann gu sònraichte airson P2P, ach airson buidheann slà n no grunn bhuidhnean. San aon dòigh, tha TTL ann - faodaidh tu a chuir ri buidheann agus a thoirt air falbh bhon bhuidheann airson Úine.
Integreachadh
Is e an duilgheadas againn am bà illidh daonna agus fèin-ghluasad. Gu ruige seo tha sinn air fuasgladh fhaighinn air an dòigh seo.
Bidh sinn ag obair le Puppet, agus aâ gluasad a h-uile cĂ il co-cheangailte ris an t-siostam (còd tagraidh) thuca. Bidh Puppetdb (PostgreSQL cunbhalach) aâ stòradh liosta de sheirbheisean a tha aâ ruith an sin, gheibhear iad a rèir seòrsa goireas. An sin gheibh thu a-mach cò tha aâ cur a-steach cĂ ite. Tha siostam iarrtas tarraing agus aonadh againn airson seo cuideachd.
SgrĂŹobh sinn befw-sync, fuasgladh sĂŹmplidh a chuidicheas le bhith aâ gluasad dĂ ta. An toiseach, gheibh puppetdb cothrom air briosgaidean sioncronaich. Tha API HTTP air a rèiteachadh an sin: bidh sinn ag iarraidh dè na seirbheisean a thâ againn, dè a dhâfheumar a dhèanamh. An uairsin bidh iad a 'dèanamh iarrtas gu Consul.
A bheil amalachadh ann? Seadh: sgrĂŹobh iad na riaghailtean agus leig iad le iarrtasan tarraing a ghabhail. A bheil feum agad air port sònraichte no cuir aoigh ri buidheann air choireigin? Iarrtas Tarraing, lèirmheas - gun a bhith nas motha âLorg 200 ACL eile agus feuch ri rudeigin a dhèanamh mu dheidhinn.â
Leasachadh
Bheir pinging localhost le sèine riaghailt falamh 0,075 ms.
Nach cuir sinn 10 seòladh iptables ris an t-sreath seo. Mar thoradh air an sin, à rdaichidh am ping 000 tursan: tha iptables gu tur sreathach, bheir là imhseachadh gach seòladh beagan Úine.
Airson balla-teine ââââfar am bi sinn a 'gluasad mĂŹltean de ACL, tha tòrr riaghailtean againn, agus tha seo a' toirt a-steach latency. Tha seo dona airson protocolaidhean gèam.
Ach ma chuireas sinn 10 seòladh ann an ipset Bidh am ping eadhon aâ dol sĂŹos.
Is e aâ phuing gu bheil âOâ (iom-fhillteachd algairim) airson ipset an-còmhnaidh co-ionann ri 1, ge bith cia mheud riaghailt a thâ ann. FĂŹor, tha cuingealachadh ann - chan urrainn barrachd air riaghailtean 65535 a bhith ann. Airson a-nis tha sinn beò le seo: faodaidh tu an cur còmhla, an leudachadh, dĂ ipset a dhèanamh ann an aon.
Stòradh
Tha leantainn loidsigeach den phròiseas ath-aithris aâ stòradh fiosrachadh mu luchd-dèiligidh airson na seirbheis ann an ipset.
A-nis tha an aon SSH againn, agus cha bhith sinn aâ sgrĂŹobhadh 100 IP aig an aon Ă m, ach aâ suidheachadh ainm an ipset leis am feum sinn conaltradh, agus an riaghailt a leanas DROP. Faodar a thionndadh gu aon riaghailt âCò nach eil an seo, DROPâ, ach tha e nas soilleire.
A-nis tha riaghailtean agus seataichean againn. Is e am prÏomh obair seata a dhèanamh mus sgrÏobh thu an riaghailt, oir air dhòigh eile cha sgrÏobh iptables an riaghailt.
Sgeama coitcheann
Ann an cruth diagram, tha a h-uile dad a thuirt mi aâ coimhead mar seo.
Bidh sinn aâ gealltainn Puppet, thèid a h-uile cĂ il a chuir chun aoigh, seirbheisean an seo, ipset an sin, agus chan eil duine sam bith nach eil clĂ raichte an sin ceadaichte.
Ceadaich & Ă icheadh
Gus an saoghal a shà bhaladh gu sgiobalta no cuideigin a chuir dheth gu sgiobalta, aig toiseach a h-uile slabhraidh rinn sinn dà ipset: rules_allow и rules_deny. Ciamar a tha e ag obair?
Mar eisimpleir, tha cuideigin aâ cruthachadh luchd air an lĂŹon againn le botaichean. Roimhe sin, dh'fheumadh tu an IP aige a lorg bho na logaichean, a thoirt gu innleadairean lĂŹonra, gus an lorgadh iad stòr an trafaic agus casg a chuir air. Tha e aâ coimhead eadar-dhealaichte a-nis.
Bidh sinn ga chuir gu Consul, fuirich 2,5 diogan, agus tha e deiseil. Leis gu bheil Consul aâ cuairteachadh gu sgiobalta tro P2P, bidh e ag obair anns a h-uile Ă ite, ann am pĂ irt sam bith den t-saoghal.
Aon uair âs gun do chuir mi stad air WOT gu tur air sgĂ th mearachd leis aâ bhalla-teine. rules_allow - is e seo an Ă rachas againn an aghaidh a leithid de chĂšisean. Ma rinn sinn mearachd an Ă iteigin leis a 'bhalla-teine, tha rudeigin air a bhacadh an Ă iteigin, is urrainn dhuinn daonnan cĂšmhnant a chuir a-steach 0.0/0gus a h-uile cĂ il a thogail gu sgiobalta. Nas fhaide air adhart bidh sinn a 'rèiteachadh a h-uile cĂ il le lĂ imh.
Seataichean eile
Faodaidh tu seataichean sam bith eile a chur ris an fhĂ nais $IPSETS$.
Airson dè? Aig amannan feumaidh cuideigin ipset, mar eisimpleir, gus atharrais a dhèanamh air dÚnadh pà irt den bhuidheann. Faodaidh duine sam bith seataichean a thoirt leotha, an ainmeachadh, agus thèid an togail bhon Chonsal. Aig an aon à m, faodaidh seataichean pà irt a ghabhail ann an riaghailtean iptables no a bhith nan sgioba NOOP: Cumaidh an deamhan co-chòrdadh.
Luchd-cleachdaidh
Roimhe seo, bha e mar seo: an neach-cleachdaidh ceangailte ris an lĂŹonra agus fhuair e crĂŹochan tron ââĂ rainn. Mus tĂ inig ballachan teine ââââginealach Ăšr, cha robh fios aig Cisco ciamar a thuigeas e cĂ ite an robh an neach-cleachdaidh agus cĂ ite an robh an IP. Mar sin, cha deach ruigsinneachd a thoirt seachad ach tro ainm aoigheachd an inneil.
Dè rinn sinn? Fhuair sinn greim air an uair a fhuair sinn an seòladh. Mar as trice is e seo dot1x, Wi-Fi no VPN - bidh a h-uile cĂ il aâ dol tro RADIUS. Airson gach neach-cleachdaidh, bidh sinn aâ cruthachadh buidheann le ainm-cleachdaidh agus aâ cur IP ann le TTL a tha co-ionann ris an dhcp.lease aige - cho luath âs a thig e gu crĂŹch, falbhaidh an riaghailt.
A-nis is urrainn dhuinn ruigsinneachd fhosgladh gu seirbheisean, mar bhuidhnean eile, a rèir ainm neach-cleachdaidh. Tha sinn air am pian a thoirt a-mach Ă ainmean aoigheachd nuair a dhâ atharraicheas iad, agus tha sinn air an eallach a thoirt far innleadairean lĂŹonra leis nach eil feum aca air Cisco tuilleadh. A-nis bidh innleadairean iad fhèin aâ clĂ radh ruigsinneachd air na frithealaichean aca.
Insulation
Aig an aon Ă m, thòisich sinn a 'toirt air falbh an insulation. Ghabh manaidsearan seirbheis clĂ r-seilbhe, agus rinn sinn mion-sgrĂšdadh air na lĂŹonraidhean againn uile. Nach roinn sinn iad anns na h-aon bhuidhnean, agus air na frithealaichean riatanach chaidh na buidhnean a chur ris, mar eisimpleir, airson a dhol Ă s Ă icheadh. A-nis tha an aon aonaranachd stèidse aâ tighinn gu crĂŹch anns na riaghailtean_Ă icheadh ââââan cinneasachadh, ach chan ann anns an riochdachadh fhèin.
Bidh an sgeama ag obair gu sgiobalta agus gu sĂŹmplidh: bheir sinn air falbh a h-uile ACL bho na frithealaichean, luchdaich sĂŹos am bathar-cruaidh, agus lughdaichidh sinn an Ă ireamh de VLANan iomallach.
Smachd ionracas
Roimhe sin, bha inneal-brosnachaidh sònraichte againn a thug cunntas air nuair a dhâ atharraich cuideigin riaghailt balla-teine ââââle lĂ imh. Bha mi aâ sgrĂŹobhadh loidhne mhòr airson sĂšil a thoirt air riaghailtean balla-teine, bha e duilich. Tha ionracas a-nis fo smachd BEFW. Bidh e gu dĂšrachdach aâ dèanamh cinnteach nach atharraich na riaghailtean a nĂŹ e. Ma dh'atharraicheas cuideigin na riaghailtean balla-teine, atharraichidh e a h-uile cĂ il air ais. âStèidhich mi neach-ionaid gu sgiobalta gus am bâ urrainn dhomh obair bhon taigh â- chan eil barrachd roghainnean mar sin ann.
Bidh BEFW aâ cumail smachd air an ipset bho na seirbheisean agus liosta ann am befw.conf, riaghailtean seirbheisean ann an sreath BEFW. Ach chan eil e a 'cumail sĂšil air slabhraidhean agus riaghailtean eile agus ipsets eile.
DĂŹon tubaist
Bidh BEFW an-còmhnaidh aâ stòradh an deagh staid mu dheireadh a tha aithnichte gu dĂŹreach ann an structar binary state.bin. Ma thèid rudeigin ceĂ rr, bidh e an-còmhnaidh aâ dol air ais chun state.bin seo.
Is e seo à rachas an aghaidh gnÏomhachd Consail neo-sheasmhach, nuair nach do chuir e dà ta a-steach no nuair a rinn cuideigin mearachd agus a chleachd e riaghailtean nach gabh a chuir an sà s. Gus dèanamh cinnteach nach bi sinn air ar fà gail às aonais balla-teine, gluaisidh BEFW air ais chun staid as Úire ma thachras mearachd aig Ïre sam bith.
Ann an suidheachaidhean èiginneach, is e gealltanas a tha seo gum fĂ g sinn balla-teine ââââag obair. Bidh sinn aâ fosgladh a h-uile lĂŹonra glas an dòchas gun tig an rianaire airson a chĂ radh. Uaireigin cuiridh mi seo anns na configs, ach a-nis chan eil againn ach trĂŹ lĂŹonraidhean glasa: 10/8, 172/12 agus 192.168/16. Taobh a-staigh ar Consal, tha seo na fheart cudromach a chuidicheas sinn gus tuilleadh leasachaidh a dhèanamh.
Demo: rè na h-aithisg, tha Ivan a 'sealltainn modh demo BEFW. Tha e nas fhasa an taisbeanadh fhaicinn видоО. Còd stòr demo ri fhaighinn air GitHub.
an cois
Innsidh mi dhut mu na mialan air an do thachair sinn.
ipset cuir seata 0.0.0.0/0. Dè thachras ma chuireas tu 0.0.0.0/0 ri ipset? An tèid a h-uile IP a chur ris? Am bi ruigsinneachd eadar-lÏn ri fhaighinn?
Chan e, gheibh sinn biast a chosgas dĂ uair a thĂŹde de dhâ Ăšine downt dhuinn. A bharrachd air an sin, chan eil am biast air obrachadh bho 2016, tha e suidhichte ann an RedHat Bugzilla fon Ă ireamh # 1297092, agus lorg sinn e le tubaist - bho aithisg leasaiche.
Tha e a-nis na riaghailt teann aig BEFW sin 0.0.0.0/0 tionndadh gu dà sheòladh: 0.0.0.0/1 и 128.0.0.0/1.
seata ath-nuadhachadh ipset < file. Dè bhios ipset aâ dèanamh nuair a dhâinnseas tu dha restore? A bheil thu aâ smaoineachadh gu bheil e ag obair san aon dòigh ri iptables? An toir e air ais dĂ ta?
Chan eil dad mar sin - bidh e a 'tighinn còmhla, agus chan eil na seann sheòlaidhean a' dol a dh'à ite sam bith, cha chuir thu bacadh air ruigsinneachd.
Lorg sinn bug nuair a bha sinn aâ dèanamh deuchainn air aonaranachd. A-nis tha siostam caran toinnte - an Ă ite sin restore air a chumail create tempan uairsin restore flush temp и restore temp. Aig deireadh suaip: airson atomicity, oir ma nĂŹ thu e an toiseach flush agus aig an Ă m so thig cuid a phacaid, cuirear air falbh e agus thèid rudeigin ceĂ rr. Mar sin tha beagan draoidheachd dhubh an sin.
consul kv faigh -datacenter = eile. Mar a thuirt mi, tha sinn den bheachd gu bheil sinn ag iarraidh beagan dà ta, ach gheibh sinn an dà rna cuid dà ta no mearachd. Faodaidh sinn seo a dhèanamh gu h-ionadail tro Consul, ach anns a 'chÚis seo bidh an dithis a' reothadh.
Tha an neach-dèiligidh Consul ionadail na phasgan thairis air an HTTP API. Ach tha e dĂŹreach crochte agus chan eil e aâ freagairt Ctrl+C, no Ctrl+Z, no rud sam bith, a-mhĂ in kill -9 anns an ath chonsail. Thachair sinn ri seo nuair a bha sinn aâ togail cruinneachadh mòr. Ach chan eil fuasgladh againn fhathast; tha sinn ag ullachadh airson aâ mhearachd seo a chĂ radh ann an Consul.
Chan eil stiĂširiche aâ chonsal aâ freagairt. Chan eil ar maighstir san ionad dĂ ta aâ freagairt, tha sinn aâ smaoineachadh: âIs dòcha gun obraich an algairim ath-thaghadh a-nis?â
Chan obraich, chan obraich e, agus cha sheall sgrĂšdadh dad: Canaidh an Consal gu bheil clĂ r-amais gealltanas ann, chaidh stiĂširiche a lorg, tha a h-uile dad gu math.
Ciamar a dhèiligeas sinn ri seo? service consul restart ann an cron gach uair. Ma tha 50 frithealaiche agad, chan eil dad mòr ann. Nuair a tha 16 dhiubh ann, tuigidh tu mar a tha e ag obair.
co-dhĂšnadh
Mar thoradh air an sin, fhuair sinn na buannachdan a leanas:
Còmhdach 100% de gach inneal Linux.
Astar
fèin-ghluasad.
Shaor sinn innleadairean bathar-cruaidh is lĂŹonra bho thrĂ illealachd.
Tha cothroman amalachaidh air nochdadh a tha cha mhòr gun chrÏoch: eadhon le Kubernetes, eadhon le Ansible, eadhon le Python.
ĐинŃŃŃ: Consul, leis am feum sinn a nis a bhi beò, agus an coslas ro Ă rd am mearachd. Mar eisimpleir, aon uair aig 6f (prĂŹomh Ăšine anns an Ruis) bha mi a 'deasachadh rudeigin anns na liostaichean de lĂŹonraidhean. Bha sinn dĂŹreach aâ togail insulation aig BEFW aig an Ă m. Rinn mi mearachd an Ă iteigin, tha e coltach gun do chomharraich mi am masg ceĂ rr, ach thuit a h-uile cĂ il ann an dĂ dhiog. Bidh an sgrĂšdadh a âlasadh suas, tha an neach-taic a tha air dleasdanas aâ ruith: âTha a h-uile cĂ il againn!â Thionndaidh ceannard na roinne liath nuair a mhĂŹnich e don ghnĂŹomhachas carson a thachair seo.
Tha cosgais mhearachdan cho à rd is gu bheil sinn air ar modh casg iom-fhillte fhèin a chruthachadh. Ma chuireas tu seo an gnÏomh air là rach cinneasachaidh mòr, cha leig thu leas prÏomh chomharradh thairis air Consul a thoirt don h-uile duine. Thig seo gu crÏch gu dona.
Cosgais SgrĂŹobh mi còd airson 400 uair a-mhĂ in. Bidh an sgioba agam de 4 neach aâ caitheamh 10 uairean sa mhĂŹos air taic don h-uile duine. An coimeas ri prĂŹs balla-teine ââââginealach Ăšr sam bith, tha e an-asgaidh.
Planaichean. Is e am plana fad-Ăšine còmhdhail eile a lorg airson a dhol an Ă ite no aâ cur ris aâ Chonsal. Is dòcha gur e Kafka a bhios ann no rudeigin coltach ris. Ach anns na bliadhnaichean ri teachd bidh sinn beò air Consul.
Planaichean sa bhad: amalachadh le Fail2ban, le sgrÚdadh, le nftables, is dòcha le sgaoilidhean eile, meatrach, sgrÚdadh adhartach, optimization. Tha taic Kubernetes cuideachd an à iteigin anns na planaichean, oir a-nis tha grunn chlà ran againn agus am miann.
Tuilleadh bho na planaichean:
lorg neo-riaghailteachdan ann an trafaig;
stiĂšireadh mapa lĂŹonra;
taic Kubernetes;
cruinneachadh pasganan airson a h-uile siostam;
lĂŹn-UI.
Tha sinn an-còmhnaidh ag obair air leudachadh a dhèanamh air an rèiteachadh, à rdachadh meatrach agus optimization.
Thig còmhla ris aâ phròiseact. Thionndaidh am pròiseact gu bhith fionnar, ach, gu mĂŹ-fhortanach, tha e fhathast na phròiseact aon-neach. Thig gu GitHub agus feuch ri rudeigin a dhèanamh: geall, deuchainn, moladh rudeigin, thoir do mheasadh.
Aig an aon Ă m tha sinn ag ullachadh airson Saint HighLoad++, a thèid a chumail air 6 agus 7 Giblean ann an St Petersburg, agus tha sinn aâ toirt cuireadh do luchd-leasachaidh siostaman lĂ n luchd tagradh airson aithisg. Tha fios aig luchd-labhairt eòlach mu thrĂ th dè a nĂŹ iad, ach dhaibhsan a tha air Ăšr bruidhinn tha sinn aâ moladh co-dhiĂš feuchainn. Tha grunn bhuannachdan ann a bhith aâ gabhail pĂ irt sa cho-labhairt mar neach-labhairt. Faodaidh tu leughadh dè an fheadhainn, mar eisimpleir, aig an deireadh den artaigil seo.