He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Kei nga pokapū raraunga hou nga rau o nga taputapu kaha e hipokina ana e nga momo aroturuki rereke. Engari ahakoa he miihini tino pai me te aro turuki tika i te ringaringa ka taea te whakautu tika ki te kore o te whatunga i roto i nga meneti torutoru. I roto i te purongo i te hui Next Hop 2020, i whakaatu ahau i tetahi tikanga hoahoa whatunga pokapū raraunga he ahuatanga motuhake - ka whakaora te pokapū raraunga i a ia ano i roto i nga mirihakona. Ko te mea tika, ka whakatika marie te miihini i te raru, engari kaore nga ratonga e kite.

- Hei timata, ka hoatu e ahau he kupu whakataki mo te hunga kaore pea i te mohio ki te hanganga o te DC hou.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Mo te maha o nga miihini whatunga, ka tiimata te whatunga pokapū raraunga, o te akoranga, me ToR, me te whakawhiti i roto i te whatanga. E rua nga momo hononga a ToR. Ko nga mea iti ka haere ki nga kaitoro, ko etahi atu - he N taima ake o ratou - haere ki nga tuara taumata tuatahi, ara, ki ona hononga whakarunga. Ko te nuinga o nga wa ka kiia he rite nga hononga, ka taurite te hokohoko i waenga i nga hononga ki runga i te 5-tuple hash, kei roto ko te proto, src_ip, dst_ip, src_port, dst_port. Karekau he ohorere i konei.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

I muri mai, he aha te ahua o te hoahoanga o nga waka rererangi? Ko nga tara o te taumata tuatahi kaore i te hono tetahi ki tetahi, engari e hono ana ma te superspins. Ko te reta X te kawenga mo nga superspins, he rite tonu ki te hono-whakawhiti.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

A e marama ana, i tera taha, ko te tori e hono ana ki nga tuara katoa o te taumata tuatahi. He aha te mea nui i tenei pikitia? Mena he taunekeneke taatau ki roto i te whatanga, katahi ka uru te taunekeneke ki roto i te ToR. Mēnā ka uru te pāhekoheko ki roto i te kōwae, ka haere te pāhekoheko ki roto i ngā tarakona o te taumata tuatahi. Mena he intermodular te tauwhitinga - penei i konei, ToR 1 me ToR 2 - katahi ka haere te taunekeneke ki roto i nga tara o te taumata tuatahi me te tuarua.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

I runga i nga tikanga, he ngawari te whakarereketanga o taua hoahoanga. Mena kei a tatou te kaha tauranga, he rahui mokowhiti i roto i te pokapū raraunga me te muka kua oti te whakatakoto, katahi ka taea te whakanui ake i te maha o nga rererangi, na reira ka piki ake te kaha o te punaha. I runga i te pepa, he tino ngawari tenei ki te mahi. Ka pera ano i roto i te ao. Engari ko nga korero o tenei ra ehara i te korero mo tera.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

E hiahia ana ahau kia tika nga whakatau. He maha nga huarahi kei roto i te pokapū raraunga. Ka noho motuhake ratou. Ko tetahi huarahi ki roto i te pokapū raraunga ka taea anake i roto i te ToR. I roto i te kōwae, he rite tonu te maha o nga huarahi ki te maha o nga rererangi. Ko te maha o nga ara i waenga i nga waahanga he rite ki te hua o te maha o nga rererangi me te maha o nga hurihanga o ia rererangi. Kia marama ake ai, kia mohiohia te tauine, ka hoatu e ahau nga nama e tika ana mo tetahi o nga pokapū raraunga Yandex.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

