Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Nzvimbo dzemazuva ano dzedata dzine mazana ezvishandiso zvinoshanda zvakaiswa, zvakafukidzwa nemhando dzakasiyana dzekutarisa. Asi kunyangwe mainjiniya akakodzera ane kutarisa kwakakwana muruoko anozokwanisa kupindura nemazvo kunetiweki kukundikana mumaminetsi mashoma. Mumushumo pamusangano weNext Hop 2020, ndakapa DC network dhizaini nzira, ine yakasarudzika chimiro - iyo data data inozviporesa mumamilliseconds. Kunyanya, injinjini inogadzirisa dambudziko, nepo masevhisi asingazvione.

- Kutanga, ini ndichapa sumo yakadzama kune avo vangave vasingazive chimiro cheDC yemazuva ano.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Kune akawanda mainjiniya etiweki, network yedata data inotanga, hongu, neToR, ine switch mune rack. ToR kazhinji ine marudzi maviri ezvibatanidza. Iwo madiki anoenda kumaseva, vamwe - kune N nguva zhinji yavo - enda kune spines yedanho rekutanga, ndiko kuti, kune yayo uplinks. Uplinks anowanzoonekwa seakaenzana, uye traffic pakati peuplinks yakaenzana zvichienderana nehashi kubva ku5-tuple, iyo inosanganisira proto, src_ip, dst_ip, src_port, dst_port. Hapana mashura apa.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Tevere, chirongwa chekuvaka chinotaridzika sei? Mitsipa yedanho rekutanga haina kubatana kune mumwe nemumwe, asi yakabatana kuburikidza nepamusoro-soro. Tsamba X ichave nebasa rema superspines; ingangoita semuchinjiko-kubatanidza.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Uye zviri pachena kuti, kune rumwe rutivi, tori dzakabatana kune ese spines ekutanga nhanho. Chii chakakosha mumufananidzo uyu? Kana isu tine kupindirana mukati me rack, ipapo kupindirana, hongu, kunoenda kuburikidza neToR. Kana kupindirana kuchiitika mukati memodule, ipapo kupindirana kunoitika kuburikidza nekutanga nhanho spines. Kana kupindirana kuri intermodular - sepano, ToR 1 uye ToR 2 - ipapo kupindirana kunoenda kuburikidza nemaspines eese ekutanga neyechipiri mazinga.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Muchidzidzo, chivakwa chakadaro chiri nyore scalable. Kana isu tine chiteshi chengarava, nzvimbo yakasara munzvimbo yedata uye pre-yakaiswa fiber, ipapo nhamba yemigwagwa inogona kugara ichiwedzerwa, nekudaro ichiwedzera huwandu hwese hwehurongwa. Izvi zviri nyore kwazvo kuita pamapepa. Zvingave seizvi muhupenyu. Asi nyaya yanhasi haisi iyoyi.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Ndinoda kuti mhedziso dzakarurama dziitwe. Tine nzira dzakawanda mukati me data center. Ivo vakazvimiririra. Imwe nzira mukati me data data inongogoneka mukati meToR. Mukati memodule, tine nhamba yenzira dzakaenzana nenhamba yemigwagwa. Nhamba yemakwara pakati pemamodules yakaenzana nechigadzirwa chenhamba yendege uye nhamba ye superspines mundege imwe neimwe. Kuti zvive zvakajeka, kuti uwane pfungwa yechiyero, ini ndichapa nhamba dzinoshanda kune imwe yeYandex data centers.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Kune ndege sere, imwe neimwe ndege ine 32 superspines. Nekuda kweizvozvo, zvinoitika kuti mukati memodule mune nzira sere, uye nekupindirana kweintermodule kwatove ne256 yavo.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Ndokunge, kana isu tiri kugadzira Cookbook, kuyedza kudzidza kuvaka-inoshivirira data nzvimbo dzinozviporesa, saka planar architecture ndiyo sarudzo chaiyo. Inogadzirisa dambudziko rekuyera, uye mukufungidzira zviri nyore. Kune nzira dzakawanda dzakazvimirira. Mubvunzo unoramba uripo: chivakwa chakadaro chinopona sei kukundikana? Pane kukundikana kwakasiyana-siyana. Uye tichakurukura izvi ikozvino.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Regai mumwe wedu superspines "kurwara". Apa ndakadzokera kuchivako chendege mbiri. Tichanamatira neizvi semuenzaniso nekuti zvinongove nyore kuona zviri kuitika nezvikamu zvishoma zvinofamba. Rega X11 irware. Izvi zvichakanganisa sei masevhisi anogara mukati medata centers? Zvakawanda zvinoenderana nekuti kukundikana kunoratidzika sei.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Kana kukundikana kwakanaka, inobatwa pachiyero che otomatiki cheiyo BFD imwechete, iyo otomatiki inoisa nerufaro majoini ane dambudziko uye inoparadzanisa dambudziko, saka zvese zvakanaka. Tine nzira dzakawanda, traffic inodzoserwa ipapo ipapo kune dzimwe nzira, uye masevhisi hapana chaanozoona. Ichi chinyorwa chakanaka.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Mamiriro akaipa ndeekuti kana tikaramba tichirasikirwa, uye otomatiki haaone dambudziko. Kuti tinzwisise kuti izvi zvinokanganisa sei chikumbiro, tichafanira kupedza nguva shoma tichikurukura kuti TCP inoshanda sei.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Ndinovimba handisi kuvhundutsa chero munhu neruzivo urwu: TCP iprotocol yekusimbisa yekufambisa. Kureva kuti, mune yakapfava, mutumi anotumira mapaketi maviri uye anogamuchira ack yakawedzera paari: "Ndagamuchira mapaketi maviri."
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Mushure meizvozvo, achatumira mamwe mapaketi maviri, uye mamiriro acho achadzokorora. Ndinokumbira ruregerero mberi nekurerutsa. Iyi mamiriro ndeyechokwadi kana hwindo (nhamba yemapakiti ekubhururuka) ari maviri. Zvechokwadi, muchiitiko chezvizhinji izvi hazvirevi hazvo. Asi saizi yehwindo haikanganisi mamiriro ekutumira kwepaketi.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chinoitika kana tikarasa packet 3? Muchiitiko ichi, mugamuchiri achagamuchira mapaketi 1, 2 uye 4. Uye iye achanyatso taurira mutumiri achishandisa SACK sarudzo: "Unoziva, vatatu vakasvika, asi pakati pakarasika." Anoti, "Ack 2, SACK 4."
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Panguva ino, mutumiri pasina matambudziko anodzokorora chaizvo packet yakarasika.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Asi kana pakiti yekupedzisira muhwindo yakarasika, mamiriro acho ezvinhu achaita zvakasiyana zvachose.

