Clampio MSS TCP ar borth IPsec Linux: beth mae'n ei drwsio
Mae ceisiadau bach yn gweithio ac mae ymatebion mawr yn stelcian. Gwiriwch a yw rheol MSS ar y llwybr TCP mewnol yw'r atgyweiriad cywir, a ble y mae'n rhaid iddi fod.
Mae ping yn gweithio, mae SSH yn gweithio, mae tudalen fach yn llwytho, ac yna mae pob ymateb mawr yn stelcian nes ei fod yn dod i ben. Mae'r patrwm clasurol yn pwyntio at faint y pecyn yn hytrach nag at gyrhaeddiad: mae'r llwybr yn cario'r ysgwyd llaw a'r ychydig gilobeit cyntaf, yna mae segment maint llawn yn diflannu. Ar borth IPsec Linux, rheol TCP MSS yn aml yw'r atgyweiriad, ond dim ond os ydych chi'n deall beth mae'n ei newid a ble mae'r pecyn y mae'n cyffwrdd ag ef mewn gwirionedd. Mae'r drefn isod yn dilyn y pecyn o'r symptom i leoliad y rheol, fel y gallwch stopio cyn gynted ag y bydd yr esboniad yn peidio â ffitio.
Y symptom sy'n awgrymu MSS
Mae TCP yn negodi maint segment mwyaf yn yr ysgwyd llaw. Os yw'r gwerth hwnnw'n fwy na'r hyn y gall y llwybr ei gario ar ôl ymgorffori, mae'r anfonwr yn parhau i gynhyrchu segmentau nad ydynt byth yn cyrraedd, ac mae'r cysylltiad yn stelcian ar ôl y rownd gyntaf. Mae ymatebion bach yn ffitio; nid yw rhai mawr.
Gall adborth ICMP achub y cysylltiad trwy ddarganfod MTU'r llwybr, ac mae mur tân sy'n gollwng y negeseuon hynny'n troi'r stelcian yn dwll du distaw. Dyna pam mae'r un twnnel yn gweithio i un cymhwysiad ac yn methu i un arall heb unrhyw wahaniaeth amlwg yn y ffurfweddiad.
Beth mae rheol TCPMSS yn ei wneud a beth nad yw'n ei wneud
Mae'r rheol yn ailysgrifennu'r opsiwn MSS ym mhecynnau ysgwyd llaw TCP wrth iddynt basio. Nid yw'n gosod MTU rhyngwyneb y twnnel, nid yw'n newid polisi IPsec, ac ar gnewyll cyfredol dim ond gostwng gwerth a hysbysebwyd y mae, yn hytrach na chodi un sydd eisoes yn llai. Dim ond TCP y mae'n cyffwrdd ag ef hefyd; mae llwythi UDP, ymddygiad DNS a'r detholwyr traffig a negodwyd y tu allan i'w gyrraedd.
Gan fod y newid yn digwydd yn ystod yr ysgwyd llaw, mae cysylltiad presennol a sefydlwyd cyn y rheol yn cadw ei hen werth. Profwch gyda chysylltiad newydd, a disgwyliwch mai'r ymgais gyntaf ar ôl y newid fydd yr un sy'n dweud rhywbeth wrthych. Nid oes dim yn y rheol yn cyrraedd cysylltiad sydd eisoes ar agor. Dyna pam y gall atgyweiriad a gymhwyswyd yng nghanol digwyddiad edrych fel pe na bai wedi gwneud dim o gwbl.
Rhowch y rheol ar y llwybr TCP mewnol
Ar borth Linux sy'n seiliedig ar bolisi, mae'r pecyn a anfonwyd ymlaen yn dal i edrych fel TCP cyffredin pan fydd y mur tân yn ei weld. Mae polisi IPsec yn penderfynu y bydd y pecyn yn cael ei ddiogelu; nid yw'r mur tân yn gweld pennawd ESP ar gyfer y llif mewnol, felly mae paru ag ESP yma yn disgrifio pecyn hollol wahanol. Dyna'r anghysondeb sy'n gwneud i rai rheolau edrych yn gywir ac yn peidio â chyfateb byth.
Yn nhelerau iptables, mae'r rheol yn perthyn i'r tabl mangle ar y llwybr anfon ymlaen, wedi'i chyfyngu i becynnau ysgwyd llaw: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Mae'r rhif yn enghraifft, nid yn gysonyn cyffredinol; deilliwch ef o orbenion ymgorffori ac o wir MTU'r llwybr. Mae cyfwerth nftables yn gosod maint segment mwyaf mewn cadwyn forward neu postrouting.
Cadwch y rheolau gwrando allanol ar gyfer IKE ac ESP ar wahân i'r rheolau anfon ymlaen mewnol. Mae un rheol sy'n ceisio awdurdodi llif y cymhwysiad a'r protocol allanol gyda'i gilydd yn gorffen heb gyfateb yn ddibynadwy i'r naill na'r llall.
Parchwch berchennog y mur tân a threfn NAT
Os UFW sy'n berchen ar fur tân y gwesteiwr, ychwanegwch y newidiadau mangle ac anfon ymlaen trwy ei ffurfweddiad parhaus a gefnogir yn hytrach na theipio gorchymyn sy'n diflannu ar yr ail-lwytho nesaf. Nid oes effaith gan reol a fewnosodwyd yn y tabl anghywir neu ar ôl rheol derfynol, ac mae'r tabl byw yn cuddio hynny oddi wrthych.
Mae cyfieithu ffynhonnell yn benderfyniad ar wahân sy'n aml yn rhyngweithio â hwn. Mae esemptiad a osodwyd cyn rheol masquerade gyffredinol yn cadw traffig gwarchodedig rhag colli'r ffynhonnell y mae ei bolisi'n ei gofyn; nid yw'n trwsio problem maint, ac nid yw rheol maint yn trwsio problem cyfieithu.
Gwiriwch yn gul, yna stopiwch
Agorwch gysylltiad newydd i'r gwasanaeth sy'n methu a gwyliwch y cymhwysiad a chyfrifwyr y rheol ill dau. Os yw'r stelcian yn clirio, mae gennych dystiolaeth am y llwybr TCP hwnnw gyda'r ymgorffori hwnnw. Nid oes gennych dystiolaeth bod pob protocol VPN yn ffitio, bod pob cymhwysiad UDP wedi'i drwsio, na bod gwasanaeth uwchben penodol yn achos gwreiddiol.
Gadewch i adborth maint ICMP weithio lle mae polisi'n caniatáu, a thriniwch glampio awtomatig yn seiliedig ar MTU llwybr yn ofalus pan nad yw'r llwybr IPsec allanol yn cael ei gynrychioli gan y llwybr mewnol. Po gulaf y casgliad, gorau oll y gellir diagnosio'r digwyddiad nesaf.