E waru nga rererangi, e 32 nga hurihanga o ia rererangi. Ko te mutunga mai, ka kitea e waru nga huarahi kei roto i te kōwae, me te taunekeneke i waenga-kowae kua 256 kē.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Arā, mena kei te whakawhanake tatou i te Pukapuka Tuki, e ngana ana ki te ako me pehea te hanga i nga pokapu raraunga whakaraerae i te he e whakaora ana i a ratou ano, ko te hoahoanga mahere te whiriwhiri tika. Ka taea e koe te whakaoti i te raru o te whakatauine, a he ngawari noa. He maha nga huarahi motuhake. Ka noho tonu te patai: me pehea e ora ai taua hoahoanga i nga rahunga? He maha nga tukinga. A ka korero tatou i tenei inaianei.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Tukua kia mate tetahi o a tatou superspins. I konei ka hoki ahau ki te hoahoanga o nga rererangi e rua. Ka noho tatou ki a raatau hei tauira na te mea ka ngawari ake te kite i nga mahi kei konei me te iti ake o nga waahanga neke. Kia mate a X11. Ka pehea tenei ka pa ki nga ratonga e noho ana i roto i nga pokapū raraunga? He nui te whakawhirinaki ki te ahua o te korenga.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Mena he pai te kore, ka mau ki te taumata o te automation o te BFD kotahi, ka harikoa te automation ki te whakauru i nga hononga raru me te wehe i te raru, ka pai nga mea katoa. He maha a matou huarahi, ka huri tonu nga waka ki etahi atu ara, karekau nga ratonga e kite i tetahi mea. He ahuatanga pai tenei.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko te ahuatanga kino mena ka ngaro tonu tatou, a kaore te miihini e kite i te raru. Kia mohio ai he aha te paanga o tenei ki te tono, me noho tatou mo te wa poto ki te korero me pehea te mahi a te kawa TCP.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko te tumanako kare au e ohorere i tetahi ki enei korero: Ko te TCP he kawa ruru. Arā, i roto i te take māmā, ka tukuna e te kaituku e rua ngā pākete, ā, ka whiwhi i tētahi ack whakahiato ki runga: "E rua ngā pākete i whiwhi ahau."
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

I muri i tera, ka tukuna atu e ia etahi atu putea e rua, ka hoki ano te ahuatanga. Ka mihi ahau i mua mo etahi whakamaaramatanga. He tika tenei ahuatanga mena ka rua te matapihi (te maha o nga paatete e rere ana). Ko te tikanga, ehara i te mea ko te tikanga tenei mo te nuinga. Engari ko te horopaki tuku whakamua kaore e pa ki te rahi o te matapihi.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ka aha mena ka ngaro te kete 3? I tenei keehi, ka whiwhi te kaiwhiwhi i nga paatete 1, 2 me te 4. A ka tino whakamohio atu ia ki te kaituku ma te whakamahi i te whiringa SACK: "E mohio ana koe, e toru i tae mai, engari i ngaro te waenganui." Ka mea ia "Ack 2, SACK 4".
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko te kaituku i tenei wa ka whakahoki ano i te kete i ngaro kaore he raru.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Engari ki te ngaro te kete whakamutunga i te matapihi, ka tino rereke te ahua.

