MTU katram maršrutam Linux: trīs izmēra regulatori, viens maršruts
Saskarnes MTU, maršruta MTU un MSS ierobežojums darbojas dažādos slāņos. Piesaistiet budžetu maršrutam, kas uzvar meklēšanā, un saglabājiet izmaiņas atgriežamas.
Trīs iestatījumi Linux klientā visi izklausās kā „padari paketes mazākas“, un tie darbojas dažādos slāņos. Saskarnes MTU ierobežo katru paketi, ko ierīce sūta. Maršruta MTU ierobežo paketes, kas izmanto šo maršrutu, un tas bieži ir tieši tas, ko vienam VPN galamērķim patiešām vēlaties. TCP MSS ierobežojums maina to, par ko vienojas abi gali, un UDP tas neko nedara.
Trīs regulatori, kas izskatās kā viens un tas pats kloķis
Pirms izvēles nolieciet tos blakus, jo nepareizās rindas izvēle izskaidro lielāko daļu padomu, kas nedarbojas:
| Control | Scope | What it cannot fix |
|---|---|---|
| Interface MTU | Every packet the device sends | Nothing, but it over-constrains unrelated traffic |
| Route MTU | Packets using that route | A send that the lookup never routes there |
| MSS clamp | TCP handshake on that path | UDP payload sizes and ICMP |
Ethernet MTU pazemināšana visai mašīnai ir šī labojuma rupjā versija. Tas darbojas, un tas arī soda katru citu lietotni uz resursdatora, tostarp tās, kuru ceļi bija kārtībā. Vērtība katram maršrutam izsaka to pašu nodomu bez blakus izmaksām.
Salīdzinājums attiecas tikai uz trafiku, ko ģenerē pats resursdators. Paketes pārsūtīšana citam klientam ietver viņa paša ceļu un tuneļa ārējo budžetu, un maršruta metrika šajā resursdatorā nesniedzas pāri šai robežai.
Piesaistiet budžetu maršrutam, kas uzvar meklēšanā
Ilustratīvs IPv4 maršruta ieraksts izskatās šādi:
ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380
Lasiet ierakstu kā nodoma aprakstu, nevis kā ielīmējamu vērtību. Prefikss, ierīce un vēlamais avots ir jāsaskaņo ar reālo konfigurāciju, un skaitlim jānāk no pierādījumiem par iekapsulēto ceļu, nevis no emuāra ieraksta. Maršruta MTU ierobežo iekšējo IP paketi, kas nav tas pats, kas 1380 baitu TCP kravnesība vai 1380 baitu šifrēta ārējā pakete.
Pirms kaut ko pievienojat, apskatiet, kur meklēšana patiešām tiek atrisināta. Resursdators ar politikas noteikumiem var maršrutēt doto galamērķi citā tabulā nekā main, un metrika, kas pastāv tikai main tabulā, šim pieprasījumam nav redzama. Salīdziniet ip -4 route show table all ar atbildi no ip route get, tostarp atzīmes vai nosaukumvietas kontekstu, kad noteikumi tos izmanto. Ja abi nesakrīt, metrika ir vajadzīga tabulai, kas atbildēja, nevis tai, kas izskatās kārtīgāka.
mtu nav mtu lock
Pēc noklusējuma kodols joprojām var atjaunināt ceļa MTU no ICMP atgriezeniskās saites, tam ir paredzēta ceļa MTU atklāšana. Pievienojot lock tas tiek apturēts. Tas ir cits lēmums, ne spēcīgāks veids, kā saglabāt to pašu skaitli, un IPv4 tas maina dokumentēto „nefragmentēt“ bita apstrādi.
Bloķēšana ir pamatota, kad esat izmērījis ceļu un vēlaties, lai vērtība paliek nemainīga neatkarīgi no tā, kas ienāk. Tā ir slikta noklusējuma vērtība, kad tīkls sūta likumīgu izmēra atgriezenisko saiti, jo kodols vairs nevar pielāgoties un kļūme pāriet citā simptomā.
Ja ICMP tiek filtrēts kaut kur ceļā, neviens maršruta iestatījums to nelabo. Labojums pieder filtram, un mazāks MTU ir apietais risinājums, kas slēpj patieso kļūmi līdz nākamajai ceļa izmaiņai.
Tuneļa programmatūra pievieno savus izmēra kloķus
OpenVPN- mssfix pielāgo TCP segmenta izmēru savam dokumentētajam UDP tuneļa gadījumam. Tas darbojas uz TCP sarunas, tāpēc tas nav cits operētājsistēmas maršruta MTU rakstījums, un tas nevar palīdzēt UDP pakalpojumam, kas ignorē sarunas.
Nekraujiet maršruta MTU, saskarnes MTU izmaiņu un MSS ierobežojumu vienā izmaiņu logā. Ja problēma pazūd, jūs nezināsiet, kura bija svarīga, un saglabātās ierobežos trafiku gadiem ilgi bez iemesla, ko kāds atceras.
Padariet to atgriežamu, tad pierādiet
Īstais maršruta īpašnieks izlemj, vai izmaiņa pārdzīvo atkārtotu savienojumu. VPN klients, kas maršrutu instalē dinamiski, to parasti pārbūvēs bez jūsu metrikas, un manuāla ip route add tad izskatās kā labojums, kas neizdevās dienu vēlāk. Ielieciet vērtību pārvaldnieka konfigurācijā, un, ja nepieciešams pagaidu eksperiments, vispirms pierakstiet sākotnējo maršrutu.
Pārbaudiet ar jaunu savienojumu, kas veic iesprūdušo darbību, pēc tam apstipriniet, ka paredzētais privātais maršruts joprojām uzvar un nesaistītie galamērķi nav mainījušies. Atkārtoti pievienojiet tuneli un vēlreiz nolasiet maršrutu, jo vērtība, kas pazūd atkārtoti pievienojoties, nav labojums.
Ja pierādījumi neatbalsta izmaiņas, noņemiet pārrakstīšanu caur tās pārvaldnieku un atjaunojiet sākotnējos maršruta atribūtus, nevis dzēsiet maršrutu. Pēc tam pierakstiet, ko mērījāt un kurā ceļā, lai nākamais cilvēks varētu atšķirt īstu uzlabojumu no darbā atstāta eksperimenta.