MTU marsruudi kohta Linuxis: kolm suuruse regulaatorit, üks marsruut
Liidese MTU, marsruudi MTU ja MSS-i piirang toimivad eri kihtidel. Kinnita eelarve marsruudile, mis otsingu võidab, ja hoia muudatus tagasipööratavana.
Kolm seadet Linuxi kliendil kõlavad kõik nagu „tee paketid väiksemaks“ ja toimivad eri kihtidel. Liidese MTU piirab iga paketti, mille seade saadab. Marsruudi MTU piirab pakette, mis seda marsruuti kasutavad, ja see on sageli see, mida ühe VPN-sihtkoha jaoks tegelikult tahad. TCP MSS-i piirang muudab seda, mille üle kaks otsa kokku lepivad, ja UDP jaoks ei tee see midagi.
Kolm regulaatorit, mis näevad välja nagu sama nupp
Pane need kõrvuti enne valimist, sest vale rea valimine seletab enamikku nõuannetest, mis ei tööta:
| 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 |
Etherneti MTU langetamine kogu masina jaoks on selle paranduse jäme versioon. See töötab ja karistab ka kõiki teisi hosti rakendusi, sealhulgas neid, mille teed olid korras. Marsruudipõhine väärtus väljendab sama kavatsust ilma kõrvalkuluta.
Võrdlus kehtib ainult hosti enda tekitatud liikluse kohta. Paketi edastamine teisele kliendile hõlmab selle kliendi enda teed ja tunnel välis-eelarvet ning selle hosti marsruudimõõdik ei ulatu sellest piirist üle.
Kinnita eelarve marsruudile, mis otsingu võidab
Näitlik IPv4 marsruudikirje näeb välja selline:
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
Loe kirjet kavatsuse kirjeldusena, mitte kleepimiseks mõeldud väärtusena. Eesliide, seade ja eelistatud allikas peavad vastama tegelikule konfiguratsioonile ning number peab tulema tõenditest kapseldatud tee kohta, mitte blogipostitusest. Marsruudi MTU piirab sisemist IP-paketti, mis ei ole sama kui 1380-baidine TCP kasulik koormus või 1380-baidine krüpteeritud välimine pakett.
Vaata, kus otsing tegelikult laheneb, enne kui midagi lisad. Poliitikareeglitega host võib suunata antud sihtkoha läbi muu tabeli kui main, ja mõõdik, mis eksisteerib ainult main tabelis, on selle päringu jaoks nähtamatu. Võrdle ip -4 route show table all vastusega ip route get, sealhulgas märgise või nimeruumi kontekst, kui reeglid neid kasutavad. Kui need kaks ei ühti, vajab mõõdikut tabel, mis vastas, mitte see, mis paistab korrastatum.
mtu ei ole mtu lock
Vaikimisi saab tuum ikka tee MTU-d ICMP tagasiside põhjal uuendada, selleks tee-MTU avastamine ongi. Lisamine lock peatab selle. See on teine otsus, mitte tugevam viis sama numbri hoidmiseks, ja IPv4 puhul muudab see dokumenteeritud käsitlust „ära fragmenteeri“ bitiga.
Lukustamine on mõistlik, kui oled tee mõõtnud ja tahad, et väärtus jääks paigale olenemata sellest, mis saabub. See on halb vaikeväärtus, kui võrk saadab legitiimset suuruse tagasisidet, sest tuum ei saa enam kohanduda ja rike liigub teise sümptomi juurde.
Kui ICMP-d kuskil teel filtreeritakse, ei paranda seda ükski marsruudiseade. Parandus kuulub filtrile ja väiksem MTU on möödasõit, mis peidab tegeliku vea kuni järgmise tee muutuseni.
Tunnelitarkvara lisab oma suuruse regulaatorid
OpenVPN- mssfix reguleerib TCP segmendi suurust oma dokumenteeritud UDP tunneli juhtumi jaoks. See toimib TCP vestluse tasandil, seega ei ole see operatsioonisüsteemi marsruudi MTU teine kirjaviis ja ei saa aidata UDP teenust, mis läbirääkimist eirab.
Ära virna marsruudi MTU-d, liidese MTU muutust ja MSS-i piirangut ühte muudatuste aknasse. Kui probleem kaob, ei tea, milline neist loeb, ja need, mille jätad, piiravad liiklust aastaid ilma põhjuseta, mida keegi mäletab.
Tee see tagasipööratavaks ja siis tõesta
Marsruudi tegelik omanik otsustab, kas muudatus üle elab taasühenduse. VPN-klient, mis paigaldab marsruudi dünaamiliselt, ehitab selle tavaliselt uuesti ilma sinu mõõdikuta, ja käsitsi ip route add näeb siis välja nagu parandus, mis ebaõnnestus päev hiljem. Pane väärtus halduri konfiguratsiooni ja kui vajad ajutist katset, kirjuta enne üles algne marsruut.
Testi uue ühendusega, mis teeb toimingu, mis takerdus, ja kinnita siis, et kavatsetud privaatne marsruut ikka võidab ning mitteseotud sihtkohad ei ole muutunud. Ühenda tunnel uuesti ja loe marsruut järgi, sest taasühendusel kaduv väärtus ei ole parandus.
Kui tõendid muudatust ei toeta, eemalda alistamine selle halduri kaudu ja taasta algsete marsruudi atribuudid, selle asemel et marsruut kustutada. Pane siis kirja, mida mõõtsid ja millisel teel, et järgmine inimene saaks eristada tegelikku paranemist tööle jäetud katsest.