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.

SymptomWhat it points toNext check
Handshake completes, large transfer stallsSegment size larger than the path can carryPath MTU against the tunnel's effective MTU
Nothing connects, small or largeRouting, firewall or keying failureNot MSS; look at the tunnel state
Only UDP applications stallDatagram size or a dropped ICMP errorPlatform-specific UDP handling, not clamping
Fixed after reconnect, returns laterClamp applied to one direction or one interfaceRule 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.

Artikli relatati