MSS clamping fuq gateway VPN: x'jissewwa u x'ma jissewwiex
Il-clamping jerġa' jikteb l-MSS fil-handshakes TCP biex is-segmenti joqogħdu fit-tunnel. Qatt ma jsewwi UDP jew kontroll path-MTU miksur. Tliet kontrolli, fl-ordni.
Talbiet żgħar jaħdmu, downloads kbar jieqfu, u xi ħadd jissuġġerixxi MSS clamping. Dak is-suġġeriment huwa tajjeb spiss biżżejjed biex jixraqlu prova fl-ordni t-tajba, u ħażin spiss biżżejjed biex taħli wara nofsinhar jekk tapplikah bl-addoċċ. It-tliet kontrolli hawn taħt jifirdu problema vera tad-daqs TCP minn problema UDP, minn skoperta path-MTU miksur u minn clamp li qatt ma jara l-handshake li suppost jerġa' jikteb.
Ibda mill-forma tal-ħsara
Ħsara tad-daqs għandha firma: il-konnessjoni tiġi stabbilita, l-awtentikazzjoni u t-tweġibiet żgħar jirnexxu, u mbagħad trasferiment jieqaf bla limitu hekk kif ikun jeħtieġ segment b'daqs sħiħ. Paġni li jgħabbu t-test iżda qatt ma jlestu stampa huma l-istess ħsara fuq skala iżgħar. Jekk xejn ma jikkonnettja, il-problema hija eqreb fil-passaġġ u l-clamping mhux se jgħin. Clamp ma jistax isewwi handshake li qatt ma wasal.
Il-firma teżisti għax il-handshake huwa l-post fejn jiġi miftiehem id-daqs tas-segment. Kull naħa tħabbar daqs massimu tas-segment bħala għażla TCP, u dawk li jibagħtu jirrispettaw it-tħabbira tal-parti l-oħra. Jekk il-passaġġ ma jistax iġorr segment daqshekk kbir, il-ħsara tidher aktar tard, meta min jibgħat finalment jipprova wieħed.
Żomm it-trasport fil-veduta waqt li taqra dak is-sintomu. Il-clamping huwa kitba mill-ġdid ta' għażla TCP, għalhekk sejħa tal-vuċi jew tal-vidjow li tieqaf taħt l-istess tunnel mhijiex problema MSS u mhux se titjieb biha. Ikteb it-trasport qabel ma tmiss għażla TCP.
Ipprezzja l-passaġġ, imbagħad qabblu mat-tunnel
Żewġ numri jgħoddu u spiss jiġu mħawwdin. Il-path-MTU huwa l-akbar pakkett li l-passaġġ iġorr mingħajr frammentazzjoni, u l-MSS imħabbar għal IPv4 huwa dak il-valur nieqes it-40 byte ta' intestaturi IP u TCP, jew nieqes 60 għal IPv6. L-inkapsulament tat-tunnel jiekol parti mill-baġit qabel ma l-pakkett ta' ġewwa jibda.
ping -M do -s 1400 198.51.100.20
tracepath 198.51.100.20
Il-ping bil-bit do-not-fragment jgħidlek jekk pakkett ta' dak id-daqs ta' tagħbija jgħaddix; ibdel id-daqs sakemm ifalli u tkun sibt il-limitu tal-passaġġ b'mod empiriku. Il-ħruġ ta' tracepath jirrapporta l-MTU misjub tul ir-rotta, li huwa aktar mgħaġġel meta jaħdem u inqas affidabbli meta hop intermedju jiffiltra l-provi.
Issa naqqas l-overhead tat-tunnel. Intestatura IP ta' barra, intestatura UDP u intestatura speċifika għat-tunnel kollha joħorġu mill-istess 1500 byte, għalhekk l-MTU intern użabbli fuq bażi Ethernet tipika huwa aktar baxx milli jissuġġerixxi l-ħolqa fiżika. Jekk l-MTU intern ikkalkulat huwa taħt dak imħabbar mill-pari tiegħek, sibt kandidat veru għall-clamp u mhux konġettura. Jekk il-valur ikkalkulat diġà jinsab fuq it-tħabbira tal-pari, waqaf hawn u ħares band'oħra.
Qiegħed il-clamp fejn jgħaddi l-handshake
Clamp jaħdem billi jerġa' jikteb l-għażla MSS fil-pakketti SYN u SYN-ACK waqt li jqaxxru l-gateway. Jekk ir-regola tinsab fuq interface li lanqas waħda miż-żewġ direzzjonijiet qatt ma tgħaddi minnha, in-negozjar jitlesta bla tibdil u s-sintomu jibqa', għalhekk it-tqegħid jiddeċiedi r-riżultat aktar mill-valur.
| Symptom | What it points to | Next check |
|---|---|---|
| Handshake completes, large transfer stalls | Segment size larger than the path can carry | Path MTU against the tunnel's effective MTU |
| Nothing connects, small or large | Routing, firewall or keying failure | Not MSS; look at the tunnel state |
| Only UDP applications stall | Datagram size or a dropped ICMP error | Platform-specific UDP handling, not clamping |
| Fixed after reconnect, returns later | Clamp applied to one direction or one interface | Rule placement and the handshake path |
Id-direzzjoni hija n-nofs l-ieħor. Il-clamping ta' direzzjoni waħda jsewwi nofs il-flussi u jħalli l-bqija jfallu b'mod li jidher intermittenti, għalhekk applika fuq iż-żewġ direzzjonijiet tat-traffiku mgħoddi. Il-forma klassika f'Linux għal interface tat-tunnel hija regola mangle li taqbel ma' pakketti SYN:
iptables -t mangle -A FORWARD -o tun0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Innota x'jagħmel fil-fatt --clamp-mss-to-pmtu: jiddeduċi l-valur mill-MTU tar-rotta, li mhux dejjem il-baġit reali tat-tagħbija tat-tunnel. Fuq tunnel ibbażat fuq rotta fejn ir-rotta interna u l-passaġġ ta' barra huma differenti, valur espliċitu kkalkulat fil-kontroll preċedenti huwa aktar prevedibbli minn wieħed awtomatiku.
Ivverifika b'konnessjoni ġdida, u żomm il-feedback ħaj
Konnessjoni stabbilita żżomm l-MSS li nnegozjat, għalhekk it-testjar fl-istess sessjoni ma jipprova xejn. Iftaħ konnessjoni ġdida wara l-bidla u aqra l-valur innegozjat direttament minflok ma tiddeduċih minn trasferiment li jispiċċa b'kumbinazzjoni.
ss -tin dst 198.51.100.20
iptables -t mangle -S | grep TCPMSS
L-ewwel kmand jirrapporta l-MSS tas-socket flimkien mal-istat ta' konġestjoni tiegħu, li huwa l-aktar konferma mgħaġġla li l-clamp ħa effett. It-tieni jikkonferma li r-regola li taħseb li żidt hija r-regola li teżisti, fit-tabella fejn tqiegħdet.
Imbagħad ipproteġi l-mekkaniżmu li ma tajtx ħsara lilu. L-iskoperta path-MTU tiddependi fuq li l-messaġġi ICMP fragmentation-needed jaslu għand min jibgħat, għalhekk firewall li jarmihom se jkompli jkisser trasferimenti kbar anki b'clamp korrett. Ħalli dawk il-messaġġi għall-passaġġ tat-tunnel, jew aċċetta li l-clamping qed jikkumpensa għal politika li għażilt int.
Fl-aħħar, irresisti t-tentazzjoni li tqis il-clamp bħala pum ta' aġġustament. Huwa jikkostrinġi d-daqs tas-segment, li jiswa throughput fuq passaġġi li qatt ma kellhom bżonnu. Applikat wara t-tliet kontrolli huwa tiswija mmirata; applikat l-ewwel huwa bidla li taħbi l-ħsara oriġinali u żżid it-tieni varjabbli ma' kull test sussegwenti. Dak il-baratt għandu jsir deliberatament, mhux b'mod awtomatiku.
Ikteb il-path-MTU li kejjejt, l-overhead tat-tunnel li naqqast, ir-regola li żidt u l-MSS li rajt wara. Erba' numri jagħmlu l-inċident li jmiss tfittxija minflok investigazzjoni.