Ka whiwhi te kaiwhiwhi i nga paatete tuatahi e toru ka timata ki te tatari. He mihi ki etahi arotautanga i roto i te puranga TCP o te kakano Linux, ka tatari mo te paanui takirua, mena kaore he tohu i roto i nga haki ko tenei te kete whakamutunga, he penei ranei. Ka tatari tae noa ki te paunga o te taima Whakaroa ACK ka tukuna he mihi mo nga kete tuatahi e toru. Inaianei kei te tatari te kaituku. Kaore ia i te mohio mena kua ngaro te kete tuawha kua tata ranei te tae. A kia kore ai e taumaha te whatunga, ka ngana ki te tatari mo te tohu tino kua ngaro te kete, te paunga ranei o te taima RTO.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He aha te taima RTO? Koinei te morahi mai i te RTT i tatauhia e te TCP tāpae me etahi tonu. He aha tenei mau tonu, ka korerohia inaianei.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Engari he mea nui ki te kore ano tatou i waimarie ka ngaro ano te kete tuawha, ka rua te RTO. Arā, ko ia nganatanga karekau i angitu he rearua o te waahi.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Inaianei kia kite tatou he aha te ahua o tenei turanga. Ma te taunoa, ko te RTO iti rawa ko te 200ms. Koinei te iti rawa o te RTO mo nga kete raraunga. Mo nga paatete SYN, he rereke, 1 hekona. Ka kite koe, ahakoa ko te ngana tuatahi ki te tuku ano i nga paanui ka 100 nga wa roa atu i te RTT i roto i te pokapū raraunga.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Inaianei hoki ki to maatau ahuatanga. He aha te mahi ki te ratonga? Ka timata te ratonga ki te ngaro nga putea. Kia waimarie te ratonga i te tuatahi ka ngaro tetahi mea i waenganui o te matapihi, katahi ka riro mai he PAKATI, ka tukuna ano nga kete kua ngaro.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Engari mena ka hoki ano te waimarie, katahi ano he RTO. He aha te mea nui i konei? Ae, he maha nga huarahi kei roto i te whatunga. Engari ko te hokohoko TCP o tetahi hononga TCP ka haere tonu i roto i taua puranga pakaru. Ko te ngaronga o te paakete, mena ka kore to maatau makutu X11 e puta i a ia ano, kaore e arai ki nga waka e rere ana ki nga waahi kaore i te raru. E ngana ana matou ki te tuku i te kete ma te tauapu pakaru. Ko tenei ka arai i te koretake: ko te pokapū raraunga he huinga tono tauwhitiwhiti, a ka timata etahi o nga hononga TCP o enei tono katoa ki te whakaheke - na te mea ka pa te superspin ki nga tono katoa kei roto i te pokapū raraunga. Ka rite ki te korero: ki te kore koe e hu i te hoiho, ka topa te hoiho; he tohe te hoiho - kaore i tukuna te korero; karekau te karere i tukuna - i hinga i te pakanga. I konei anake ka haere te tatau mo nga hēkona mai i te wa ka puta te raru ki te waahi o te whakahekenga ka tiimata nga ratonga. Ko te tikanga kaore pea nga kaiwhakamahi e whiwhi i tetahi mea ki tetahi waahi.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

E rua nga otinga matarohia e whakakii ana tetahi ki tetahi. Ko te tuatahi ko nga ratonga e ngana ana ki te whakatakoto kakau kakau me te whakaoti rapanga penei: “Me takawiri tetahi mea i roto i te puranga TCP. A, me hanga e tatou he waahi taumata-tono, he waahi TCP roa ranei me nga arowhai hauora o roto. Ko te raruraru ko enei otinga: a) kaua rawa e tauine; b) tino kino te whakamatautau. Arā, ahakoa ka whirihora pohehe te ratonga i te puranga TCP kia pai ake ai, tuatahi, kare pea tenei e pa ki nga tono katoa me nga pokapu raraunga katoa, tuarua, tera pea, kare e mohio he aha te mahi tika me te aha. kaore. Arā, he pai te mahi, engari he kino te mahi, kaore e tauine. A, ki te he raruraru whatunga, ko wai te he? Ko te tikanga NOC. He aha te mahi a NOC?

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He maha nga ratonga e whakapono ana kei NOC, he penei te mahi. Engari kia pono, ehara i te mea anake.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko te NOC i roto i te kaupapa puāwaitanga e mahi ana ki te whakawhanake i te maha o nga mahi aroturuki. Ko enei e rua te aroturuki pouaka pango me te aroturuki pouaka ma. Mo te tauira o te pouaka pango-te aroturuki i nga tarakona korerotia Alexander Klimenko i nga ra o mua Next Hop. Ma te ara, ka mahi tenei aroturuki. Engari ahakoa te aro turuki tino pai ka roa te wa. Ko te tikanga he maha nga meneti. Whai muri i tana mahi, me whai taima nga miihini e mahi ana ki te tirotiro rua i tana mahi, ki te tautuhi i te raru, katahi ka whakakorea te waahi raru. Arā, i roto i te take pai, ko te maimoatanga o te raru e 5 meneti, i te kino rawa atu i te 20 meneti, mena kaore i te maarama tonu kei hea nga mate. E marama ana ko enei wa katoa - 5, 20 meneti ranei - ka mamae tonu a maatau ratonga, kaore pea i te pai.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He aha taau e hiahia ana kia whiwhi? He maha o tatou huarahi. A ka puta ake nga raru na te mea ka haere tonu nga rere a TCP kaore i waimarie ki te whakamahi i taua huarahi. Kei te hiahia matou ki tetahi mea ka taea e matou te whakamahi i nga huarahi maha i roto i te hononga TCP kotahi. Te ahua nei kei a matou he otinga. He TCP, e kiia nei - multipath TCP, ara, TCP mo nga huarahi maha. He pono, i whakawhanakehia mo tetahi mahi rereke - mo nga waea atamai he maha nga taputapu whatunga. Hei whakanui ake i te whakawhiti me te hanga i te aratau tuatahi / tārua, i hangaia he tikanga e hanga marama ana te maha o nga miro (waahanga) mo te tono ka taea e koe te huri i waenga i a raatau mena he koretake. Ranei, pera me taku korero, whakanuihia te bandwidth.

