Кириштирилген VPN туннелдери: чоң пакеттерде ичкиси эмнеге токтоп калат
Ар бир туннель кийинкиси башталганга чейин жолдун пакет бюджетинин бир бөлүгүн сарптайт. Баштарды кошуңуз, ички сессия чоң пакеттерде ийгиликсиз болот.
DNS чечилет, SSH сессиясы турат, анан чоң жүктөө тоңот, ал эми ошол эле хостко ping дагы эле жооп берет. Бул бөлүнүү бузулган туннелге эмес, пакеттин өлчөмүнө көрсөтөт. Кириштирилген туннелдер эки туннелдин эч бири жалгыз жете албаган өлчөмдөрдө буга жетет. Ички сессия жакшы; ага эми батпаган пакеттер берилип жатат.
Жолдун MTU-су чындыгында кайда кетет
Ар бир инкапсуляция кийинки катмар кезек алганга чейин байт сарптайт. Ethernet жолу сырткы пакетке 1500 байт сунуштайт, ал эми сырткы туннель анын ичиндеги эч нерсе даректене электе өз үлүшүн алат. Бир болжолдонгон кошумча чыгым маанилүү болгон өлчөмгө так туура эмес болот.
Катмарларды ирети менен тизмелеңиз: кирүү жолу, сырткы ташуу, сырткы туннель, ички ташуу, ички туннель, колдонмо. Ар бир башты бир жолу эсептеңиз жана UDP-ну туннелдин өз башы менен тегинен бөлүк кармаңыз.
Эки WireGuard катмары, бир жолу эсептелди
IPv4 кирүү жолун алыңыз, ичинде дагы бир WireGuard туннели бар. Сырткы катмар 20 байт IPv4, 8 байт UDP жана WireGuard маалымат башы менен анын аутентификация теги үчүн 32 байт сарптайт. Анын ичинде ички туннелге өзүнүн 20 байттык IPv4 башы жана 8 байттык UDP башы экинчи 32 байт WireGuard кошумчасынын алдында керек. Калганы IPv4 башын, TCP башын жана маалыматты сыйдырат. Сырткы IPv6 жолу 20 ордуна 40 сарптайт жана 1320 калтырат.
| Layer | Bytes |
|---|---|
| Path MTU | 1500 |
| Outer IPv4 header | 20 |
| Outer UDP header | 8 |
| Outer WireGuard header and tag | 32 |
| Inner transport IPv4 header | 20 |
| Inner UDP header | 8 |
| Inner WireGuard header and tag | 32 |
| Innermost IPv4 header | 20 |
| TCP header | 20 |
| Payload that fits | 1340 |
Арифметика 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 жообу чыныгы чекти жашыра алат, ошондуктан зонд ой жүгүртүүдөн маанилүүрөөк.
Бюджетти кийинки адам таба турган жерге жазыңыз
Ар бир катмарга бир саптан турган таблица бармак эрежесинен узак жашайт. Аны туннель диаграммасынын жанында кармаңыз, басым астында эч ким арифметиканы кайра жасабасын.
Көбүрөөк туннель көбүрөөк көз карандылык дегенди билдирет, ошондуктан артка кайтаруу планы бюджеттин жанында өз ордун алат. Сандар дагы эле дал келбесе, кайра болжолдоонун ордуна жолду өлчөңүз. Максат — коргой алган сан, жаттаган сан эмес.