Hadithi za MTU kwenye VPN: kwa nini pakiti zako hupungua na nafasi huenda wapi
Ufungashaji na PPPoE hula nafasi ya pakiti, lakini MTU ya chini si utambuzi. Tenganisha ukubwa wa ndani na nje kabla ya kubadilisha nambari.
Mtu anakuambia kuwa VPN "inapoteza pakiti kwa sababu ya MTU", unaweka handaki kuwa 1400, na uhamishaji unafanya kazi tena. Matokeo hayo yanaonekana kama utambuzi. Mara nyingi ni bahati mbaya ya hesabu: ulichagua nambari ndogo vya kutosha kuingia chini ya kikomo ambacho hukuwahi kukitambua, na utakutana na kikomo hicho tena kwenye mtandao unaofuata ukiwa na bajeti tofauti.
Hadithi mbili husababisha sehemu kubwa ya hii. Ya kwanza ni kwamba MTU ya kiolesura cha handaki ni MTU ya njia. Ya pili ni kwamba ufungashaji hugharimu "kichwa kimoja" na PPPoE haigharimu kitu chochote kinachostahili kuhesabiwa. Zote mbili si sahihi kwa namna inayofanya nambari uliyochagua ionekane ya kiholela wakati kwa kweli imeamuliwa.
Hadithi ya kwanza: MTU ya handaki ni MTU ya njia
Thamani unayoweka kwenye kiolesura cha handaki ni ahadi ya ndani kuhusu pakiti kubwa zaidi ya ndani ambayo utekelezaji utakabidhi chini. Uwezo halisi wa njia ni sifa ya kila kiungo kati yako na mwisho wa mbali, na unaweza kubadilika wakati njia inabadilika, wakati muunganisho wa simu unakabidhiwa, au wakati trafiki inachukua peering nyingine. 1500 iliyowekwa inakuambia kile mwenyeji wako atakachojenga, si kile mtandao utakachobeba.
Ugunduzi wa MTU ya njia upo ili kupatanisha vyote viwili, na hutegemea mrejesho. Katika IPv4, kipanga-njia kisichoweza kusambaza pakiti ya ukubwa kamili kinapaswa kutuma ujumbe wa ICMP "fragmentation needed", na mtumaji hupunguza makadirio yake. Katika IPv6, kifananishi ni ujumbe wa Packet Too Big, na vipanga-njia hawagawanyi kabisa wakati wa usafiri. Mrejesho huo unapochujwa, mtumaji huendelea kuzalisha pakiti ambazo njia haiwezi kuzibeba, na hakuna kinachomwambia kwa nini.
Hadithi ya pili: ufungashaji hugharimu kichwa kimoja
Hesabu tabaka za nje kwa uaminifu. Kichwa cha IP cha nje ni baiti 20 katika IPv4 au 40 katika IPv6. Ufungashaji wa UDP kwa kupita NAT huongeza 8. Itifaki ya handaki huongeza kichwa chake, vector ya kuanzisha au nonce, ujazaji hadi kikomo cha bloku au mpangilio wa siri, sehemu ya mwisho na thamani ya ukaguzi wa uadilifu. Kulingana na itifaki na siri, jumla hukaa kwa raha katika makumi ya baiti kabla pakiti ya ndani haijaanza.
Kisha toa tena kwa vichwa vya pakiti ya ndani yenyewe. Sehemu ya TCP ndani ya handaki hubeba kichwa chake cha IP cha baiti 20 na kichwa cha TCP cha baiti 20, na MSS ya TCP inatokana na MTU, si kutoka kwa mzigo wa jina la handaki. Ndiyo sababu ping na mzigo mdogo inaweza kufaulu wakati uhamishaji wa faili unakwama: zana hujaribu mambo tofauti, na ni moja tu kati yao inayotumia sehemu ya TCP ya ukubwa kamili.
ip link show tun0
ping -M do -s 1472 192.0.2.10
ping -M do -s 1400 192.0.2.10
Amri ya kwanza huripoti MTU ya handaki iliyowekwa. Sampuli mbili hutuma mzigo wa baiti 1472, ambao pamoja na baiti 28 za vichwa vya IPv4 na ICMP ni pakiti ya baiti 1500, kisha ndogo zaidi. Ikiwa sampuli kubwa inashindwa kabisa na ndogo inafanikiwa, una hitilafu inayotegemea ukubwa, si tatizo la jumla la uelekezaji.
Hadithi ya tatu: PPPoE bado inakupa 1500 safi
Kiungo cha kawaida cha ufikiaji cha PPPoE hakibeba pakiti ya IP ya baiti 1500. Kichwa cha PPPoE pamoja na sehemu ya itifaki ya PPP huchukua baiti 8 ndani ya fremu ya Ethernet, hivyo kubakiza 1492 kwa pakiti ya IP. Huo ni kikomo cha jadi kilichoelezwa katika RFC 2516. Ukiendesha VPN juu ya kiungo kama hicho, gharama ya ziada ya handaki inatoka kwenye hizo 1492, si kwenye 1500.
RFC 4638 inafafanua njia ya kujadiliana mzigo mkubwa wa PPP wakati kituo cha ufikiaji na vifaa vya mteja vyote vinavyounga mkono, ndiyo sababu "muunganisho huu unatumia PPPoE" peke yake haithibitishi nambari maalum. Mpangilio wa ndani hauwezi kulazimisha kifaa cha kati kukubali pakiti ambayo hakikuwahi kuwekewa, kwa hiyo swali lenye manufaa ni kile kiungo kilichojadiliana kwa kweli, si kile lebo inasema.
Kwa nini kushindwa kunaonekana kuchagua
Maombi madogo kufanikiwa na uhamishaji mkubwa kukwama ni alama ya kawaida ya shimo jeusi la MTU ya njia. Kupeana mkono, swali la DNS na simu ya API vyote vinaingia; uhamishaji wa wingi huzalisha sehemu za ukubwa kamili zinazokufa kwenye kiungo kimoja, na ujumbe wa ICMP ambao ulipaswa kuripoti tatizo haufiki kamwe. Muunganisho unaonekana sawa na upakuaji huning'inia, jambo linalowafanya watu waangalie seva badala ya njia.
Kosa la pili, linalohusiana, ni kuchanganya nambari tatu: MTU ya kiolesura, MSS ya TCP na mpangilio wa itifaki yenyewe wa ugawaji au ujazaji. Ukandamizaji wa MSS kwenye kipanga-njia huandika upya MSS iliyotangazwa ili mtumaji ajenge sehemu ndogo; haubadilishi MTU ya handaki na hausaidii trafiki ya UDP. Kutoa nambari moja kwa zote tatu kwa sababu zinaonekana kuhusiana ndiyo njia ambayo mabadiliko yenye nia nzuri huvunja mpangilio unaofanya kazi.
Nini cha kubadilisha, na kwa mpangilio gani
Anza na ushahidi. Thibitisha kwa sampuli zilizo juu kuwa hitilafu inategemea ukubwa, kisha tafuta ukubwa mdogo zaidi unaopita na mkubwa zaidi unaoshindwa. Angalia MTU halisi ya kiungo cha ufikiaji kabla ya kulaumu handaki; kiungo cha PPPoE hupunguza bajeti kabla VPN yako haijaigusa. Andika thamani za awali ili mabadiliko yaweze kurudishwa.
Kisha tumia marekebisho madogo zaidi ambayo mteja anayaandika. Wateja wengi hutoa MTU ya handaki pamoja na chaguo la kurekebisha MSS, na chaguo la MSS mara nyingi ni kianzio bora kwa TCP kwa sababu kinafika kwa mtumaji bila kupunguza kila pakiti. Jaribu tena lengo lilelile na uhamishaji uleule, na andika nambari ulizotua nazo. Thamani ya handaki inayofanya kazi kwenye mtandao mmoja wa ufikiaji si thabiti ya ulimwengu wote, na tovuti inayofuata itakuwa na bajeti yake.