Engari he ahua ano kei konei. Kia mohio ai he aha tena, me titiro ki te whakatakotoranga o nga awa.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Kua whakaritea nga miro kia raupapa. Ka whakauruhia te awa tuatahi. Ka whakatauhia nga rerenga o muri mai ma te whakamahi i te pihikete kua whakaaetia i roto i taua miro. Na konei te raruraru.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko te raruraru, ki te kore te miro tuatahi e whakauru, ka kore te miro tuarua me te miro tuatoru e puta ake. Arā, karekau a TCP multipath e whakaoti i te ngaronga o te pākete SYN i te awa tuatahi. A, ki te ngaro te SYN, ka huri te TCP maha hei TCP noa. Na, i roto i te taiao pokapū raraunga, kaore e awhina ia matou ki te whakaoti i te raruraru o te ngaro i roto i te wheketere me te ako ki te whakamahi i nga huarahi maha i te wa o te kore.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Eaha te nehenehe e tauturu ia tatou? Ko etahi o koutou kua pohehe mai i te ingoa ka noho te mara pane pane tapanga rerenga IPv6 hei mara nui i roto i ta maatau korero. Inaa, he mara tenei ka puta i te v6, kaore i te v4, ka 20 nga moka, a kua roa te tautohetohe mo tona whakamahinga. He tino rawe tenei - he tautohetohe, he mea i whakaritea i roto i te anga o te RFC, a i te wa ano, ka puta mai he whakatinanatanga i roto i te kernel Linux kaore i tuhia ki hea.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko taku whakaaro kia uru mai koe ki ahau mo tetahi rangahau iti. Kia titiro tatou ki nga mea e tupu ana i roto i te kernel Linux i nga tau kua hipa.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

tau 2014. Ko tetahi miihini mai i tetahi kamupene nui me te rongonui ka taapiri atu ki te mahi o te kakano Linux te ti'aturi o te uara o te tapanga rerenga ki te hash o te turanga. He aha ta ratou e ngana ana ki te whakatika i konei? E pa ana tenei ki te RFC 6438 i korero mo te take e whai ake nei. I roto i te pokapū raraunga, he maha nga wa ka uru te IPv4 ki roto i nga paatete IPv6, na te mea ko te wheketere ake ko IPv6, engari me tukuna a IPv4. Mo te wa roa he raruraru me nga huringa kaore e taea te titiro i raro i nga pane IP e rua kia tae ki TCP, UDP ranei ka kitea src_ports, dst_ports ki reira. I puta mai ko te hash, mena ka tirohia e koe nga upoko IP tuatahi e rua, kua tata kua oti. Hei karo i tenei, kia pai ai te mahi o te tauritenga o tenei waka whakaahuru, i whakaarohia kia taapirihia he hash mai i te paatete 5-tuple kua kapi ki te uara o te waahi tapanga rerenga. He rite tonu te mahi mo etahi atu kaupapa whakauru, mo te UDP, mo te GRE, i muri mai ka whakamahia te mara GRE Key. I tetahi huarahi, i tetahi atu ranei, he maamaa nga whainga i konei. A i te iti rawa i taua wa i whai hua ratou.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