Iye anogamuchira anogamuchira mapaketi matatu ekutanga uye chekutanga chese anotanga kumirira. Kutenda kune mamwe ma optimizations muLinux kernel's TCP stack, inomirira pakiti repairi kunze kwekunge mireza ichiratidza pachena kuti ndiyo yekupedzisira pakiti kana chimwe chinhu chakafanana. Ichamirira kusvika Kunonoka ACK timeout yapera uye yozotumira kubvuma pamapaketi matatu ekutanga. Asi zvino mutumiri achamirira. Haazive kuti pasuru yechina yakarasika here kana kuti yava kuda kusvika. Uye kuitira kuti isaremedze network, ichaedza kumirira chiratidzo chakajeka chekuti packet yarasika, kana kuti RTO timeout ipere.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chinonzi RTO timeout? Iyi ndiyo yakawanda yeRTT yakaverengwa neTCP stack uye imwe nguva dzose. Ndeupi rudzi rwechigarire ichi, isu tichakurukura zvino.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Asi chinhu chakakosha ndechekuti kana isu tisina rombo rakanaka zvakare uye yechina pakiti yakarasika zvakare, ipapo iyo RTO inopetwa kaviri. Ndiko kuti, kuedza kwega kwega kusina kubudirira kunoreva kupeta nguva yekubuda.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Zvino ngationei kuti chigadziko ichi chakaenzana nei. Nekusagadzikana, iyo shoma RTO ndeye 200 ms. Iyi ndiyo shoma RTO yemapakeji edata. Kune SYN mapaketi akasiyana, 1 sekondi. Sezvauri kuona, kunyangwe kuedza kwekutanga kutumirazve mapaketi kunotora 100 nguva yakareba kupfuura iyo RTT mukati me data data.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Zvino ngatidzokere kuchiitiko chedu. Chii chiri kuitika nesevhisi? Basa rinotanga kurasikirwa nemapakiti. Rega sevhisi ive nerombo rakanaka pakutanga uye irasikirwe nechimwe chinhu pakati pehwindo, ipapo inogamuchira SACK uye inotumira zvakare mapaketi akarasika.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Asi kana rombo rakaipa richidzokorora, saka tine RTO. Chii chakakosha apa? Ehe, isu tine nzira dzakawanda mumambure edu. Asi iyo TCP traffic yeimwe chaiyo TCP yekubatanidza icharamba ichipfuura nepakati imwechete yakatyoka stack. Packet kurasikirwa, chero iyi yemashiripiti X11 yedu isingabude yega, haitungamiri kune traffic inoyerera munzvimbo dzisina dambudziko. Isu tiri kuedza kuendesa iyo packet kuburikidza neiyo imwechete yakaputsika stack. Izvi zvinotungamirira kukukundikana kwekutsvaga: nzvimbo yedata igadziriro yezvikumbiro zvinopindirana, uye zvimwe zvekubatana kweTCP kwezvose izvi zvinoshandiswa zvinotanga kuderera - nokuti superspine inokanganisa mapurogiramu ose aripo mukati me data center. Sezvinorehwa neshoko rokuti: kana usina kupfeka bhiza shangu, bhiza rairemara; bhiza rakakamhina, shoko harina kuziviswa; report haina kuunzwa - takarasikirwa nehondo. Chete pano kuverenga kuri mumasekonzi kubva panguva iyo dambudziko rinomuka kusvika padanho rekuora iro masevhisi anotanga kunzwa. Izvi zvinoreva kuti vashandisi vanogona kunge vari kurasikirwa nechimwe chinhu pane imwe nzvimbo.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Pane maviri echinyakare mhinduro anopindirana. Yekutanga masevhisi ari kuyedza kuisa mashanga mukati uye kugadzirisa dambudziko seizvi: β€œNgatitorei chimwe chinhu muTCP stack. Ngatitorei nguva padanho rekunyorera kana masesheni eTCP anogara kwenguva refu ane cheki yehutano hwemukati. " Dambudziko nderekuti mhinduro dzakadaro: a) hadzina kuyera zvachose; b) havana kutariswa zvakanyanya. Ndokunge, kunyangwe kana sevhisi ikagadzirisa netsaona iyo TCP stack nenzira inoita kuti ive nani, kutanga, hazvibviri kushanda kune ese maapplication uye ese data data, uye chechipiri, kazhinji, hainganzwisise kuti zvakaitwa. zvakanaka, uye kwete. Ndiko kuti, inoshanda, asi inoshanda zvisina kunaka uye haina kuyera. Uye kana pane dambudziko retiweki, ndiani ane mhosva? Chokwadi, NOC. NOC inoita sei?

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Masevhisi mazhinji anotenda kuti muNOC basa rinoitika seizvi. Asi kutaura chokwadi, kwete izvozvo chete.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

