DNS шийдэгдэж, SSH сесс тогтвортой байгаа ч том upload хөлдөж, мөн адил хост руу ping хариу үргэлжлүүлэн өгдөг. Энэ хуваагдал эвдэрсэн туннель биш, пакетийн хэмжээг заасан. Давхар туннель нь аль нэг туннель дангаараа хүрэхгүй хэмжээнд хүрдэг. Дотоод сесс хэвийн; зүгээр л багтахгүй болсон пакетуудыг өгч байна.

Замын MTU үнэхээр хаашаа явдаг вэ

Инкапсуляц бүр дараагийн давхарга ээлж автал байт зарцуулдаг. Ethernet зам гадаад пакетэд 1500 байт санал болгож, гадаад туннель доторх зүйл хаяглагдахын өмнө өөрийн хувийг авдаг. Таамагласан нэг overhead утга яг чухал хэмжээгээр буруу байх болно.

Давхаргуудыг дарааллаар жагсаа: хандалтын зам, гадаад тээвэр, гадаад туннель, дотоод тээвэр, дотоод туннель, програм. Толгой бүрийг нэг удаа тоолж, UDP-г туннелийн өөрийн толгой, шошгоос тусдаа байлга.

Хоёр WireGuard давхарга, нэг удаа тоологдсон

IPv4 хандалтын зам авч, дотор нь өөр WireGuard туннель байг. Гадаад давхарга 20 байт IPv4, 8 байт UDP, WireGuard өгөгдлийн толгой болон түүний баталгаажуулалтын шошгонд 32 байт зарцуулна. Үүний дотор дотоод туннель өөрийн 20 байтын IPv4 толгой, 8 байтын UDP толгойг хоёр дахь 32 байт WireGuard зардлын өмнө шаарддаг. Үлдсэн хэсэгт IPv4 толгой, TCP толгой, өгөгдөл багтана. Гадаад IPv6 зам 20-ийн оронд 40 зарцуулж, 1320 үлдээнэ.

LayerBytes
Path MTU1500
Outer IPv4 header20
Outer UDP header8
Outer WireGuard header and tag32
Inner transport IPv4 header20
Inner UDP header8
Inner WireGuard header and tag32
Innermost IPv4 header20
TCP header20
Payload that fits1340

Арифметик 1340 байтад хүрнэ. Ижил дүрмээр нэг давхарга TCP-ийн ашигтай ачаалалд 1400 үлдээдэг, өөрөөр хэлбэл 1500-аас 20, 8, 32, 20, 20-ыг хасч, 60 байтын зөрүү нь хоёр дахь туннелийн нэмдэг яг тэр дотоод инкапсуляц юм.

1400-г давхар замад хэрэглэвэл дотоод туннель 60 байтаар дутагдана, пакет тэдгээрийг шаардахаар том болтол үл мэдэгдэнэ. Дүүргэлт болон протоколын өөрийн фрагментацийн сонголт тоонуудыг дахин хөдөлгөдөг тул хүснэгтэд итгэ.

MTU, MSS болон фрагментаци өөр өөр газарт үйлчилнэ

Интерфэйсийн MTU интерфэйс юу гаргахыг хязгаарлаж, TCP-ийн MSS шахац нь TCP түнш юу илгээхэд бэлэн байгааг өөрчилнө. Шахац TCP сессийг засдаг том UDP датаграмын хувьд юу ч хийдэггүй, ингэснээр засвар нэг програмын хувьд амжилттай харагдаж, дараагийнхыг чимээгүй алддаг. Протоколын өөрийн фрагментацийн сонголт нь өөрийн бүтэлгүйтэлтэй гурав дахь хөшүүрэг. Интерфэйсийн MTU бол нийтлэг эхний алхам бөгөөд хамгийн бүдүүн нь.

Гүүрэн болон маршрутлагдсан туннель өөр өөр фрэйм зөөдөг тул өөр байршуулалтын тоо ховор шилждэг. Замын MTU илрүүлэлт, үүнийг тайлбарласан RFC 8201-д, зөвхөн түүнээс хамааралтай ICMP мессежийг нэвтрүүлж байх үед л тусална.

Дутуу давхаргыг олох

Шаардлага харьцуулахыг зөвшөөрвөл давхраасахаас өмнө туннель бүрийг тусдаа шалга. Тогтмол хэмжээтэй проб үүнийг шийднэ: ping -M do -s 1472 -c 3 10.8.0.1 тухайн давхаргын дотор бүрэн 1500 байтын IPv4 пакет илгээдэг. Хоёр дахь давхаргыг нэмж, ижил проб-ыг давт, ингэснээр аливаа бүтэлгүйтэл мэдэгдэж буй өөрчлөлтөд хамаарна.

Дамжуулалт гацах үед нэг удаад нэг баримтжуулсан параметрийг өөрчилж, бүтэлгүйтэх хэмжээг тэмдэглэ. Буцах замыг мөн шалга, учир нь давхар маршрутын рекурс пакетийн хэмжээний асуудлыг нэг үдээс хойш зарцуулахаар нарийн дуурайж чадна. Шүүсэн ICMP хариулт бодит хязгаарыг нууж чаддаг тул проб нь үндэслэлээс илүү чухал.

Төсвийг дараагийн хүн олох газарт бич

Давхарга бүрт нэг мөртэй хүснэгт эрхий хурууны дүрмээс урт насалдаг. Түүнийг туннелийн диаграмын дэргэд байлга, ингэснээр хэн ч дарамт дор арифметикийг давтахгүй.

Илүү олон туннель илүү их хамаарал гэсэн үг, тиймээс буцаах төлөвлөгөө төсвийн дэргэд байх ёстой. Тоонууд тохирохгүй байвал дахин таамаглахын оронд замыг хэмж. Зорилго нь санаж үлдэх биш, хамгаалж чадах тоо юм.

Холбоотой нийтлэлүүд