I te tau 2015, ka puta mai he papaki hou mai i taua miihini whai mana. He tino whakamere ia. E kii ana e whai ake nei - ka matapōkeretia e mātou te hash mena ka puta he takahanga ararere kino. He aha te takahanga ararere kino? Ko te RTO tenei i korerohia e matou i mua, ara, ko te ngaro o te hiku matapihi he kaupapa tino kino. Pono, he uaua ki te whakaaro he aha tena.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

2016, tetahi atu kamupene whakaute, nui hoki. Ka wetewetehia e ia nga tootoo whakamutunga me te hanga kia huri ai te hash i hanga matapōkeretia e matou i nga wa katoa o te tuku SYN me muri i ia waahi RTO. A, i roto i tenei reta, mo te wa tuatahi me te wa whakamutunga, ka tangi te whainga whakamutunga - kia mohio kei te ngaro nga waka ki te ngaro, ki te taumaha ranei o nga hongere ka taea te whakarereke ngawari, ma te whakamahi i nga huarahi maha. Ae ra, i muri i tera he maha nga panui, ka kitea e koe.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ahakoa kaore, kaore e taea e koe, na te mea kaore ano kia puta he panui mo tenei kaupapa. Engari e mohio ana tatou!

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

A ki te kore koe e tino marama ki nga mea i mahia, ka korerotia e ahau ki a koe inaianei.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He aha nga mahi, he aha nga mahi kua taapirihia ki te kernel Linux? Ka huri te txhash ki te uara matapōkere i muri i ia huihuinga RTO. He rite tonu te hua ararere kino tenei. Kei runga i tenei txhash te tohu me te tapanga rerenga kei runga i te skb hash. Kei konei etahi tatauranga mo nga mahi, kaore e taea te whakatakoto i nga korero katoa ki te kiriata kotahi. Mena kei te pirangi tetahi, ka taea e koe te haere ma te waehere kernel me te tirotiro.

He aha te mea nui i konei? Ka huri te uara o te tapanga rerenga ki te tau matapōkere i muri i ia RTO. He pehea te paanga o tenei ki to tatou awa TCP kino?
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Mo te SACK, kaore he mea i rereke na te mea e ngana ana matou ki te tuku ano i tetahi kete kua ngaro. I tenei wa ka pai.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Engari mo te RTO, mena kua taapirihia e matou he tapanga rerenga ki te mahi hash i runga i te ToR, ka taea e nga waka te whai huarahi rereke. A, ka nui ake nga rererangi, ka kaha ake te rapu huarahi kaore e pa ki te tukinga i runga i tetahi taputapu.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Kotahi tonu te raru - RTO. Ko tetahi atu huarahi, ko te tikanga, ka kitea, engari he nui te wa e pau ana. He nui te 200ms. Ko te tuarua ko te mohoao. I mua ake nei, i korero ahau mo nga waahi e whirihora ana i nga ratonga. Na, ko te tuarua ko te waahi e whakarite ana i tetahi ratonga ki te taumata tono, a ma tenei ka tino tika te ratonga. I tua atu, ka whakahoki ano ahau, ko te RTT tuuturu kei roto i te pokapū raraunga hou kei te tata ki te 1 milihakona.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He aha te mahi mo nga wa mutunga RTO? Ko te wa paunga te kawenga mo te RTO mena ka ngaro nga paatete raraunga ka taea te whirihora mai i te waahi kaiwhakamahi: kei reira he taputapu IP, a kei roto i tetahi o ona tawhā te rto_min kotahi. Ma te whakaaro, he tika, me huri koe i te RTO kaua i te ao katoa, engari mo nga prefix kua tohua, he ahua pai te ahua o taua tikanga.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Pono, me SYN_RTO he ahua kino nga mea katoa. He mea whao ki raro. Ka whakatauhia te uara ki roto i te matua - 1 hēkona, ka mutu. Kaore e taea e koe te toro atu mai i te waahi kaiwhakamahi. Kotahi noa te huarahi.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