NOC mune classical scheme inobatanidzwa mukuvandudza akawanda ekutarisa masisitimu. Aya ese ari maviri dema bhokisi uye chena bhokisi yekutarisa. Nezve muenzaniso we black box spine monitoring akaudza Alexander Klimenko panguva yekupedzisira Inotevera Hop. Nenzira, kutarisa uku kunoshanda. Asi kunyangwe kutarisisa kwakanaka kuchave nekunonoka kwenguva. Kazhinji aya maminetsi mashoma. Mushure mekunge yaenda, mainjiniya ari pabasa anoda nguva yekupeta-kutarisa mashandiro ayo, kugadzirisa dambudziko uye kudzima nzvimbo ine dambudziko. Ndiko kuti, muchiitiko chakanakisisa, kurapa dambudziko kunotora maminitsi mashanu, mumamiriro ezvinhu akaipisisa, maminitsi makumi maviri, kana zvisingaoneki pakarepo apo kurasikirwa kunoitika. Zviri pachena kuti nguva yese iyi - 5 kana maminitsi makumi maviri - masevhisi edu acharamba achitambura, izvo zvimwe zvisina kunaka.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chaungada chaizvo kugamuchira? Tine nzira dzakawanda kwazvo. Uye matambudziko anomuka chaizvo nekuti TCP inoyerera isina rombo rakanaka inoramba ichishandisa nzira imwechete. Tinoda chimwe chinhu chinotibvumira kushandisa nzira dzakawanda mukati mekubatana kweTCP imwe chete. Zvingaita sekuti tine mhinduro. Kune TCP, iyo inonzi multipath TCP, kureva, TCP yenzira dzakawanda. Ichokwadi, yakagadzirirwa basa rakasiyana zvachose - kune mafoni ane akati wandei network. Kuti uwedzere kutamisa kana kuita yekutanga / backup modhi, michina yakagadziridzwa inogadzira akawanda shinda (masesheni) pachena kune application uye inokubvumidza kuti uchinje pakati pawo kana watadza. Kana, sezvandakataura, wedzera tambo.

