TCP-MSS-oanpassing op in Linux-IPsec-gateway: wat it oplost
Lytse oanfragen wurkje en grutte antwurden hingje. Kontrolearje oft in MSS-regel op it binnenste TCP-paad de goede oplossing is, en wêr't dy wêze moat.
Ping wurket, SSH wurket, in lytse side laden, en dan hinget elk grut antwurd oant de tiid ferstriken is. It klassike patroan wiist op pakketgrutte, net op berikberens: it paad draacht de hânskodding en de earste pear kilobyte, dêrnei ferdwynt in segmint fan folsleine grutte. Op in Linux-IPsec-gateway is in TCP-MSS-regel faak de oplossing, mar allinnich as jo begripe wat dy feroaret en wêr't it pakket dat er oanrekket eins is. De folchoarder hjirûnder folget it pakket fan symptoom oant it pleatsen fan 'e regel, sadat jo stopje kinne sadree't de ferklearring net mear past.
It symptoom dat op MSS wiist
TCP ûnderhannelt in maksimale segmintgrutte yn 'e hânskodding. As dy wearde grutter is as wat it paad nei ynkapseling drage kin, bliuwt de ferstjoerder segminten meitsjen dy't nea oankomme, en de ferbining hinget nei de earste rûn. Lytse antwurden passe; grutte net.
ICMP-weromkeppeling kin de ferbining rêde fia it ûntdekken fan 'e MTU fan it paad, en in fjoermuorre dy't dy berjochten fuortsmyt makket fan it hingjen in stil swart gat. Dêrom wurket deselde tunnel foar de iene applikaasje en mislearret er foar in oare sûnder in dúdlik ferskil yn 'e konfiguraasje.
Wat in TCPMSS-regel docht en wat net
De regel skriuwt de MSS-opsje yn TCP-hânskoddingspakketten oer wylst se foarbykomme. Hy set net de MTU fan 'e tunnel-ynterface, hy feroaret net it IPsec-belied, en op hjoeddeistige kernels ferleget er allinnich in oankundige wearde ynstee fan in al lytsere te ferheegjen. Hy rekket ek allinnich TCP; UDP-ladingen, DNS-gedrach en de ûnderhannele ferkearsselekteurs binne bûten syn berik.
Om't de feroaring yn 'e hânskodding bart, behâldt in besteande ferbining dy't foar de regel oanmakke is har âlde wearde. Test mei in nije ferbining, en ferwachtsje dat it earste besykjen nei de feroaring it iene is dat jo wat fertelt. Neat yn 'e regel berikt in ferbining dy't al iepen is. Dêrom kin in oplossing dy't midden yn in foarfal tapast wurdt der útsjen as hat er hielendal neat dien.
Set de regel op it binnenste TCP-paad
Op in beliedsbasearre Linux-gateway liket it trochstjoerde pakket noch altyd op gewoane TCP as de fjoermuorre it sjocht. It IPsec-belied beslút dat it pakket beskerme wurdt; de fjoermuorre sjocht foar de binnenste stream gjin ESP-kop, dus it oerienkomme mei ESP hjir beskriuwt in hiel oar pakket. Dy misferhâlding is de reden dat guon regels korrekt lykje en nea oerienkomme.
Yn iptables-termen heart de regel by de mangle-tabel op it trochstjoerpaad, beheind ta hânskoddingspakketten: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. It getal is in foarbyld, net in universele konstante; lûk it ôf út 'e ynkapselingskosten en de echte MTU fan it paad. In nftables-ekwivalint set de maksimale segmintgrutte yn in forward- of postrouting-ketting.
Hâld de bûtenste lústerregels foar IKE en ESP apart fan 'e binnenste trochstjoerregels. Ien regel dy't sawol de applikaasjestream as it bûtenste protokol autorisearje wol, komt úteinlik by gjin fan beide betrouber oerien.
Respektearje de eigner fan 'e fjoermuorre en de NAT-oarder
As UFW de fjoermuorre fan 'e host besit, foegje de mangle- en trochstjoerferoarings ta fia syn stipe permaninte konfiguraasje ynstee fan in kommando te typen dat by de folgjende werlading ferdwynt. In regel dy't yn 'e ferkearde tabel of nei in terminale regel ynfoege wurdt, hat gjin effekt, en de libbene tabel ferberget dat foar jo.
Boarnfertaling is in aparte beslissing dy't faak mei dizze gearspilet. In útsûndering pleatst foar in algemiene masquerade-regel hâldt tsjin dat beskerme ferkear de boarne ferliest dy't syn belied easket; it reparearret gjin grutteprobleem, en in grutteregel reparearret gjin fertaalprobleem.
Kontrolearje smal, stop dan
Iepenje in nije ferbining nei de tsjinst dy't mislearret en besjoch sawol de applikaasje as de tellers fan 'e regel. As it hingjen ferdwynt, hawwe jo bewiis oer dat TCP-paad mei dy ynkapseling. Jo hawwe gjin bewiis dat elk VPN-protokol past, dat elke UDP-applikaasje reparearre is of dat in spesifike streamop-tsjinst de oarspronklike oarsaak wie.
Lit ICMP-grutte-weromkeppeling wurkje wêr't belied it tastiet, en behannelje automatyske oanpassing op grûn fan 'e MTU fan 'e rûte foarsichtich as it bûtenste IPsec-paad net troch de binnenste rûte fertsjintwurdige wurdt. Hoe nauwer de konklúzje, hoe makliker it folgjende foarfal te diagnostearjen is.