ka haere mai te eBPF ki te whakaora. Hei whakamaarama, he kaupapa C iti enei. Ka taea te whakauru ki roto i nga matau i nga waahi rereke i roto i te mahinga o te puranga kernel me te puranga TCP, ka taea e koe te huri i te maha o nga tautuhinga. I te nuinga o te waa, ko te eBPF he ia mo te wa roa. Engari ki te tarai i te maha o nga tawhā sysctl hou me te whakawhänui i te whaipainga IP, ko te nekehanga kei te ahunga o te eBPF me te whakawhānui i tana mahi. Ma te eBPF, ka taea e koe te whakarereke i nga mana o te kuhunga me etahi atu tautuhinga TCP.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Engari he mea nui ki a maatau ma te awhina ka taea e koe te huri i nga uara o SYN_RTO. A he tauira kua panuitia ki te iwi whanui: https://elixir.bootlin.com/linux/latest/source/samples/bpf/tcp_synrto_kern.c. He aha te mahi i konei? Kei te mahi te tauira, engari i roto ano he tino taratara. E kiia ana i konei kei roto i te pokapu raraunga ka whakatauritea e matou nga paraka 44 tuatahi, mena ka taurite, katahi ka kitea i roto i te DC. I tenei take, ka huri tatou i te uara o te SYN_RTO taima ki te 4ms. Ko taua mahi ano ka taea te mahi marie. Engari ko tenei tauira ngawari e whakaatu ana he aha te a) ka taea; b) ahua ngawari.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He aha ta tatou i mohio ai? Ka taea e te hoahoanga mahere te whakatauine, ka puta he tino whai hua mo tatou ina ka whakahurihia e tatou te tapanga rerenga ki runga ToR ka whai waahi ki te rere huri noa i nga waahi raru. Ko te huarahi pai ki te whakaheke i nga uara RTO me SYN-RTO ko te whakamahi i nga kaupapa eBPF. Ka noho tonu te patai: he haumaru te whakamahi i te tapanga rerenga mo te whakataurite? A he ahua ano kei konei.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Me whakaaro he ratonga kei runga i te whatunga e noho ana i anycast. Kia aroha mai, karekau au e whai taima ki te korero mo nga korero mo te anycast, engari he ratonga toha kei te waatea nga momo tuuroro tinana i runga i te wahitau IP kotahi. A koinei pea te raru: ka puta te huihuinga RTO ehara i te wa ka haere nga waka i roto i te wheketere. Ka taea hoki te puta i te taumata parepare ToR: ka puta he huihuinga incast, ka puta ano ki runga i te kaihautu i te wa e pupuhi ana te kaihautu i tetahi mea. Ina puta he takahanga RTO ka huri i te tapanga rerenga. I tenei keehi, ka haere pea te waka ki tetahi atu tauira. Ki te mea he whakaaturanga korero, kei roto he ahuatanga hononga - ka taea he L3 Balancer, etahi atu ratonga ranei. Na ka puta he raruraru, no te mea i muri i te RTO, ka tae mai te hononga TCP ki te tūmau, kaore e mohio mo tenei hononga TCP. A, ki te kore matou e tiritiri whenua i waenga i nga kaitoro a-cast, katahi ka whakataka taua waka ka pakaru te hononga TCP.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

He aha te mahi i konei? I roto i to taiao whakahaere, e taea ai e koe te whakataurite tapanga rerenga, me whakatika e koe te uara o te tapanga rerenga ina uru ana koe ki nga tūmau tuku. Ko te huarahi ngawari ko te mahi ma te kaupapa eBPF ano. Engari he mea tino nui tenei - he aha te mahi mena kaore koe e whakahaere i te whatunga pokapū raraunga, engari he kaiwhakahaere waea? Ko to raru ano tenei: ka tiimata me etahi momo putanga o Juniper me Arista, ka whakauruhia te tapanga rerenga i roto i te mahi hash ma te taunoa - kia pono, mo te take kaore au i te mohio. Ka taea e koe te whakaheke i nga hononga TCP mai i nga kaiwhakamahi e haere ana i to whatunga. Na reira, ka tino taunaki ahau kia tirohia o tautuhinga pouara i tenei waahi.

I tetahi huarahi, i tetahi atu ranei, ki ahau nei kua rite taatau ki te neke atu ki nga whakamatautau.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