Asi pane nuance pano. Kuti tinzwisise kuti chii, tichafanirwa kutarisa kuti shinda dzinogadzwa sei.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Threads akaiswa sequentially. Mutambo wekutanga unoiswa pekutanga. Shinda dzinotevera dzinobva dzasetwa uchishandisa cookie yakatobvumiranwa mukati meshinda iyoyo. Uye heino dambudziko.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Dambudziko nderekuti kana shinda yekutanga ikasazvisimbisa pachayo, yechipiri neyechitatu shinda haizombomuka. Ndiko kuti, multipath TCP haigadzirise kurasikirwa kweSYN packet mukuyerera kwekutanga. Uye kana SYN ikarasika, multipath TCP inoshanduka kuita TCP yenguva dzose. Izvi zvinoreva kuti munharaunda ye data data haizotibatsiri kugadzirisa dambudziko rekurasikirwa mufekitari uye kudzidza kushandisa nzira dzakawanda kana pane kukundikana.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chingatibatsira? Vamwe venyu vakatofungidzira kubva pazita kuti chikamu chakakosha mune yedu imwe nyaya ichave iyo IPv6 inoyerera label musoro ndima. Zvechokwadi, iyi imunda inoonekwa muv6, haisi muv4, inotora 20 bits, uye kwave kune kukakavara pamusoro pekushandiswa kwayo kwenguva yakareba. Izvi zvinofadza zvikuru - pakanga paine kukakavara, chimwe chinhu chakagadziriswa mukati meRFC, uye panguva imwechete kushandiswa kwakaonekwa muLinux kernel, iyo yakanga isina kunyorwa chero kupi zvako.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Ndinokukoka kuti uende neni pakuongorora zvishoma. Ngatitarisei zvanga zvichiitika muLinux kernel mumakore mashoma apfuura.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

gore ra2014. Injiniya kubva kune imwe hombe uye inoremekedzwa kambani inowedzera kune mashandiro eLinux kernel kutsamira kweiyo inoyerera label kukosha pane socket hashi. Vaiedza kugadzirisa chii apa? Izvi zvine chekuita neRFC 6438, iyo yakakurukura nyaya inotevera. Mukati me data data, IPv4 inowanzovharirwa muIPv6 mapaketi, nekuti fekitori pachayo iri IPv6, asi IPv4 inofanirwa kupihwa kunze. Kwenguva yakareba pakanga paine matambudziko nekuchinja kwaisakwanisa kutarisa pasi pemisoro miviri yeIP kusvika kuTCP kana UDP uye kuwana src_ports, dst_ports ipapo. Zvakazoitika kuti hashi, kana iwe ukatarisa maviri ekutanga IP misoro, yakave yakada kugadziriswa. Kuti udzivise izvi, kuitira kuti kuenzanirana kweiyi yakavharidzirwa traffic inoshanda nemazvo, yakakurudzirwa kuwedzera hashi ye5-tuple encapsulated packet kune kukosha kweiyo flow label field. Anenge chinhu chimwe chete chakaitwa kune mamwe encapsulation schemes, yeUDP, yeGRE, iyo yekupedzisira yakashandisa GRE Key ndima. Imwe nzira kana imwe, zvinangwa pano zvakajeka. Uye pamwe panguva iyoyo nekufamba kwenguva vaive vanobatsira.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Muna 2015, chigamba chitsva chinobva kune imwechete inoremekedzwa mainjiniya. Anonakidza chaizvo. Iyo inotaura zvinotevera - isu tichagadzirisa hashi kana chiitiko chisina kunaka chenzira. Chii chiitiko chisina kunaka chenzira? Iyi ndiyo RTO yatakakurukura kare, ndiko kuti, kurasikirwa kwemuswe wehwindo chiitiko chisina kunaka zvechokwadi. Chokwadi, zvakaoma kufungidzira kuti ndizvo zvazviri.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

