Няўзгодненасць дуплексу на порце VPN-шлюза: чытайце абодва канцы
Порт 10/100, які ўзгадняе хуткасць, але не дуплекс, дае памылкі пад нагрузкай. Прачытайце рэжым працы на абодвух канцах і параўнайце паказанні лічыльнікаў за адзін прамежак.
Копія файла праз тунель спыняецца на секунду, аднаўляецца, а журналы VPN нічога не паказваюць. Праграма вінаваціць сетку, сетка вінаваціць праграму, а порт камутатара ўключаны ўжо адзінаццаць месяцаў. Гэты разбор пачынаецца з паўзы і ідзе вонкава да фізічнага канала: што порт робіць насамрэч, што робіць далёкі канец і што рабілі лічыльнікі, пакуль вы назіралі. Гэта варта зрабіць, перш чым хто-небудзь дакранецца да налады дуплексу.
Пачніце з паўзы, а не з порта
Апішыце сімптом так, каб яго можна было праверыць. Затрымка каля секунды падчас масавай перадачы — гэта іншая праблема, чым злучэнне, якое скідваецца, а паўза раз на гадзіну адрозніваецца ад той, што адбываецца кожныя некалькі секунд. Запішыце нагрузку, кірунак і прыблізны інтэрвал.
Затым узнавіце гэта, назіраючы за інтэрфейсам. Фізічная праблема праяўляецца як рух лічыльнікаў падчас закранутай нагрузкі, а праблема, якая зусім не дае руху лічыльнікаў, хутчэй за ўсё, знаходзіцца вышэй за канальны ўзровень. Назірайце хвіліну, а не секунду, бо гэтыя дэфекты часта патрабуюць устойлівага трафіку, перш чым праявіцца. Назіранне ў прастоі нічога не даказвае пра канал, які паводзіць сябе дрэнна толькі пад нагрузкай.
Гэта важна, бо няўзгодненасць дуплексу мае подпіс: памылкі, якія з'яўляюцца толькі пад нагрузкай, у кірунку трафіку, тады як малыя ping і інтэрактыўныя сеансы застаюцца бездакорнымі. Калі трафік у прастоі таксама збоіць, спачатку шукайце ў іншым месцы.
Прачытайце рэжым працы на абодвух канцах
Захаваная канфігурацыя — гэта не працоўны стан. Порт можа быць наладжаны на аўтаўзгадненне і ў выніку апынуцца ў паўдуплексе, або быць наладжаны на фіксаваную хуткасць, з якой другі канец ніколі не згаджаўся. Прачытайце, што канал робіць зараз на абодвух баках.
ethtool eth0 ethtool -S eth0 | grep -iE 'error|drop|collision|fcs' ip -s link show eth0
Запішыце хуткасць, дуплекс і ці ўключана аўтаўзгадненне, затым атрымайце тыя ж тры факты ад суседняга камутатара або порта пастаўшчыка. Адзін канец сам па сабе нічога не кажа, бо няўзгодненасць — гэта суадносіны, а не налада. Змесціце абодва радкі ў заяўку побач, з часам, калі вы іх чыталі. Палова каштоўнасці практыкавання — мець два паказанні ў адным месцы.
Калі вы не можаце прачытаць далёкі канец, вы не можаце гэта дыягнаставаць. Папрасіце ўладальніка даць рэжым працы і лічыльнікі або арганізуйце доступ, перш чым пачынаць мяняць свой бок.
Як выглядае выпадак 10/100 з паўдуплексам
На медных каналах 10/100 канцавы пункт з аўтаўзгадненнем можа вызначыць хуткасць прымусова зададзенага партнёра, не даведаўшыся яго налады дуплексу. Паралельнае вызначэнне вызначае хуткасць па сігнале, а дуплекс мяркуецца, а не ўзгадняецца, таму адзін бок можа апынуцца ў паўдуплексе, пакуль другі працуе ў поўным дуплексе.
Кіраўніцтва па аўтаўзгадненні ад Cisco тлумачыць менавіта гэты выпадак. Гэта не аргумент за адключэнне ўзгаднення ўсюды, і яно нічога карыснага не кажа пра гігабітную медзь, дзе дуплекс фіксаваны і аўтаўзгадненне патрабуецца, каб канал наогул узняўся.
Назіраныя доказы — гэта сумесь памылак, якія існуюць толькі ў адным кірунку: памылкі FCS або CRC на баку поўнага дуплексу, калізіі або познія калізіі на баку паўдуплексу, і прапускная здольнасць, якая развальваецца пад нагрузкай, тады як затрымка застаецца звычайнай у прастоі. Гэтая асіметрыя і ёсць подпіс. Канал, які проста перагружаны, дэградуе ў абодвух кірунках і ўвесь час.
Змяняйце абодва канцы разам, з шляхам вяртання
Выпраўленне дуплексу — гэта ўзгодненае змяненне, а не лакальнае. Прымусовае заданне свайго боку без згоды далёкага канца — гэта спосаб ператварыць працоўны канал у зламаны, а тое, што CLI прымае каманду, даказвае толькі тое, што сінтаксіс быў правільны.
sudo ethtool -s eth0 speed 100 duplex full autoneg off ethtool eth0
Перш чым запускаць нешта падобнае, пераканайцеся, што платформа падтрымлівае гэтую камбінацыю і што далёкі канец будзе зменены ў тым жа акне. Захавайце незалежны спосаб кіравання прыладай, бо порт, які вы збіраецеся змяніць, можа быць тым, што нясе ваш сеанс кіравання.
На многіх сучасных каналах правільны адказ — пакінуць аўтаўзгадненне ўключаным на абодвух канцах, а не нешта прымусова задаваць. Прымусовае заданне — гэта сродак ад канкрэтнай няўзгодненасці на канкрэтнай тэхналогіі, а не агульнае паляпшэнне. Менавіта гігабітнай медзі патрэбна аўтаўзгадненне, каб канал наогул узняўся, таму парада для 10/100 сюды не пераносіцца.
Пераканайцеся, што лічыльнікі рушылі ў лепшы бок
Пасля змены зноў прачытайце працоўны стан на абодвух канцах і пераканайцеся, што яны згодныя. Затым запусціце тую ж нагрузку, якая выклікала паўзу, і параўнайце прыросты лічыльнікаў, а не сумарныя значэнні за ўвесь час, бо сума, што назапашвалася год, не можа сказаць вам, што адбылося за апошнія дзесяць хвілін.
ethtool -S eth0 | grep -iE 'error|drop|collision|fcs' ip -s link show eth0 ping -f -c 200 10.90.0.1
Канал без новых памылак пад той жа нагрузкай — гэта доказ, якога вам не хапала. Канал, які ўсё яшчэ памыляецца, або той, дзе лічыльнікі спачатку наогул не рухаліся, накіроўвае вас да наступнай мяжы, а не глыбей у спрэчку пра дуплекс. Любы вынік — гэта прагрэс, а гэта больш, чым можа даць файл канфігурацыі. Не прапускайце другое чытанне толькі таму, што першае выглядала правільным.
Запішыце лічбы да і пасля ў заяўку з адзнакамі часу. Менавіта гэты запіс ператварае «VPN адчуваецца лепш» у нешта, на чым зможа будаваць наступны інжынер.