I te wa i whakahurihia ai e matou te tapanga rerenga i runga i te ToR, i te whakarite i te eBPF a te kaihoko, e noho ana inaianei i runga i nga kaihautu, i whakatau matou kia kaua e tatari mo te rahua nui e whai ake nei, engari ki te whakahaere i nga pahūtanga. I mauhia e matou a ToR, e wha nga hononga whakarunga, ka taka ki runga i tetahi. I tuhia e ratou he ture, i kii ratou - inaianei kei te ngaro katoa nga paatete. Kei te kite koe i te taha maui, kei a maatau te tirotiro mo ia paatete, kua heke ki te 75%, ara, 25% o nga paatete kua ngaro. Kei te taha matau nga kauwhata o nga ratonga e noho ana i muri o tenei ToR. Inaa, he kauwhata waka enei o nga hononga me nga kaitoro kei roto i te whatanga. Ka kite koe, ka totohu ki raro. He aha te take i totohu ki raro - kaua e 25%, engari i etahi wa e 3-4 nga wa? Mena kaore i te waimarie te hononga TCP, ka ngana tonu ki te toro atu ma te atanga pakaru. Ka kaha ake tenei na te ahuatanga o te ratonga i roto i te DC - mo te tono a te kaiwhakamahi kotahi, ka puta nga tono N ki nga ratonga o roto, a ka tae atu te whakautu ki te kaiwhakamahi, ahakoa ka whakautu nga puna raraunga katoa, ka mutu ranei te wa i te wa. taumata tono, me whirihora tonu. Arā, he tino kino nga mea katoa.
He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Inaianei ko te whakamatautau ano, engari me te tapanga rerenga kua whakahohea. Kei te kite koe, kei te taha maui, i totohu to maatau tirotiro i te 25%. He tino tika tenei, na te mea kaore ia e mohio ki nga mea e pa ana ki te tuku ano, ka tukuna e ia nga paatete me te tatau noa i te tauwehenga o te maha o nga kete kua tukuna me te ngaro.

A kei te taha matau ko te rarangi o nga ratonga. Kaore koe e kite i te paanga o te hononga raruraru i konei. Ko nga waka i roto i aua mirihakona kotahi i rere mai i te waahi raruraru ki nga hononga whakarunga e toru kaore i pa ki te raru. I whiwhi matou i tetahi whatunga e whakaora ana i a ia ano.

He whatunga e whakaora ana i a ia ano: te makutu o te Tapanga Flow me te kaitirotiro huri noa i te kernel Linux. Pūrongo Yandex

Ko taku kiriata whakamutunga tenei, te wa ki te tango taonga. Inaianei, kei te tumanako ahau kei te mohio koe ki te hanga i tetahi whatunga pokapū raraunga whakaora whaiaro. Kaore koe e hiahia ki te haere i roto i te puranga kernel Linux me te rapu mo nga papanga motuhake ki reira, kei te mohio koe ma te tapanga Flow e whakaoti te raru i tenei keehi, engari me ata whakatata atu koe ki tenei tikanga. A ka whakanui ano ahau ki te mea he kaikawe koe, kaua e whakamahi i te tapanga rerenga hei mahi hash, mena ka pakaru koe i nga huihuinga a o kaiwhakamahi.

Mo nga miihini whatunga, me mahi he huringa ariā: karekau te whatunga i timata ki te ToR, kaua ki te taputapu whatunga, engari me te kaihautu. Ko tetahi tauira tino pai ko te whakamahi i te eBPF ki te huri i te RTO me te whakatika i te tapanga rerenga ki nga ratonga tuku.

Ko te miihini tapanga rerenga e tika ana mo etahi atu whakamahinga i roto i te waahanga whakahaere whakahaere. Ka taea e tenei te hokohoko i waenga i nga pokapū raraunga, ka taea ranei e koe te whakamahi i nga momo miihini i tetahi huarahi motuhake hei whakahaere i nga waka puta. Engari ka korero ahau mo tenei, ko taku tumanako, a muri ake nei. Ka nui te mihi ki a koe mo to whakaaro.

Source: will.com