2016, imwe kambani ine mukurumbira, zvakare yakakura. Iyo inobvisa madondoro ekupedzisira uye inoita kuti hashi, iyo yatakamboita zvisina tsarukano, ikozvino inochinja kune yega yega SYN kudzorera uye mushure mega ega RTO nguva. Uye mutsamba iyi, kekutanga uye kekupedzisira, chinangwa chekupedzisira chinotaurwa - kuve nechokwadi chekuti traffic muchiitiko chekurasikirwa kana kusangana kwechiteshi inokwanisa kudzoreredzwa zvinyoro nyoro uye kushandisa nzira dzakawanda. Zvechokwadi, mushure meizvi pakanga pane zvinyorwa zvakawanda, unogona kuzviwana nyore nyore.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Kunyangwe kwete, haugone, nekuti pasati pave neimwe chinyorwa pane iyi nyaya. Asi tinoziva!

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Uye kana iwe usinganyatsonzwisisa zvakaitwa, ini ndichakuudza ikozvino.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chakaitwa, chii chakawedzerwa kuLinux kernel? txhash inochinja kune yakasarudzika kukosha mushure mechimwe chiitiko cheRTO. Iyi ndiyo mhedzisiro yakaipa kwazvo yenzira. Iyo hashi inotsamira pane iyi txhash, uye iyo yekuyerera label inoenderana ne skb hash. Pane mamwe maverengero pamabasa pano; zvese zvese hazvigone kuiswa pane imwe slide. Kana paine munhu anoda kuziva, unogona kuenda nepakati kernel kodhi uye tarisa.

Chii chakakosha apa? Iko kukosha kweiyo flow label field inoshanduka kuita nhamba isina kurongeka mushure meRTO yega yega. Izvi zvinokanganisa sei yedu inosuruvarisa TCP rwizi?
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Kana SACK ikaitika, hapana chinochinja nekuti tiri kuyedza kutumira inozivikanwa yakarasika packet. So far saka zvakanaka.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Asi mune iyo RTO, chero isu tawedzera kuyerera label kune hash basa paToR, traffic inogona kutora imwe nzira. Uye iyo nzira dzakawanda, mukana mukuru wekuti ichawana nzira isingakanganisike nekutadza pane chimwe chinhu.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Dambudziko rimwe rasara - RTO. Hongu, pane imwe nzira, asi nguva yakawanda inoraswa pane iyi. 200 ms yakawanda. Sekondi ndeyemusango zvachose. Pakutanga, ndakataura nezve nguva dzekubuda kuti masevhisi anogadziriswa. Saka, chechipiri inguva yekupera, iyo inowanzogadziriswa nesevhisi padanho rekushandisa, uye mune iyi sevhisi ichave yakanyatso kurongeka. Uyezve, ndinodzokorora, iyo chaiyo RTT mukati memazuva ano data data yakatenderedza 1 millisecond.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chaungaite neRTO nguva yekubuda? Iyo nguva yekupera, iyo inokonzeresa RTO kana ikarasikirwa nemapaketi edata, inogona kugadzirwa zviri nyore kubva munzvimbo yemushandisi: pane IP utility, uye imwe yeparamita yayo ine yakafanana rto_min. Tichifunga kuti RTO, hongu, inoda kugadziridzwa kwete pasi rose, asi kune yakapihwa prefixes, michina yakadai inoita seinoshanda.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chokwadi, neSYN_RTO zvese zvakatoipa. Zvagara zvakaroverwa pasi. Iyo kernel ine yakagadziriswa kukosha kwe1 sekondi, uye ndizvozvo. Iwe haugone kusvika ipapo kubva munzvimbo yemushandisi. Pane nzira imwe chete.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

