Некаде во некој водич има број, обично меѓу шеесет и осумдесет бајти, кој некој го одзел од 1500 за да добие MTU на интерфејсот. Тој број опишува една конкретна инкапсулација на една конкретна патека. Сменете го режимот, надворешното семејство адреси, шифрата или присуството на NAT и сметката повеќе не важи за вашиот тунел.

Бројката дојде од друг тунел

Товарот не е својство на IPsec во апстрактен смисла. Тоа е својство на пакетот што навистина се гради: договорен режим, надворешно заглавје, заштитно заглавје, полнење, поле за интегритет и можеби дополнителна UDP обвивка.

Бројка наведена за транспортен режим со IPv4 и без NAT опишува помал пакет од тунелскиот режим со IPv6 под премин на NAT. Двете се точни за својот случај. Копирањето на едната од нив во друго распоредување е начинот на кој луѓето завршуваат со MTU што ги крши големите преноси. Дефектот е тивок, бидејќи малите барања продолжуваат да работат.

Соберете ги слоевите што навистина постојат

Започнете од надворешното IP заглавје и движете се навнатре. Во тунелски режим оригиналниот пакет е внатре, па надворешното заглавје е додаток, а не замена. RFC 4303 го опишува ESP заглавјето, полнењето и податоците за интегритет што следат по него.

LayerWhat it addsWhen it applies
Outer IP header20 bytes for IPv4, 40 for IPv6Always, and 40 rather than 20 if the outer path is v6
ESP header8 bytes of SPI and sequence numberAlways
Block cipher IV8 to 16 bytes depending on the transformWhen the negotiated cipher uses one
Padding and trailerPadding to the block size, plus two trailer bytesAlways, and the amount varies with payload length
Integrity data12 to 16 bytes for common authenticated ciphersWhen integrity protection is negotiated
UDP encapsulation8 bytesNAT traversal on port 4500, which is common for clients behind NAT

Ниту еден од тие редови не е константен меѓу распоредувањата, а редот со полнење не е константен ни во едно распоредување. Тоа е целата причина зошто една објавена бројка за товарот разочарува.

Две локации можат да не се согласат за истиот тунел

Заштитениот пакет сепак мора да ја премине надворешната патека, а надворешната патека не е иста насекаде. PPPoE пристапната врска носи помалку од чист Ethernet сегмент. Мобилната мрежа може да се намали дополнително, а провајдерот што го тунелира сопствениот сообраќај додава уште една инкапсулација што никој не ја спомна. Тунел што работи на една врска и не успева на друга ја опишува втората врска, а не протоколот.

И двете насоки можат да се разликуваат. Асиметричната рута може да ви даде испраќање што работи и преземање што заглавува, што се чита како проблем на апликацијата додека не погледнете големините на пакетите наместо достапноста. Успешен мал ping докажува многу малку за одговор со полна големина.

Измерете наместо да одземате

Најдете ја најголемата датаграма што ја преживува патеката. Потоа споредете ја со вредноста што ја пријавува интерфејсот:

ip link show eth0 | grep -o 'mtu [0-9]*'
ip xfrm state list
ping -M do -s 1400 198.51.100.7
ping -M do -s 1372 198.51.100.7
tcpdump -ni any -c 20 'esp or udp port 4500'

Намалувајте ја големината на ping додека не почнат да пристигнуваат одговори, и сметајте ја најголемата работна вредност за буџет на таа патека. Излезот од xfrm ви кажува кој режим и кои алгоритми се договорени, а тоа е влезот за секоја чесна пресметка. Снимањето потврдува дали на жицата има ESP или ESP завиткан во UDP, и тоа го решава прашањето со NAT без погодување.

Одвојте една вредност и за контролната рамнина. IKE пакетите за ракување имаат поинаква структура од податочните пакети, па големината изведена од снимање на ракување не е MTU на податочната рамнина.

Ставете ја бројката таму каде што и е местото

За TCP низ тунел, ограничувањето на MSS е често најмалку инвазивната контрола, бидејќи го намалува тоа што го испраќаат крајните точки без да го менува самиот тунел. За тунел заснован на рути, поставете го MTU на тунелскиот интерфејс намерно и документирајте зошто. Ако го направите и двете одеднаш и потоа мерите, не добивате никаква информација за тоа што помогнало.

Држете ги заедно во тикетот договорениот режим, надворешното семејство, состојбата на NAT и симптомот што може да се повтори. Запишан сет од четири факти победува запаметена константа, и тоа е единствената верзија од ова што ја преживува следната надградба на клиентот.

Поврзани статии