Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3
ClĂ r fĂ s frithealaiche companaidh.

Bha modal lĂŹonra againn. Airson an Ă m sin bha e as fheĂ rr.

Consal + iptables = :3
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.

Consal + iptables = :3
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.

Consal + iptables = :3
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.

Consal + iptables = :3
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.

Consal + iptables = :3

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.”

Consal + iptables = :3

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 + iptables = :3

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.

Consal + iptables = :3

Bidh teachdaichean a’ ceangal ris na frithealaichean ann an òrdugh sam bith: na h-aon riochdairean, dìreach leis a’ bhratach server = false.

Consal + iptables = :3

Às deidh seo, bidh teachdaichean a’ faighinn liosta de cheanglaichean P2P agus a’ togail cheanglaichean nam measg fhèin.

Consal + iptables = :3

Aig ĂŹre chruinneil, bidh sinn a 'ceangal grunn ionadan dĂ ta. Bidh iad cuideachd a 'ceangal P2P agus a' conaltradh.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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$.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Consal + iptables = :3

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.

Source: www.habr.com

Cuir beachd ann