eBPF inouya kununura. Kuti zvive nyore, aya mapurogiramu maduku C. Vanogona kuiswa muzvikorekedzo munzvimbo dzakasiyana-siyana mukuitwa kwekernel stack uye TCP stack, iyo iwe unogona kuchinja nhamba yakawanda kwazvo yezvirongwa. Kazhinji, eBPF inguva refu. Panzvimbo yekucheka akawanda evatsva sysctl paramita uye kuwedzera IP utility, kufamba kuri kuenda kuBPF uye kuwedzera mashandiro ayo. Uchishandisa eBPF, unogona kushandura zvine simba zvidzoreso zvekusangana uye mamwe akasiyana maTCP marongero.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Asi zvakakosha kwatiri kuti inogona kushandiswa kushandura SYN_RTO hunhu. Uyezve, kune muenzaniso wakatumirwa pachena: https://elixir.bootlin.com/linux/latest/source/samples/bpf/tcp_synrto_kern.c. Chii chaitwa pano? Muenzaniso uri kushanda, asi pachawo wakaoma zvikuru. Pano zvinofungidzirwa kuti mukati me data data tinofananidza yekutanga 44 bits; kana ichienderana, saka isu tiri mukati me data data. Uye mune iyi kesi isu tinoshandura iyo SYN_RTO timeout kukosha kune 4ms. Basa rimwe chetero rinogona kuitwa zvakanyanyisa. Asi uyu muenzaniso wakapfava unoratidza kuti izvi a) zvinogoneka; b) zviri nyore.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Chii chatinoziva kare? Icho chokwadi chekuti chivakwa chendege chinobvumira kuyera, chinova chinobatsira zvakanyanya kwatiri patinogonesa kuyerera label paToR uye kuwana kugona kuyerera kutenderedza nzvimbo dzine dambudziko. Nzira yakanakisa yekudzikisa RTO uye SYN-RTO kukosha ndeye kushandisa eBPF zvirongwa. Mubvunzo unoramba uripo: zvakachengeteka here kushandisa inoyerera label yekuenzanisa? Uye pane nuance pano.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Tomboti une sevhisi panetiweki yako inogara mune chero cast. Nehurombo, ini handina nguva yekuenda kune zvakadzama nezve anycast, asi ibasa rakagoverwa nemaseva emuviri akasiyana anowanikwa kuburikidza neiyo IP kero. Uye heino dambudziko rinogona kuitika: chiitiko cheRTO chinogona kuitika kwete chete kana traffic inopfuura nepamucheka. Zvinogonawo kuitika paToR buffer level: kana chiitiko che incast chikaitika, chinogona kutoitika pamubati kana muenzi arasa chimwe chinhu. Kana chiitiko cheRTO chikaitika uye chinoshandura kuyerera label. Muchiitiko ichi, traffic inogona kuenda kune imwe anycast muenzaniso. Ngatifungei kuti iyi inyika inokasha, ine mamiriro ekubatanidza - inogona kunge iri L3 Balancer kana imwe sevhisi. Ipapo dambudziko rinomuka, nekuti mushure meRTO iyo TCP yekubatanidza inosvika pane sevha, iyo isingazive chinhu nezve iyi TCP kubatana. Uye kana isu tisina nyika yekugovana pakati pesevha chero ipi zvayo, ipapo traffic yakadaro ichadonhedzwa uye kubatana kweTCP kuchaputswa.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Ungaitei pano? Mukati menzvimbo yako inodzorwa, kwaunogonesa kuyerera label balancing, iwe unofanirwa kurekodha kukosha kweiyo inoyerera label kana uchinge wawana chero cast maseva. Nzira iri nyore ndeyekuita izvi kuburikidza neiyo eBPF chirongwa. Asi heino chinhu chakakosha zvikuru - chii chaunofanira kuita kana iwe usingashandisi data center network, asi uri telecom operator? Iri ndiro dambudziko rako zvakare: kutanga nemamwe mavhezheni eJuniper naArista, ivo vanosanganisira inoyerera label mumabasa avo ehashi nekukasira - kutaura chokwadi, nechikonzero chisingazivikanwe kwandiri. Izvi zvinogona kuita kuti iwe udonhedze TCP kubatana kubva kune vashandisi vanopfuura nepanetiweki yako. Saka ini ndinokurudzira zvikuru kutarisa marouter ako marongero pano.

Imwe nzira kana imwe, zvinoratidzika kwandiri kuti takagadzirira kuenderera kune zviedzo.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Patakagonesa iyo yekuyerera label paToR, takagadzirira iyo eBPF mumiriri, iyo zvino inogara pane mauto, takasarudza kusamirira kutadza kukuru kunotevera, asi kuita kuputika kunodzorwa. Takatora ToR, iyo ine uplinks ina, uye kumisikidza madonhwe pane imwe yacho. Vakadhirowa mutemo ndokuti - ikozvino uri kurasikirwa nemapaketi ese. Sezvauri kuona kuruboshwe, isu tine per-packet monitoring, iyo yakaderera kusvika ku75%, kureva, 25% yemapaketi akarasika. Kurudyi kune magirafu emasevhisi anogara kuseri kweToR iyi. Chaizvoizvo, aya ndiwo magirafu etraffic eiyo interfaces ane maseva mukati me rack. Sezvauri kuona, dzakatodzika. Sei vakadonha pasi - kwete ne25%, asi mune dzimwe nguva ne 3-4 nguva? Kana iyo TCP yekubatanidza haina rombo rakanaka, inoramba ichiedza kusvika kuburikidza neyakaputsika junction. Izvi zvinowedzerwa nemaitiro akajairika esevhisi mukati meDC - kune mumwe mushandisi chikumbiro, N zvikumbiro zvemukati masevhisi zvinogadzirwa, uye mhinduro inoenda kumushandisi kana ese data masosi apindura, kana kana nguva yekupera ichiitika pachikumbiro. level, iyo ichiri kuda kugadzirwa. Ndiko kuti, zvinhu zvose zvakanyanya, zvakaipa.
Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Ikozvino kuyedza kumwe chete, asi neiyo flow label value yakagoneswa. Sezvauri kuona, kuruboshwe rwedu rwekutarisa batch rwakadonha neiyo 25%. Izvi ndizvo chaizvo, nekuti haina chainoziva nezve retransmits, inotumira mapaketi uye inongoverenga chiyero chehuwandu hweakaunzwa uye akarasika mapaketi.

Uye kurudyi pane rudungwe rwebasa. Iwe haugone kuwana mhedzisiro yejoint ine dambudziko pano. Mune iwo mamilliseconds mamwe chete, traffic yakayerera kubva munzvimbo ine dambudziko kuenda kune matatu akasara uplinks ayo asina kukanganiswa nedambudziko. Tine network inozviporesa.

Network inozvirapa pachayo: mashiripiti eFlow Label uye mutikitivha akatenderedza Linux kernel. Yandex report

Iyi ndiyo slide yangu yekupedzisira, nguva yekupfupisa. Iye zvino, ndinovimba iwe unoziva kuvaka wega-kupora data center network. Iwe hauzofanire kuenda kuburikidza neLinux kernel archive uye utsvage mapeche akakosha ipapo; iwe unoziva kuti iyo Flow label mune ino kesi inogadzirisa dambudziko, asi iwe unofanirwa kusvika kune iyi mechaniki nemazvo. Uye ini ndinosimbisa zvakare kuti kana iwe uri telecom opareta, haufanirwe kushandisa flow label sebasa rehashi, zvikasadaro iwe unozokanganisa zvikamu zvevashandisi vako.

Network mainjiniya anofanirwa kuita shanduko yekufungidzira: network inotanga kwete neToR, kwete netiweki mudziyo, asi nemugamuchiri. Muenzaniso unoshamisa ndewe mashandisiro atinoita eBPF zvese kushandura iyo RTO uye kugadzirisa kuyerera label kune chero masevhisi.

Iyo inoyerera label mechanics zvirokwazvo yakakodzera kune mamwe maapplication mukati meiyo inodzorwa administrative chikamu. Izvi zvinogona kuve traffic pakati penzvimbo dzedata, kana iwe unogona kushandisa mechanics akadaro nenzira yakakosha kubata traffic inobuda. Asi ini ndichakuudza pamusoro peizvi, ndinovimba, nguva inotevera. Ndinokutendai zvikuru nekuteerera kwenyu.

Source: www.habr.com