Уроки обучения дизайну для детей могут строиться вокруг пары самостоятельных направлений. Это, скажем, web-дизайн, в рамках которого предполагается погружение в теорию и практику использования Figma и подобных сервисов для прототипирования и создания визуальных макетов страниц. Второе же направление в данном контексте – графический дизайн. Осваивать его ребята различных возрастов могут путем работы с рядом редакторов, например Photoshop и Illustrator.
Собрали несколько комплексных и обособленных онлайн-курсов и проанализировали их: если тема дополнительного обучения творческого ребенка актуальна, материал придется кстати.
Содержание
Графический и веб-дизайн для детей: подборка онлайн-курсов для ребят младшего школьного и подросткового возраста
Форматы: пройти уроки обучения графическому и веб-дизайну для детей можно в группе или один на один с опытным учителем.
Цена: от 600 рублей за час.
Скидка: 10 %. Получить выгоду удастся, если заплатить за 12 уроков минимум в день обращения.
Оплата маткапиталом: предусмотрена, дополнительно можно оформить вычет в размере 13 % и воспользоваться рассрочкой.
Содержание уроков: если коротко, то занятия по графическому и веб-дизайну для подростков помогут участникам траектории разобраться в создании сайтов, использовании Adobe Photoshop и Illustrator, а также собрать ряд проектов и добавить их в собственное портфолио.
Если более конкретно, то школьникам предстоит освоить:
Веб-дизайн на примере использования Figma. Это сервис, функционирующий онлайн и предназначенный специально для создания макетов и прототипов сайтов. Дополнительно в соответствующий перечень блоков теории и практики заложены темы, касающиеся создания веб-проектов посредством конструктора Tilda, не требующего навыков в написании кода;
Графический дизайн на примере использования Photoshop и Illustrator от Adobe. Если более конкретно, то участникам образовательной траектории предстоит поработать с цветом, формами, расположением визуальных элементов в проектах, а также вникнуть в векторную и растровую графику как обособленные сферы графического дизайна в целом.
Уроки графического дизайна для школьников, обучающихся в 5–11-х классах
Форматы: организатор набирает мини-группы, индивидуальные уроки не предусмотрены.
Цена: от 770 рублей за урок.
Темы: применение Figma, использование Photoshop, конструирование сайтов посредством Tilda и т. д.
Занятия по графическому и веб-дизайну: обучение для школьников
Форматы: мини-группы.
Цена: весь курс стоит от 34 750 рублей.
Темы: дизайн лендингов, графические концепции, работа с визуалом, разработка афиш и баннеров, оформление плакатов и т. д.
Цифровой дизайн: уроки для ребят 7–16 лет
Форматы: только индивидуальные удаленные уроки.
Цена: от 1 200 рублей за урок.
Темы: работа с инструментами различных графических редакторов, основы композиции и колористики, выполнение иллюстраций, создание макетов сайтов, фирменный стиль и т. д.
Курс «Digital-дизайнер» для детей от 10 до 15 лет
Форматы: набираются группы.
Цена: от 1 650 рублей за одно дистанционное занятие.
Темы: азы иллюстрации, создание композиции графического проекта, верстка, элементы фирменного стиля, основы так называемой упаковки бренда и т. д.
Уроки графического дизайна для детей: обучение онлайн школьников 10+ лет
Форматы: проводятся индивидуальные и индивидуально-групповые уроки.
Цена: от 790 рублей за урок.
Темы: коллажи в Фотошопе, ретуширование фотографий, креатив и стилизация, создание стикеров из пикселей и т. д.
Уроки обучения веб-дизайну для детей от 8 до 17 лет
Форматы: только один на один с учителем.
Цена: базовая стоимость занятия составляет 1 500 рублей.
Темы: создание графических интерфейсов, работа с прототипами, использование сервиса Figma и т. д.
FAQ
Чем полезны уроки обучения веб-дизайну для детей?
Уроки веб‑дизайна дают детям отличную возможность развить креативность и прокачать пространственное мышление. На курсах ребята учатся работать с цветами, формами и композицией, продумывать визуальную гармонию проектов и не только. В процессе создания макетов сайтов и интерфейсов школьники пробуют выражать свои идеи через дизайн-концепции, экспериментируют с разными стилями и находят собственный почерк. Это не просто рисование, каким оно предстает на бумаге. Это цифровое и часто вполне осмысленное творчество, где каждая деталь имеет значение и помогает ребенку выразить себя.
Кроме того, веб‑дизайн дает детям возможность прокачивать полезные жизненные навыки. Ребята учатся ставить задачи, искать нестандартные решения и доводить проекты до конца, видя реальный результат своих усилий.
Работа над дизайном требует внимания к деталям, умения структурировать информацию и учитывать потребности пользователя, скажем, в роли заказчика. На практике все это формирует системное мышление.
А еще тематические занятия повышают цифровую грамотность и дают представление о том, как устроены современные онлайн‑сервисы вроде Figma, что в будущем может стать хорошей основой для профессионального роста в IT.
Как выбрать онлайн-курсы веб-дизайна для подростков?
При выборе онлайн‑курсов веб‑дизайна для подростка в первую очередь стоит обратить внимание на то, насколько программа соответствует его уровню и интересам. Важно, чтобы курс не перегружал сложными терминами с первых занятий, а постепенно вводил в тему: от базовых принципов композиции и цвета к работе с инструментами вроде Figma или Tilda.
Хорошо, если обучение построено на практике: выполнение даже мини‑проектов помогает увидеть результат своих усилий и поддерживает мотивацию. Также стоит оценить, насколько материал подается живо и понятно, ведь, скажем, скучная теория без примеров быстро утомляет, а вот разбор живых кейсов и возможность попробовать разные стили дизайна, наоборот, вовлекают в процесс.
Не менее значимы человеческий фактор и формат поддержки. Лучше выбирать курсы, где есть обратная связь от преподавателя: комментарии к работам, разборы ошибок и ответы на вопросы помогают подростку не застревать на трудностях и чувствовать, что его прогресс замечают.
Удобно, если занятия записаны и их можно пересмотреть в записи, а домашние задания не занимают слишком много времени: так легче совмещать обучение с школьной программой.
Учет этих и других факторов поможет сделать безошибочный выбор, который в дальнейшем даст устойчивый результат.
В каком возрасте можно записаться на обучение веб-дизайну для школьников?
Запись на тематические курсы возможна даже в младшие школьные годы, но важно отталкиваться, помимо прочего, от возрастных познавательных способностей и образовательных потребностей ребенка. Дело в том, что в различных онлайн- и офлайн-школах предусмотрены курсы, ориентированные на обособленные категории учащихся, скажем, на младших школьников и на подростков. По понятным причинам уроки отличаются насыщенностью, темами, содержательностью, а иногда и продолжительностью.
Если с определением оптимального возрастного периода возникают затруднения, можно обратиться за консультацией к конкретному организатору или изучить сайт выбранной школы. Это поможет узнать о перечне образовательных программ и их ориентации на определенные категории учащихся по возрастам.
Онлайн-обучение дизайну для детей подойдет только творческим ребятам?
Нет, онлайн‑обучение дизайну подойдет не только творческим ребятам. Сегодня тематические образовательные программы для детей строятся так, чтобы вести конкретного ученика с самого начала, то есть от азов и до сложных тем. Все это реализуемо, даже если до этого учащийся никогда не рисовал и не интересовался графикой.
В обыкновенном случае все начинается с простых и понятных шагов: ребята разбираются, как выбрать тот или иной цвет, как расположить элементы на экране, как работать с базовыми инструментами используемого редактора и т. д. Задача курсов в данном контексте сводится к тому, чтобы не требовать наличия таланта, а постепенно развивать вкус, чувство композиции и уверенность в работе с цифровыми инструментами.
Важно помнить, что современный дизайн в виртуальном пространстве – это не только про то, чтобы рисовать и делать это красиво. Речь еще и про логику, структуру, понимание базовых графических концепций. Соответствующие задачи привлекают и тех детей, которые могут изначально отдавать предпочтение четким правилам, инструкциям, чем свободному творчеству.
При этом важно понимать, что на курсах дизайна ребята учатся не вдохновению из головы, а конкретным приемам и алгоритмам действий для творчества, и именно через это открывают в себе способность придумывать и воплощать собственные идеи. Так что отсутствие опыта или творческих наклонностей – не препятствие, если ребенок хочет попробовать себя в представленном направлении.
Уроки языка программирования «Питон» с нуля для детей не всегда обязательно строить вокруг сухой теории и выполнения скучных проектов. Дело в том, что данный инструмент можно использовать в связке с Minecraft для разработки и кодинга модов, что на практике улучшает восприятие Python и делает учебный процесс куда более увлекательным. Это обусловлено популярностью Майнкрафта среди детей и подростков.
Содержание
Онлайн-курсы Python – языка программирования в Майнкрафте
Курс «Основы математической логики в среде Minecraft» для детей 8–12 лет
Уроки программирования и 3Д-моделирования для детей 8–10 лет
Онлайн-занятия по кодингу в Майнкрафте для школьников 9–12 лет
Online-курс по программированию в Майнкрафте для детей 7–12 лет
Уроки создания модификаций в Minecraft для школьников 10 лет и старше
Трехмерное моделирование и кодинг в игровой вселенной для ребят 8–10 лет
Уроки кодинга на языке программирования Python в Minecraft для ребят 9–14 лет
Дистанционный курс написания кода в Майнкрафте для ребят 9 лет и старше
FAQ
Можно ли записаться на курсы языка программирования «Питон» для подростков без Майнкрафта?
Есть ли онлайн-занятия по языку «Питон» для 8-х классов?
Какой язык программирования используется в Minecraft для кодинга модов?
На каком языке программирования написан сам Майнкрафт?
Онлайн-курсы Python – языка программирования в Майнкрафте
Собрали десятку тематических онлайн-курсов, которые помогут разобраться в написании кода на «Питоне» на примере программирования модов для популярной игровой вселенной Minecraft. По традиции представили некоторые аналитические сведения вроде цен, форматов и тем.
Python-разработчик: образовательная траектория для младших школьников и подростков 10–13 лет
Особенности: траектория объединяет два курса и характеризуется повышенным образовательным потенциалом с точки зрения освоения языка программирования «Питон» с нуля на уроках для детей.
Форматы: освоить представленное направление можно в группе или индивидуально с учителем.
Цена: от 600 рублей за один час онлайн-уроков.
Скидки: 10 %. Для получения выгоды нужно выполнить условие в виде оплаты 12 занятий минимум в день обращения.
Выгоды: вычет 13 % после учебы, оплата маткапиталом, рассрочка.
Содержательная сторона: отметили, что траектория объединяет два курса. Первый можно считать вводным: он основан на программировании модов для Майнкрафта на «Питоне». Второй же поможет углубиться в основы кодинга на данном языке и приблизиться к пониманию принципов продвинутого написания текстового кода.
Комплексность траектории выражается в том, что благодаря ее освоению каждый ребенок сможет разобраться в:
Основах кодинга на Python и продвинутом программировании на данном языке;
Принципах гейм-дизайна, создания игр и модов на примере разработки функциональных дополнений для Minecraft.
В блоки теории и практики заложены как базовые моменты вроде основных конструкций, так и углубленные темы. Это, скажем, программирование чат-ботов, создание 2Д-игр с нуля с помощью Python.
Так, курсы языка программирования «Питон» для детей и подростков, объединенные в траекторию, помогут овладеть данным инструментом и начать использовать его на продвинутом уровне даже вне рамок Майнкрафта.
Онлайн-уроки Python в Minecraft для ребят 10+ лет
Форматы: видео в записи.
Цена: доступ к видеокурсу на месяц стоит 7 990 рублей. Если хочется увеличить срок до 160 суток, потребуется заплатить 20 000+.
Темы: циклы, ввод текста, случайные числа, типы данных, создание модов для Майнкрафта и т. д.
Курс «Основы математической логики в среде Minecraft» для детей 8–12 лет
Форматы: один на один с учителем и в группе.
Цена: от 4 900 рублей за месяц.
Темы: операторы, компараторы, логические схемы, строительство в игровой вселенной и т. д.
Уроки программирования и 3Д-моделирования для детей 8–10 лет
Форматы: групповые занятия.
Цена: от 1 650 рублей за урок.
Темы: написание кода, создание 3D-моделей, скриптинг различных модов и т. д.
Онлайн-занятия по кодингу в Майнкрафте для школьников 9–12 лет
Форматы: мини-группы.
Цена: базовая стоимость занятия составляет 1 200 рублей.
Темы: структура Minecraft-модов, пиксельная графика, типы данных, координаты, условия и т. д.
Online-курс по программированию в Майнкрафте для детей 7–12 лет
Форматы: индивидуальное и групповое онлайн-обучение.
Цена: от 1 125 рублей за урок.
Темы: основы кодинга в игровой вселенной, создание игровых объектов, командная разработка и т. д.
Уроки создания модификаций в Minecraft для школьников 10 лет и старше
Форматы: группы.
Цена: от 5 200 рублей за месяц.
Темы: разработка Minecraft-модификаций, проектирование внутриигровых объектов, 3Д-моделирование и т. д.
Трехмерное моделирование и кодинг в игровой вселенной для ребят 8–10 лет
Форматы: групповое дистанционное обучение.
Цена: от 3 000 рублей за онлайн-урок.
Темы: моды для Minecraft, их создание и программирование, трехмерное моделирование и т. д.
Уроки кодинга на языке программирования Python в Minecraft для ребят 9–14 лет
Форматы: индивидуальное обучение.
Цена: нет информации.
Темы: методы и атрибуты, работа с координатами, условные операторы, сравнение, синтаксис «Питона», его потенциал с точки зрения создания модов и т. д.
Дистанционный курс написания кода в Майнкрафте для ребят 9 лет и старше
Форматы: индивидуальный и индивидуально-групповой.
Цена: от 790 рублей / урок.
Темы: основы программирования, азы 3Д-моделирования, создание мини-игр в виде модификаций и т. д.
FAQ
Можно ли записаться на курсы языка программирования «Питон» для подростков без Майнкрафта?
Да, такие курсы есть. Они предлагаются различными онлайн- и офлайн-школами программирования для детей.
Отличительная особенность – упор на использование языка для выполнения проектов, альтернативных модам для Minecraft. Вместе с тем не стоит полагать, что увлекательная практика исключается или опускается до минимума: проектная деятельность – основа множества современных детских курсов «Питона». Почти в любой вероятной ситуации ребятам предстоит осваивать теорию и закреплять получаемые представления посредством практики. Речь, скажем, о программировании чат-ботов, создании 2Д-игр на Python и не только.
Есть ли онлайн-занятия по языку «Питон» для 8-х классов?
Да, тематические курсы, соответствующие обозначенному классу, есть. Тематические направления дополнительного обучения предлагают многие онлайн- и офлайн-школы.
Чтобы выбрать достойный курс, стоит предварительно проанализировать его по ряду критериев. Это форматы, цены, плотность занятий, их количество, содержательность образовательной программы и т. д.
Дополнительно советуем уточнить сведения о лицензировании организатора: наличие разрешительной документации будет плюсом. В других статьях в блоге отмечали, что это гарантия качества образовательных программ. Дополнительно лицензия открывает клиентам доступ к ряду условных бонусов вроде возможности оплаты занятий ребенка средствами маткапитала или оформления налогового вычета в размере 13 %.
Какой язык программирования используется в Minecraft для кодинга модов?
В преобладающем количестве случаев речь о «Питоне», о чем позволяет утверждать подготовленная нами подборка. Но здесь же подчеркнем, что есть альтернативные направления, скажем, основанные на теории и практике использования функции Code Builder. В случае с ней предполагается вводное обучение младших школьников путем погружения в блочное программирование.
При этом важно учитывать, что в Code Builder необходимо использовать блоки с текстовыми командами, написанными на Python и JavaScript. То есть в случае с кодингом модов в неоднократно упомянутой игровой вселенной вероятны два варианта языков, а именно «Питон» и ДжаваСкрипт.
На каком языке программирования написан сам Майнкрафт?
Minecraft существует в двух основных версиях, которые написаны на разных языках программирования. Оригинальный вариант игры прописан посредством использования Java. Данная и стартовая версия создана Маркусом Перссоном.
Выбор представленного языка был обусловлен его кроссплатформенностью: игра может работать на различных операционных системах без необходимости переписывания кода. Кроме того, открытая архитектура как важное свойство Java позволила сформировать обширное сообщество моддеров. Речь о том, что пользователи получили возможность разрабатывать и устанавливать модификации, существенно расширяющие функционал игры.
Вторая версия под названием Minecraft: Bedrock Edition была переписана на языке C++. Здесь выбор, как кажется, связан с необходимостью обеспечить высокую производительность и эффективное управление ресурсами на разнообразных устройствах, включая консоли и мобильные телефоны. Потребность в этом стала вытекать из роста популярности Майнкрафта.
Благодаря C++ версия Bedrock способна похвастаться лучшей оптимизацией и стабильной работой даже на сравнительно слабых устройствах. Дополнительно вариант поддерживает кроссплатформенную игру, то есть пользователи могут играть вместе независимо от того, используют они ПК, консоль или смартфон.
Между версиями есть существенные различия. Java Edition доступна исключительно на ПК, предлагает широкие возможности для моддинга, но может характеризоваться проблемами производительности при установке большого количества модификаций.
Bedrock Edition отличается кроссплатформенностью и абсолютной стабильностью функционирования на разных устройствах, однако, что важно отметить, имеют место ограниченные возможности для создания модификаций. Некоторые условные моды доступны юзерам преимущественно в официальном магазине.
Уроки программирования для детей онлайн на русском с использованием Скретча – визуально-блочной среды кодинга – часто рассматриваются как вводное направление. И это вполне справедливо: Scratch создан специально для дошкольников и младших школьников, он предназначен для погружения в основы. Так задумано разработчиком, а именно медиалабораторией Массачусетского технологичесокго института.
Если конкретно, в плане введения в кодинг речь о том, что благодаря знакомству с представленной средой и одноименным языком программирования конкретный ребенок сможет разобраться в базовых принципах направления, поработать с различными конструкциями в виде блоков, что подготовит к дальнейшему изучению одного из более сложных инструментов вроде Python.
При условии, что актуальна тема уроков Scratch на русском, среда рассматривается как вариант дополнительного обучения ребенка написанию блочного кода, сегодняшняя подборка станет полезной.
Содержание
Дистанционные уроки Scratch на русском от детских школ программирования
Особенности: траектория с уроками Scratch на русском образована тремя самостоятельными курсами. Помимо освоения основ геймдева и блочного кодинга в Скретче, что стоит отметить, ребята смогут научиться разрабатывать игры посредством движков Godot и Roblox Studio.
Стоимость: цена одного часа занятий установлена на уровне 600 рублей минимум.
Выгоды: скидка 10 % для новых клиентов, оплата маткапиталом, оформление вычета в размере 13 %, рассрочка 50/50.
Форматы: пройти занятия можно в группе или индивидуально. Выбор остается на усмотрение ученика.
Содержательная сторона: отметили, что траектория комплексная. Она посвящена теории и практике использования следующих инструментов:
Scratch. Это визуально-блочная и интуитивно понятная среда, предназначенная для погружения маленьких детей в основы программирования. Кодить предстоит посредством так называемых ярких кирпичиков с текстовыми командами, что по мере углубленного изучения Скретча поможет подготовиться к освоению более сложных инструментов;
Godot. Годо – игровой движок, особенность которого сводится к возможности создания 2Д- и 3Д-игр. На занятиях ребята смогут узнать, помимо прочего, о программировании на языке GDScript. Дополнительно в тематические блоки теории и практики заложены сведения о переменных, функциях, классах и т. д.;
Roblox Studio. Роблокс Студио – еще один движок, изучение которого включено в образовательную программу траектории. Функционал данного инструмента впечатляет: благодаря его освоению участники траектории смогут разобраться в трехмерном моделировании, программировании на языке «Луа», а также в выполнении game-проектов и их публикации в Роблоксе, популярном среди детей и подростков.
Онлайн-уроки Скретча для детей 8–10 лет от Kodland
Стоимость: зависит от количества приобретенных занятий, не уточняется организатором.
Форматы: нет сведений.
Темы, примеры: основы Скретч-программирования, гейм-дизайн, работа со спрайтами и графикой, создание 2Д-игр и т. д.
Онлайн-занятия по Scratch для детей 8–12 лет от FoxFord
Стоимость: от 900 рублей за онлайн-занятие.
Форматы: курс реализуется только в группах.
Темы, примеры: введение в визуальный кодинг, интерфейс Скретча, программирование спрайтов и т. д.
Дистанционный курс блочного программирования в Scratch для школьников от 7 до 8 лет от OnlineSchool №1
Стоимость: от 700 рублей за онлайн-урок.
Форматы: только группы, индивидуальные уроки не предусмотрены.
Темы, примеры: разработка мини-игр, применение логических операторов, циклов, переменных и условий, создание game-проектов в команде и т. д.
Курс Scratch-кодинга для ребят от 7 до 12 лет от CyberUm
Стоимость: нет информации.
Форматы: только индивидуальные уроки.
Темы, примеры: азы платформы, условные выражения и циклы, сенсоры, управление спрайтами и т. д.
Курс программирования в Скретче для ребят 8–12 лет от Skillbox Kids
Стоимость: от 1 650 рублей за урок.
Форматы: организатор набирает группы.
Темы, примеры: создание анимации и интерактивных историй, виды графики и графический редактор в Скретче, логика и различные механики в game-проектах, клонирование спрайтов и т. д.
Создание игр в Скретче для детей от 6 до 12 лет в EasyPro Academy
Стоимость: от 790 рублей за занятие.
Форматы: индивидуальные уроки.
Темы, примеры: основы визуального программирования, разработка мини-игр, блоки кода, анимация, игровые механики и т. д.
Курс Скретча для детей 7 лет и старше от школы «Айтигенио»
Стоимость: от 790 рублей за занятие.
Форматы: индивидуальный и индивидуально-групповой.
Темы, примеры: базовые принципы кодинга, разработка интерактивных проектов, создание мультфильмов и т. д.
Уроки блочного программирования для детей 7 лет и старше от ProgKids
Стоимость: нет сведений.
Форматы: нет сведений.
Темы, примеры: азы кодинга, переменные и функции, циклы и условия, координаты и т. д.
Scratch-программирование для детей 7 лет и старше в Hello World School
Стоимость: нет информации.
Форматы: индивидуальные уроки.
Темы, примеры: использование списков, типы переменных, добавление интерактива в игры, выполнение проектов с блочным кодом на примере применения машинного обучения и т. д.
FAQ
Скретч поможет подготовиться к обучению «Юнити» с нуля на русском?
Да, попробовать можно примерно к 10 годам, но предварительно стоит записаться на дополнительные занятия, скажем, посвященные «Питону» и проводимые на русском для детей. Шаг оправдан и даже целесообразен, ведь в случае с «Юнити» предстоит осваивать и программирование на Си Шарпе. Сразу после Скретча данный язык может показаться ребенку сложным.
Однако в случае, когда возрастные образовательные потребности и познавательные способности развиты достаточно, можно перейти к движку Unity и без промежуточных шагов. Мы считаем, что оптимальный возраст в данном контексте – 10–14 лет. Если же ребенку, скажем, 8–9, дополнительная подготовительная ступень станет желательной и даже необходимой.
Можно ли бесплатно скачать Скретч Джуниор на русском?
Да, но только на Android или iOS. Мы не рекомендуем пользоваться программным обеспечением Scratch Jr сторонних разработчиков, если оно предназначено для персональных компьютеров. Соответствующее решение может быть связано с рядом рисков и угроз, скажем, с заражением ПК вирусами.
Где искать уроки Scratch 2.0 на русском?
Стоит попробовать поискать уроки на видеохостингах вроде Rutube. Это хорошее решение, если хочется найти наглядные и последовательные материалы для самообучения: многие онлайн-школы и независимые авторы публикуют тематические подборки на своих каналах.
Также можно поискать текстовые инструкции и руководства на форумах и сайтах. Благодаря им удастся разобраться в основах использования Скретча второй версии. Стоит учитывать, что последняя заметно отличается от онлайн-редактора 3.0, в том числе функционалом и возможностями, что нередко влияет на совместимость проектов, выполненных в так называемой двойке, и созданных в третьей версии Scratch.
Рекомендуется пользоваться веб-редактором, доступным без скачивания и установки программного обеспечения на устройство в распоряжении ребенка.
Можно ли установить Скретч 3.0 на русском на персональный компьютер?
Да, разработчиками предусмотрена возможность скачивания и установки третьей версии Scratch на компьютеры с Windows и macOS. Дополнительно реализован мобильный софт для устройств с операционной системой Android.
Скретч освоен, хотим попробовать Kodu. Где можно скачать Коди Гейм Лаб на русском бесплатно?
Полноценной и переведенной на русский язык версии Kodu Game Lab нет. Есть отдельные сборки, созданные независимыми разработчиками, но мы рекомендуем использовать только официальные версии софта. И хотя разобраться в них может быть сложно, на Rutube и других видеохостингах можно найти полноценные курсы в формате материалов в записи.
Также для начала могут подойти текстовые инструкции в сети, руководства на тематических форумах и сайтах. Даже если они и будут англоязычными, поможет простой переводчик. Для первых шагов этого будет достаточно.
Если ребенка увлечет тема использования Коду, можно задуматься о записи на онлайн-курсы блочного кодинга.
Годах в 14-15-ых проходила курсы компьютерной графики (нужно было для работы). Преподаватель у нас был дотошный мужчина, до того что занятия начинались с обучения элементарных вещей, таких как: включить/выключить комп, создать напечатать текстовый документ и тому подобное. В общем с полного нуля. Так-то это было логично, так как, люди на курсе были разные. И кто-то не имел и самых простых знаний в этой среде.
В числе прочего, обучал нас переустанавливать винду. На одном из таких занятий я ляпнула, что на своём ноуте не делала никаких переустановок с момента покупки. Преподаватель был этим до того поражён, до того строго отчитал за такую "халатность", что я разрешила на своём ноуте показательно переустановить винду.
И вот, перекидывая при преподе свои папки для сохранности он замечает папку "фильмы". Решил придраться и тут. Типа зачем забивать память, когда любой фильм сейчас можно в сети посмотреть. Мои доводы, что это любимые фильмы, что не все из них можно найти в сети, и, вообще, что ходят разговоры, что скоро все фильмы будут платными (во что я в принципе не зря верила), он пропустил мимо ушей, считая это глупостью.
Прошло несколько лет и что мы имеем? Тучу платных онлайн кинотеатров, навязчивость которых отталкивает. Посмотреть фильмы без заморочек становится всё сложнее. Да, можно бесплатно посмотреть фильмы и в сети, но с тонной рекламы. Какие-либо российские фильмы найти бесплатно и вовсе уже не так просто (хех, предвижу комменты, что нафиг и надо?).
А винду пожалела, что дала переустановить. Но этого всё работало исправно, после начались всякие-разные проблемы. Но сих пор считаю, что без переустановки было лучше )))
Название статьи вдохновлено недавним материалом Сергея Долина об улучшении ретро-компьютера, что называется, паяльником. Недавно мне поступил заказ от читателя на апгрейд ОЗУ в легендарном карманном компьютере Dell Axim X51v, за выполнение которого я получу крутейший ноутбук 1998 года. Конечно же я не смог отказаться от такого предложения и подготовил для вас подробную статью с предысторией апгрейда памяти на КПК, описанием процесса снятия и у
становки BGA-чипов, замене концевого переключателя на перемычку, а также ремонта рычажка Hold, из-за которого некоторые Axim'ы теряли работоспособность при общей исправности железа девайса. Жду вас под катом!
❯ Введение
Апгрейд девайсов своими руками — это всегда круто и интересно. Недавно хабровчанин @dliny jвыпустил две отличные статьи об апгрейде 386'ой материнки с установкой 486'ого процессора на неиспользуемую площадку для заводского апгрейда материнской платы и даже заставил работать всю систему относительно стабильно!
Однако апгрейд мобильных компьютеров тема немного иная, поскольку из-за повсеместного использования BGA-чипов и относительно тесной компоновке, далеко не каждый гик берется за аппаратный апгрейд своего девайса, боясь его случайно повредить. Цель этой статьи наглядно показать, что перепаивание чипов памяти и апгрейд ретро-КПК — не сложнее, чем заменить плашку памяти в стареньком ноутбуке и с этим справится любой человек при наличии паяльной станции и небольшой практики!
Сегодняшним героем у нас выступит легендарный КПК Dell Axim X51v, с которым наверняка знакомы многие мои читатели. Девайс, вышедший в 2005 году, привлекал очень шустрым чипсетом Intel PXA270, работающим на частоте 624МГц, наличием дискретного GPU Intel 2700G в отдельном чипе (!) с графическим ядром PowerVR MBX и набором видеодекодеров Intel для просмотра несжатого видео, а также... всего 64Мб ОЗУ! Многие владельцы устройства жаловались на малый объём памяти, но со временем некоторые сервисные центры (один из самых известных в свое время — pdacenter) даже приловчились оказывать услугу по её апгрейду в коммуникаторах и КПК до тех самых 128Мб!
Полгода назад я уже писал статью об апгрейде легендарного коммуникатора HTC Magician (который, к слову, участвовал ещё в моих статьях о написании 3D-игры под Windows Mobile с нуля!). После этой статьи ко мне несколько раз обращались люди с просьбой проапгрейдить им девайсы за деньги, даже при условии того что они сами закажут чипы памяти. Обычно я не берусь за заказы, поскольку это всё равно довольно рискованный процес (на некоторых девайсах нужно искать страп для активации всей ОЗУ), но в этот раз меня переубедили очень весомым аргументом. Когда я отказался от работы за деньги, мне предложили тяжелую артиллерию, а именно — топовый ноутбук Compaq Armada 7800 на Pentium II с дискретным GPU S3 ViRGE (о котором я тоже писал статью)!!! Тут я просто не смог не согласится: ноутбук из 90-х, да еще и с 3D-видеочипом, который стоил 5.000$ и который можно считать игровым? Я решил рискнуть...
В свое время эта процедура стоила около 2-3 тысяч рублей. В 2005-2007 году это были большие деньги, а сейчас апгрейд КПК можно провести за 400 рублей: чипы памяти продаются и сейчас и стоят по 200 рублей за штучку. Давайте же попробуем проапгрейдить наш девайс!
❯ Апгрейдим
Начинаем с разборки устройства. Сделать это несложно: откручиваем 4 винта с обратной стороны устройства и пластиковой картой (или ногтями) поддеваем фронтальную часть корпуса. Затем выдавливаем плату с дисплеем из задней части корпуса, снимаем дисплейный модуль и перед нами оказывается разобранный девайс:
Необходимые нам чипы памяти находятся под защитным экраном вместе с процессором и флэш-памятью. Сам металлический экран съёмный, однако перекладина под ним помешает установке чипов памяти: поэтому аккуратно срезаем её хирургическими ножницами. Полностью выпаивать защитный экран не нужно.
Я срезал перекладину ещё до фото :)
Теперь нам необходимо выпаять старые чипы памяти. Для этого наливаем немного флюса под «пузо» чипов, включаем фен на ~330 попугаев (у меня бюджетный фен, который я ещё не откалибровал — так что термопрофиль сомнительный), и принимаемся греть банки на протяжении около полутора минут. Текстолит хоть и толстый, но теплоемкость не очень высокая, так что банки можно снять и без нижнего подогрева. Как только чип стал свободно покачиваться — ждём ещё немного времени и снимаем его пинцетом. Учтите что BGA-чипы крепятся за счёт поверхностного натяжения, поэтому старый чип будет пытаться "уехать" на своё место обратно при попытке снятия, так что придется приложить небольшое усилие, однако очень важно догреть чип, иначе можно посрывать пятаки и потом под микроскопом лепить «улитки» :)
Не забудьте сделать фотографию обвязки (мелочухи), дабы иметь возможность её восстановить если случайно посдуваете.
Затем нам необходимо очистить площадки под чипы от остатков старых шаров. Для этого добавляем чуть флюса, берём паяльник и медную оплётку и проходимся по пинам оплёткой, собирая излишки припоя и выравнивая посадочную площадку. Шары здесь большие, так что можно обойтись без оплётки и просто пособирать припой паяльником, но технологию лучше соблюдать.
Новые чипы с завода уже имеют накатанные шары и их можно ставить «как есть», хотя некоторые мастера всё равно перекатывают чипы, поскольку на шарах могут образоваться окислы. Процесс установки новых чипов до безобразия прост: наливаем немного флюса на посадочную площадку, примерно центруем банку памяти на этой самой площадке и греем её феном на протяжении всё тех же полутора минут. При этом чип сам встанет куда нужно благодаря поверхностному натяжению, хотя его можно чуточку подровнять пинцетом, если стоит криво. Обратите внимание на флюс: если налить его слишком много, то чип может «уехать», если флюс кипящий, то чип будет «прыгать» при установке и соединение может оказаться некачественным. Я лично ставлю BGA «бодягой» под видом NC559 с Озона, вроде норм.
Установленные чипы памяти. В процессе работы пришлось один чип перекатать — случайно поставил не по ключу :)
Наконец-то чипы памяти установлены. Теперь смываем флюс с помощью FluxOff'а, устанавливаем обратно защитный экран и подсобираем девайс, дабы посмотреть что у нас получилось. И да, КПК запустился нормально и увидел все 128 мегабайт оперативной памяти! В случае с коммуникатором HTC, о котором я писал в первой статье, необходимо было установить ещё специальный страп — резистор 0.33Ом на линию CS1, иначе девайс не видел всей ОЗУ, так что если кто-то будет проделывать такой же апгрейд, имейте это ввиду.
Но это ещё не всё! Я ж обещал, что апгрейдить девайс будем и паяльником :) У многих КПК есть болячка в виде концевого выключателя на крышке отсека аккумулятора. К сожалению, со временем он ломается, а в случае X51v — ещё и служит кнопкой включения для устройства, поэтому его необходимо поменять на перемычку. Мой подписчик уже заменил концевой выключатель на соплю припоя, которую я заменил на более симпатичную и надежную перемычку:
А также перемычку имеет смысл установить вместо переключателя Hold — конкретно на Axim X51v он иногда выходит из строя, из-за чего девайсом становится невозможно пользоватся.
На этом наш апгрейд завершён. Собираем девайс и смотрим, что же он умеет!
❯ Смотрим на девайс
Windows Mobile славилась своей оптимизацией, система очень бодро бегала даже на 32Мб ОЗУ. Большинство приложений легко помещалось в памяти благодаря тому, что потребляли пару сотен или десятков килобайт, и в отличии от современных мобильных систем, WinMobile никогда не управляла жизненным циклом приложения сама, поэтому в системе была настоящая многозадачность. Приложения закрывались только тогда, когда этого захотел пользователь, благодаря чему была необходимость иногда следить за диспетчером задач.
Но если 64Мб было достаточно для всего, то зачем нужен был апгрейд до 128Мб? Все дело, конечно же, в играх! Зачастую владельцам КПК хотелось запустить несколько тяжелых приложений и иметь возможность одновременно играть музыку в фоне, сидеть в аське и играть в Pocket F.A.L.L.O.U.T. Тут и пригождался апгрейд по памяти, ведь игра влегкую могла скушать и 20 и 30 мегабайт!
Особенно это актуально в случае с Axim X51v, ведь у устройства был дискретный GPU, для которого отдельно разрабатывались 3D-игры, которые по уровню графики были не хуже чем у SEGA Dreamcast! А секрет прост, ведь PowerVR MBX, который используется в качестве GPU в Intel 2700G — это прямой потомок GPU из Dreamcast!
Графика не сильно хуже PSP!
Кроме того, в Axim X51v использовался здоровенный дисплей с разрешением VGA (640x480), из-за чего девайс потреблял несколько больше ОЗУ на графические ресурсы системы. На таком смотреть кино или сериал одно удовольствие!
Ну и в целом девайс работал значительно резвее с 128 мегабайтами оперативной памяти. А для чего я использую свой личный Axim X51v? Конечно же для разработки 3D-игры под его GPU с нуля! Именно за это я просто обожаю этот девайс!
❯ Заключение
Вот такой ретро-материал об апгрейде крутейшего КПК 2005 года у нас с вами сегодня получился. Надеюсь, вам было интересно! Моддинг ретро-девайсов это всегда занимательно и интересно не только из-за самого факта апгрейда, но и из-за некоторой неизведанности: как @dlinyjне знал, что будет, если впаять в материнскую плату второй процессор, так и я не знал, что будет, если установить банки памяти без поиска страпов на неизвестный мне КПК :)
Подписывайтесь на мой Telegram-канал, если вам интересна тематика программирования, моддинга и подручного ремонта различных девайсов, а если вам интересны мои видео о ретро-девайсах, то подписывайтесь на мой YouTube и паблик ВК.
Значит ли для вас что-то Axim X51v?
Понравился материал с апгрейдом «паяльником»?
Кстати, если у кого-то из читателей есть ненужные устройства (в том числе с косяками) или дешевые китайские подделки на айфоны/айпады/макбуки и другие брендовые девайсы будучи нерабочими, тормозящими, или окирпиченными и вам не хотелось бы выкидывать их на свалку, а наоборот, отдать их в хорошие руки и увидеть про них статью — пишите мне в Telegram или в комментах! Готов в том числе и купить их. Особенно ищу донора дисплея на китайскую реплику iPhone 11 Pro Max: мой ударник, контроллер дисплея калится и изображения нет :( Было бы интересно поколупать и КПК самого начала нулевых годов (PPC2002, а то и WinCE или PalmOS) — пишите, если таковые есть.
Примеры девайсов
А ещё я держу все свои мобилы в одной корзине при себе (в смысле, все проекты у одного облачного провайдера) — Timeweb. Потому нагло рекомендую то, чем пользуюсь сам — вэлкам:
В этом посте поговорим про фрагментацию пакетов, разберемся как она работает и почему она не выгодна никому: ни хостам, ни маршрутизатором, сначала будет немного теории, а затем воспользуемся генератором пакетов и посмотрим дампы.
MTU параметр настраиваемый и не факт, что на всех линка будет настроен MTU, который будет пропускать пакеты, генерируемые отправителем.
Это некие вводные ограничения, которые нам дает Ethernet. IPv4 к этим ограничением добавляет то, что узел получатель должен гарантировать всем своим соседям, что он может принять IP-пакет размером 576 байт, а узел в IPv6 должен уметь обрабатывать пакеты размером 1280 байт.
С учетом вышеописанного легко можно представить две ситуации, в которых может начать работать фрагментация :
Хосты согласовали обмен пакетами 1500 байт (на самом деле они согласовали TCP или SCTP MSS), но на сети есть линк или линки, где MTU меньше 1500 байт.
Хосты генерируют пакеты размером более 1500 байт, а на транзитных узлах MTU равен 1500 байт.
Эти ситуации можно решить за счет хостов, им просто нужно генерировать такие пакеты, которые пролезут через любой линк на сети, проблема в том, что хосты не знают MTU на всей сети и обычно надеются, что MTU всей сети не меньше, чем MTU их интерфейсов, которые в эту сеть включены, но есть и другие варианты решения:
Транзитное устройство может уведомить отправителя о том, что тот генерирует слишком большие пакеты и, если отправителю не запрещено, то он может начать генерировать пакеты меньшего размера.
Транзитный узел может не уведомлять отправителя о том, что тот генерирует большие пакеты, а начать самостоятельно разбивать их на такие пакеты, которые гарантированно пройдут через линк. Это и есть фрагментация.
Слишком большие пакеты могут просто уничтожаться, но нам этот вариант не очень интересен.
Стоит понимать, что фрагментация пакетов явление вынужденное и не очень желательное, единственное достоинство фрагментации заключается в следующем: если приложения не заботятся о размерах передаваемых данных, то это делает IP, чтобы хоть каким-то образом, но связь между отправителем и получателем поддерживалась.
Минусов у фрагментации много, вот три основных на мой взгляд:
При потере одного из фрагментов можно считать, что теряется весь исходный пакет.
Фрагментация повышает нагрузку на устройства сети.
В некоторых случаях при сборке фрагментированного пакет может быть нарушена целостность передаваемых данных.
В IP заголовке имеется четыре поля, которые так или иначе используются при фрагментации.
Размер пакет (Total Lenght). В этом поле хранится полный размер пакета в байтах, т.е. заголовка плюс поля данных.
Идентификатор (Identification). Это поле помогает принимающей стороне собрать исходный пакет из полученных фрагментов, у фрагментов, которые являются частями одного исходного пакета, значение этого поля будет одинаковым.
Флаги (Flags). Под каждый флаг выделен один бит, нумерация начинается с нуля. Нулевой бит(нулевой флаг) нам не интересен, первый бит называется DF или do not fragment, если значение этого бита равно единицы, то пакет фрагментировать запрещено, если возникает ситуация когда у пакета DF = 1 и размер больше допустимого MTU, такой пакет уничтожается(некоторые устройства игнорируют бит DF и всё равно выполняют фрагментацию). Второй флаг называется MF или more fragments, он используется для того, чтобы обозначить конец последовательности фрагментированных пакетов, пока MF = 1 узел получатель будет ожидать новые фрагменты, как только придет пакет с MF = 0, получатель поймет, что последовательность фрагментированных пакетов закончилась.
Смещение фрагмента (Fragment Offset). IP не гарантирует того, что получатель будет получать пакеты в той же последовательности, в которой их генерировал отправитель. В случаях, когда фрагментации нет, проблема собрать всё в нужной последовательности это проблема вышестоящего процесса или протокола, но если получатель принял фрагментированную последовательность, задача собрать исходных пакет из фрагментов ложится на IP процесс, поле смещение помогает понять в какой последовательности надо собирать исходный пакет. Данное поле хранит численное значение, одна единица этого числа равна восьми байтам.
Вот так эти поля выглядят в дампе Wireshark.
Поля фрагментированного пакета:Total Length, Identification, Flags, Fragment Offset в дампе Wireshark
Структура IP-пакета
Цвета на двух картинках выше соответствуют.
Смещение фрагмента в IP
Стоит отдельно остановиться на поле Fragment Offset, его размер 13 бит, то есть максимальное значение этого поля 8191, но весь вопрос в том, какие единицы измерения используются для смещения фрагмента, если в этом поле стоит значение 1, то это означает, что сдвиг надо делать на 8 байт, то есть максимально возможное смещение 65528 байт.
Проще всего разобраться с вопросом смещения можно будет на примере, допустим, у нас есть два хоста, соединенных каналом с MTU 1500 байт, но хосты хотят обмениваться пакетами размером 5940 байт, в этом случае будет включаться механизм фрагментации, и каждый исходный пакет будет разделен на четыре пакета по 1500 байт, чтобы они гарантированно прошли через канал, смещение первого фрагментированного пакета будет равно нулю, у второго пакета оно уже будет 1480 байт, третий пакет будет иметь смещение 2960 и последний пакет будет со смещением 4440 байт, все описанное выше представлено на рисунке.
Пример работы фрагментации IP пакетов
Для удобства я пересчитывал единицы измерения смещения в байты.
Из примера понятно, что фрагментация это лишняя работа не только для транзитных узлов, которые ее выполняют, но и для хостов. Также в примере виден смысл поля ID и флага MF, по ним получатель понимает, что это не конец фрагментированной последовательности, но получатель заранее не знает размер исходного пакета.
В качестве проверки и подтверждения сказанного ранее я сделал пинг пакетам с размером, как в примере выше, и снял дамп, важно, чтобы MTU линков был равен 1500 байт чтобы получилось как в примере.
Пример фрагментированных пакетов в дампе Wireshark
Интересные столбцы выделены цветами:
голубой = размер пакета
зеленый = наличие флага MF
красный = смещение
оранжевый = идентификатор
Строки выделять не стал, поскольку розовая строка здесь означает конец фрагментированной последовательности. Плюс важно учитывать, что на этом скрине в столбце Offset значение смещения не в байтах.
Установка iPerf3 на Linux и в Windows
Перейдем к практике, тренироваться будем на той же лабе, которая использовалась в посте про MTU. Вот топология сети:
Топология сети лабы
Далее будет краткий гайд по установке и использованию iPerf в Linux и Windows, кому этот момент очевиден, можно смело пропускать.
Iperf представляет собой простой кросс-платформенный генератор трафика, у него есть две версии: вторая и третья, второй никогда не пользовался и чем она отличается от третьей не знаю. Iperf является клиент-серверным приложением.
Iperf это утилита командной строки в Windows, установка его здесь довольная простая, скачиваете архив по этой ссылке, выбирайте самую свежую версию, она внизу. Внутри полученного архива будет папка с именем iperf+номер_версии_разрядность_ОС:
Архив с iPerf3
Если хотите, можете скинуть эту папку в любое удобное вам место и на этом установка будет завершена. Я же создам в корне диска C папку с именем iperf3 и скопирую в него содержимое папки "iperf3.17_64.", так будет проще:
Установленный iPerf3
При желании можете добавить путь к файлу iperf3.exe в переменную PATH, тогда для запуска программы не придется каждый раз в командной строке переходить по пути C:\iperf3 чтобы запустить программу.
Установку в Linux буду показывать на примере Debian 10, пишем две команды:
sudo apt update&&upgrade -y
sudo apt install iperf3
В других дистрибутивах команды могут отличаться, в команде на установку iperf тройку после iperf пишем обязательно, иначе установится вторая версия.
Примечание
В репозитории дистрибутива, который вы используете, может находиться пакет не с самой последней версией iPerf, в моем случае вопрос версии не принципиален, нам просто надо посмотреть на работу фрагментации, но если вы планируете использовать его для тестов своих каналов, учитывайте два момента: тесты, выполненные на iperf разных версий, могут не показать реальной картины (обычно результаты хуже чем есть на самом деле), в разных версиях есть разные баги, влияющие на результаты тестирования. Microsoft же вообще не рекомендует использовать iPerf для тестов в Windows.
Как запустить тест скорости iPerf
Запустить тест скорости в iPerf дело не хитрое, начнем с сервера. Запуск сервера делается так:
iperf3 -s
Запущенный сервер iPerf в Linux
Сервер ожидает запросы от клиента на порт 5201 любого из транспортных протоколов: TCP, UDP, SCTP. Если у вас используется firewall, убедитесь что порт открыт.
Клиента iperf будем запускать в Windows, для этого нужно запустить командую строку желательно от имени администратора, перейти в папку, где лежит exe файл (переходить никуда не надо будет, если добавить путь к iperf3.exe в переменную PATH):
C:\Windows\system32>cd c:\iperf3
c:\iperf3>iperf3.exe -c 10.0.0.2 -f k -M 1300
Connecting to host 10.0.0.2, port 5201
[ 5] local 10.0.0.6 port 49786 connected to 10.0.0.2 port 5201
Опции для разных ОС одинаковые, пользователи Linux могут получить справку при помощи утилиты man, в Windows можно написать iperf3.exe -h, но лучше обратиться к документации. Опции iperf делятся на серверные, клиентские и универсальные.
Теперь по поводу команды в Windows: -c говорит о том, что iperf запускается в режиме клиента, при этом данной опции надо передать IP-адрес сервера. Опция -f k говорит iperf о том, что скорость должна быть отображена в kbps, а -M 1300 задает размер TCP MSS 1300 байт.
Учитывайте, что какой бы протокол вы не использовали, iperf выставить df-bit = 1 и это никак не изменить, насколько мне известно, и это нужно учитывать при дальнейших тестах, плюс по умолчанию iperf генерирует пакеты только в одну сторону: от клиента к серверу. На сервере статистика тоже отображается, вот статистика для соединения, которое мы инициировали командой, выполненной выше в Windows:
Статистика теста скорости iperf на Linux сервере
Более детальную информацию о тесте можно получать, если использовать опцию -V на клиенте и сервере.
Как убрать df-bit у транзитного IP-пакета на роутере Cisco
Пожалуй, самый плохой сценарий для маршрутизатора в вопросах фрагментации, это когда маршрутизатор выполняет эту самую фрагментацию. Выше я не случайно написал про df-bit, который iPerf всегда выставляет на генерируемые им пакеты. С выставленным df-bit мы фрагментацию никогда не увидим, значит, его надо обнулить, как это сделать средствами Windows я не знаю и тратить время на то, чтобы с этим разобраться я не захотел, а вот на роутерах Cisco можно написать route-map и навешать этот route-map на интерфейс, в который будут входить пакеты с установленным df-bit, который мы хотим обнулять.
Примечание
Для тех, кто читал пост про MTU. В той лабе на интерфейсе CSR в сторону коммутатора был создан саб-интерфейс Gi2.200, на нем и был настроен IP-адрес, сейчас же саб-интерфейс Gi2.200 удален, IP-адрес перенесен на Gi2, а на линке CSR/SW кадры ходят без вланов.
Создать route-map можно, например, такой:
CSR#conf t
CSR(config)#route-map RM_DEL-DF-BIT permit 10
CSR(config-route-map)#match ip address 101
CSR(config-route-map)#set ip df 0
CSR(config-route-map)#exit
CSR(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 any
Строка set ip df 0 как раз и заставляет обнулять df-bit, а RM_DEL-DF-BIT это просто имя route-map, которое я ей придумал. Роут-мапу нам надо повешать на интерфейс Gi2, поскольку пакеты с df-bit, который мы хотим обнулять, будут входить именно в интерфейс (если бы остался саб-интерфейс Gi2.200, то тогда вешать надо было бы на него). Делается это так:
CSR#conf t
CSR(config)#int gi2
CSR(config-if)#ip policy route-map RM_DEL-DF-BIT
И давайте зададим IP MTU 1300 байт на интерфейс Gi1:
CSR#conf t
CSR(config)#int gi1
CSR(config-if)#ip mtu 1300
Всё, лабу подготовили.
Как работает фрагментация IP пакетов на роутере
Наконец-то мы добрались до самой фрагментации. Запустим iperf на Винде(команда iperf3.exe -c 10.0.0.2 -f k -M 1370) и снимем дампы:
Первый с линка между SW/Win, здесь будут идти не фрагментированные пакеты с TCP MSS 1370 байт, это уже больше чем MTU интерфейса Gi1, но к значению MSS нужно будет добавить еще размеры заголовков TCP и IP.
Второй дамп будем делать с линка Host_1/CSR. Здесь мы сможем увидеть фрагментированные пакеты, видя два дампа, мы сможем сделать вывод о том, что фрагментацию выполняет именно роутер.
Важно найти один и тот же пакет как в первом, так и во втором дампе, проще всего это сделать по идентификатору пакета. Вот пакет с номером 2e8b на линке SW/Win:
Не фрагментированный пакет размером 1410 байт
Размер пакета 1410 байт, df-bit = 1. А вот этот же пакет на линке Host_1/CSR:
Роутер разделил исходный пакет и теперь вместо одного пакета 1410 байт у нас два пакета размером 1430 байт
Во-первых, пакетов два: 1300 байт и 130 байт, а это больше изначальных 1410, уже неприятно, особенно, если счёт будем вести на миллионы. Во-вторых, видим, что пакеты, которые идут в сторону Debian, имеют df-bit = 0, из увиденного делаем выводы:
Route-map работает, CSR снимает df-bit и делает фрагментацию.
Фрагментацию выполняет роутер.
Не вижу сейчас особого смысла смотреть внутрь пакета, т.к. все интересующие нас поля я вывел в дамп, но если что, вот пакет, который генерировала Винда:
Исходный пакет размером 1410 байт
Вот первый фрагмент на выходе из CSR Gi1:
Первый фрагмент исходного пакета
А вот второй фрагмент:
Второй фрагмент исходного IP-пакета
Мы посмотрели пример фрагментации пакетов, понятно, что делать это на роутерах не очень правильно, но иногда приходится.
В следующий раз поговорим про Path MTU Discovery, для этого нужно отвязать route-map от интерфейса Gi2, чтобы роутер перестал обнулять df-bit:
CSR#conf t
CSR(config)#int gi2
CSR(config-if)#no ip policy route-map RM_DEL-DF-BIT
IP MTU 1300 байт на линке Gi1 оставляем.
Вопросы для ваших ответов
Может ли фрагментированный IP пакет быть меньше 68 байт и почему?
Напомню топологию
Топология сети лабы
Представим ситуации: на интерфейсе Gi2 роутера CSR настроен IP MTU 1400 байт, на всех остальных линках IP MTU 1500 байт, хост Windows генерирует в сторону Linux пакеты размером 1450 байт, что с этими пакетами будет?
Имеется линк с IP MTU 700 байт: на сколько фрагментов и какого разрмера будет разбит пакет1400 байт?
Имеется линк с IP MTU 725 байт: на сколько фрагментов и какого разрмера будет разбит пакет1430 байт?
Видео версия
Для тех, кому проще смотреть и слушать есть видео версия
В прошлом посте обсудили MTU и некоторые важные особенности, связанные с размерами пакетов и кадров, в этом давайте посмотрим: как можно менять MTU на различном оборудование, для примера рассмотрим следующие устройства:
Компьютер под управлением Linux, для этого будет использоваться виртуальная машина с Debian 10 (на схеме это Host_1).
Компьютер под управлением Windows 10 (значок с подписью Win).
Роутер CSR1000v под управлением IOS XE.
Хотелось бы еще рассмотреть классические коммутаторы, но коммутаторы под управлением IOL в EVE-NG, как я понял, всё-таки являются multilayer свичами, а не классическими L2, плюс на IOL у меня не получилось изменить канальный MTU, но SW на схему добавлен и мы немного с ним поработаем.
Схема, на которой будем всё это тестировать:
Схема для тестов с MTU
Зеленый кружок это возможность для выхода устройств лабы в реальную сеть, IP-адреса подписаны на схеме, а на линке SW/CSR кадры ходят в 200 влане, в сторону Windows кадры отдаются без метки.
Как изменить MTU на коммутаторе Cisco
Перед изменением MTU разберемся как его смотреть, есть стандартное заблуждение, что на оборудование Cisco в конфигурации нельзя увидеть значения MTU, если оно равно значению MTU по умолчанию, и действительно, команда show run не дает никаких результатов:
SW#sh run | in mtu
SW#sh run | in MTU
SW#
Можно даже посмотреть конфигурацию одного из интерфейсов:
SW#sh run int e0/0
Building configuration...
Current configuration : 29 bytes
!
interface Ethernet0/0
end
SW#
Но почему-то многие забывают что есть show run all:
SW#sh run all | in mtu
crypto ikev2 fragmentation mtu 576
mtu 1500
mpls mtu 1500
mtu 1500
mpls mtu 1500
mtu 1500
mpls mtu 1500
mtu 1500
mpls mtu 1500
no ip tcp path-mtu-discovery
SW#
В лабе EVE-NG используется коммутатор IOL, MTU у них меняются на интерфейсах. Вот пример конфигурации интерфейса Ethernet0/0:
SW#show run all | s Ethernet0/0
buffers Ethernet0/0 permanent 96
buffers Ethernet0/0 max-free 96
buffers Ethernet0/0 min-free 0
buffers Ethernet0/0 initial 0
interface Ethernet0/0
switchport
switchport access vlan 1
no switchport nonegotiate
no switchport protected
no switchport port-security mac-address sticky
mtu 1500
no ip arp inspection trust
ip arp inspection limit rate 15 burst interval 1
ip arp inspection limit rate 15
load-interval 300
carrier-delay 2
no shutdown
tx-ring-limit 64
tx-queue-limit 64
no macsec replay-protection
no macsec
ipv6 mfib forwarding input
ipv6 mfib forwarding output
ipv6 mfib cef input
ipv6 mfib cef output
mpls mtu 1500
snmp trap link-status
no onep application openflow exclusive
cts role-based enforcement
no mka pre-shared-key
mka default-policy
cdp tlv location
cdp tlv server-location
cdp tlv app
arp arpa
arp timeout 14400
channel-group auto
spanning-tree port-priority 128
spanning-tree cost 0
hold-queue 2000 in
hold-queue 0 out
ip igmp snooping tcn flood
no bgp-policy accounting input
no bgp-policy accounting output
no bgp-policy accounting input source
no bgp-policy accounting output source
no bgp-policy source ip-prec-map
no bgp-policy source ip-qos-map
no bgp-policy destination ip-prec-map
no bgp-policy destination ip-qos-map
SW#
Если не увидели в выводе выше значение MTU, то вот строки: mtu 1500, mpls mtu 1500. Все интерфейсов на коммутаторе четыре:
SW#
SW#sh int des
Interface Status Protocol Description
Et0/0 up up
Et0/1 up up
Et0/2 up up
Et0/3 up up
SW#
Посмотреть MTU на интерфейсе можно еще и так:
SW#sh int e0/0 | in MTU
MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,
SW#
Это канальный MTU. В конфигурации каждого порта мы видим два MTU: Ethernet и MPLS, оба равны 1500 байт, но порт можно перевести в режим роутера, тогда у него появится еще и IP MTU. Переводим порт:
SW#conf t
SW(config)#int e0/1
SW(config-if)#no switchport
Посмотрим какие MTU есть на коммутаторе:
SW#sh run all | in mtu
crypto ikev2 fragmentation mtu 576
mtu 1500
mpls mtu 1500
mtu 1500
ip mtu 1500
mpls mtu 1500
mtu 1500
mpls mtu 1500
mtu 1500
mpls mtu 1500
no ip tcp path-mtu-discovery
SW
Появилась строка ip mtu 1500, она относится к порту Ethernet0/1. Чтобы посмотреть IP MTU можно воспользоваться вот такой командной:
SW#sh ip int e0/1
Ethernet0/1 is up, line protocol is up
Internet protocol processing disabled
SW#
Возникла ошибка, дело в том, что интерфейс e0/1 переведен в режим роутера, но на нем не работает IP процесс, чтобы он заработал, надо настроить IP-адрес:
SW#conf t
Enter configuration commands, one per line.
SW(config)#int e0/1
SW(config-if)#ip add
SW(config-if)#ip address 1.1.1.1 255.255.255.0
Теперь мы можем посмотреть IP MTU и другие параметры процесса IP:
SW#sh ip int e0/1
Ethernet0/1 is up, line protocol is up
Internet address is 1.1.1.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
MPLS MTU посмотреть можно так (но MPLS должен быть включен на интерфейсе):
SW# sh mpls interfaces e0/1 detail
Interface Ethernet0/1:
Type Unknown
IP labeling not enabled
LSP Tunnel labeling not enabled
IP FRR labeling not enabled
BGP labeling not enabled
MPLS not operational
MTU = 1500
SW#
Изменить канальный MTU можно было бы вот такой командой:
SW#conf t
SW(config)#int e0/1
SW(config-if)#mtu 1600
% Interface Ethernet0/1 does not support user settable mtu.
SW(config-if)#
IP MTU на образах IOL меняется:
SW(config-if)#ip mtu 1000
MPLS MTU тоже можно поменять:
SW(config-if)#mpls mtu 1100
Итоговая конфигурация интерфейса теперь такая:
SW#sh run int e0/1
Building configuration...
Current configuration : 106 bytes
!
interface Ethernet0/1
no switchport
ip address 1.1.1.1 255.255.255.0
ip mtu 1000
mpls mtu 1100
end
SW#
Классические коммутаторы Cisco, как правило, не позволяют менять MTU отдельных интерфейсов и не имеют конфигураций MPLS MTU, у них есть так называемый system mtu, который позволяет задавать MTU всем интерфейсам сразу, показать не могу, поэтому отправлю к странице Configuration Guide для Catalyst 2960.
Команда Ping и размеры пакетов при пинге
Порт e0/1 на коммутаторе никак не влияет на передачу данных между хостами. MTU на всех линках, которые обеспечивают связность между ПК, сейчас стандартный и равен 1500 байт. Давайте в этом убедимся пингом с одного хоста на другой:
user@debian:~$ ping 10.0.0.6 -M do -s 1472 -c 4
PING 10.0.0.6 (10.0.0.6) 1472(1500) bytes of data.
1480 bytes from 10.0.0.6: icmp_seq=1 ttl=127 time=1.20 ms
1480 bytes from 10.0.0.6: icmp_seq=2 ttl=127 time=1.51 ms
1480 bytes from 10.0.0.6: icmp_seq=3 ttl=127 time=1.46 ms
1480 bytes from 10.0.0.6: icmp_seq=4 ttl=127 time=1.76 ms
Здесь стоит обратить внимание на то, что опция -s 1472 задает размер ICMP вложения без учета ICMP и IP заголовков, таким образом получается, что сформированный IP-пакет равен 1500 байт. В этом легко убедиться, если посмотреть на дамп Wireshark:
Размер пакета, который был сгенерирован при пинге с опцией -s 1472 в Linux
Если указать размер 1473 байта, то пинга не будет:
user@debian:~$ ping 10.0.0.6 -M do -s 1473 -c 3
PING 10.0.0.6 (10.0.0.6) 1473(1501) bytes of data.
На скрине зеленым выделен размер кадра, красным IP-пакета. А теперь сделаем пинг с роутера в сторону Debian:
CSR#ping 10.0.0.2 size 1500 df-bit
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
Packet sent with the DF bit set
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/63/121 ms
CSR#ping 10.0.0.2 size 1501 df-bit
Type escape sequence to abort.
Sending 5, 1501-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
Packet sent with the DF bit set
.....
Success rate is 0 percent (0/5)
CSR#
По результату пингов можно сделать вывод, что в IOS XE задается размер IP пакета при выполнении пинга. В Windows при пинге задается размер ICMP вложения без учета заголовков IP и ICMP:
Пинг в Windows с указанием размера payload ICMP и запретом на фрагментацию
Вывод из этого всего простой. Когда вы задаете размеры чего-то при пинге, всегда узнавайте, чего именно размер вы задаете.
Как изменить MTU на роутере Cisco?
Фактически способы изменения различных MTU на роутере мы рассмотрели, когда говорили про коммутаторы, т.к. для примера использовался multilayer switch. Но давайте все-таки кое-что посмотрим.
Для начала обратим внимание что максимальный канальный MTU на интерфейсе роутера может быть 9216 байт:
CSR#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
CSR(config)#int gi1
CSR(config-if)#mtu ?
<1500-9216> MTU size in bytes
CSR(config-if)#mtu
При этом сейчас канальный MTU равен 1500 байт, давайте посмотрим на возможные значение IP и MPLS MTU:
CSR(config-if)#ip mtu ?
<68-1500> MTU (bytes)
CSR(config-if)#mpls mtu ?
<64-1500> MTU (bytes)
Изменим L2 MTU, зададим максимальное значение:
CSR(config-if)#mtu 9216
CSR(config-if)#do sh int gi1 | in MTU
MTU 9216 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
Значение изменилось, а теперь давайте посмотрим на значения, которые можно задать IP и MPLS MTU:
CSR(config-if)#ip mtu ?
<68-9216> MTU (bytes)
CSR(config-if)#mpls mt
<64-9216> MTU (bytes)
Их верхняя граница отодвинулась на значение 9216 байт, при этом у IP минимальный MTU может быть равен 68 байт, а у Ethernet и MPLS 64. Давайте теперь посмотрим на линк в сторону коммутатора, в самом начале я упоминал, что на этом линке используется 200 влан, со стороны роутера настроен саб-интерфейс с номером 200, который инкапсулирует кадры в 200 влан, конфигурация выглядит так:
CSR# sh run int gi2
Building configuration...
Current configuration : 96 bytes
!
interface GigabitEthernet2
description toHost_2_via_SW
no ip address
negotiation auto
end
CSR# sh run int gi2.200
Building configuration...
Current configuration : 100 bytes
!
interface GigabitEthernet2.200
encapsulation dot1Q 200
ip address 10.0.0.5 255.255.255.252
end
CSR#
Поясню по поводу саб-интерфейса Gi2.200: о том, что на кадры нужно ставить метку с номером 200, говорит строка encapsulation dot1Q 200, цифра 200 после Gi2 это номер саб-интерфейса, эта цифра не обязана совпадать с номером влана, но для удобства их обычно делают одинаковыми.
Саб-интерфейс и влан в данном случае я городил, чтобы посмотреть на связь между MTU физического интерфейса и MTU саб-интерфейса.
Посмотрим какие MTU сейчас на Gi2 и Gi2.200:
CSR#sh int gi2 | in MTU
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
CSR#sh int gi2.200 | in MTU
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
CSR#sh ip int gi2.200 | in MTU
MTU is 1500 bytes
CSR#
Посмотрим какой MTU можно задать саб-интерфейсу:
CSR(config)#int gi2.200
CSR(config-subif)#mtu ?
<1500-9216> MTU size in bytes
Выставим саб-интерфейсу L2 и L3 MTU равными 1600 байт:
CSR(config)#int gi2.200
CSR(config-subif)#mtu 1600
CSR(config-subif)#ip mtu ?
<68-1500> MTU (bytes)
CSR(config-subif)#ip mtu
Роутер съел команду mtu 1600, но при этом задать ip mtu 1600 возможности нет. Давайте посмотрим применился ли L2 MTU 1600 для саб-интерфейса:
CSR#sh int gi2.200 | in MTU
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
CSR#
А вот и не изменился. Выставим L2 MTU 1600 байт для Gi2:
CSR(config)#int gi2
CSR(config-if)#mtu 1600
CSR(config-if)#do sh int gi2 | in MTU
MTU 1600 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
CSR(config-if)#
Выставили, он применился. Посмотрим MTU Gi2.200:
CSR(config-if)#do sh int gi2.200 | in MTU
MTU 1600 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
CSR(config-if)#
Увеличим MTU Gi2 до 1700 байт и посмотрим канальный MTU Gi2.200:
CSR(config)#int gi2
CSR(config-if)#mtu 1700
CSR(config-if)#do sh int gi2.200
GigabitEthernet2.200 is up, line protocol is up
Hardware is CSR vNIC, address is 5000.0002.0001 (bia 5000.0002.0001)
Internet address is 10.0.0.5/30
MTU 1700 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
Канальный MTU саб-интерфейса увеличивается вместе с канальным MTU основного интерфейса. L3 MTU теперь тоже можно сделать 1700 байт, но мы сделаем 1600 байт:
CSR(config)#int gi2.200
CSR(config-subif)#ip mtu ?
<68-1700> MTU (bytes)
CSR(config-subif)#ip mtu 1600
CSR(config-subif)#do sh run int gi2.200
Building configuration...
Current configuration : 113 bytes
!
interface GigabitEthernet2.200
encapsulation dot1Q 200
ip address 10.0.0.5 255.255.255.252
ip mtu 1600
end
CSR(config-subif)#do sh ip int gi2.200 | in MTU
MTU is 1600 bytes
CSR(config-subif)#do sh int gi2.200 | in MTU
MTU 1700 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
CSR(config-subif)#
Какие выводы мы можем сделать из увиденного?
В IOS XE значение Ethernet MTU саб-интерфейса наследуется от основного интерфейса.
Сетевым MTU саб-интерфейса можно управлять, но он не может быть больше канального.
Плюс нужно не забывать, что это пример конкретного оборудования с конкретной операционной системой, и на каком-то ином оборудование поведение может быть другим, поэтому либо читайте документацию, либо тестируйте, а лучше и то и другое.
По факту в IOS XE на саб-интерфейсе можно менять IP MTU и MPLS MTU, канальный MTU наследуется, это подтверждает вывод sh run all:
CSR#sh run all | b GigabitEthernet2.200
interface GigabitEthernet2.200
...
encapsulation dot1Q 200
ip address 10.0.0.5 255.255.255.252
....
ip mtu 1600
...
mpls mtu 1700
.....
!
По результатам sh run all видим, что нет даже возможности задать канальный mtu на саб-интерфейсе, а вот конфигурация основной интерфейс.
CSR#sh run all | b GigabitEthernet2
interface GigabitEthernet2
description toHost_2_via_SW
...
mtu 1700
...
ip mtu 1700
...
mpls mtu 1700
...
!
Для дальнейшего рассмотрения я вернул MTU всех интерфейсов на 1500 байт.
Размер Ethernet заголовка и настройки MTU
В прошлом посте про MTU я говорил, что есть некоторые стандарты, которые увеличивают размер заголовка, самый очевидный и часто используемый в компьютерных сетях стандарт это 802.1q или VLAN, он добавляет к полю заголовка 4 байта, то есть эта добавка никак не должна влиять на способность оборудования пропустить кадр с MTU 1500, если на интерфейсах этого оборудования настроено 1500 байт.
Убедимся в этом, запустим пинг из Linux в Windows IP-пакетами размером 1500 байт и снимем дамп с двух линков:
На линке Host_1/CSR. Здесь кадр идет без поля 802.1q.
На линке CSR/SW, здесь кадры идут с меткой 200.
На линке коммутатор/Windows дамп снимать смысла нет, потому что коммутатор убирает метку, когда отдает кадр в сторону ПК. Пинг:
user@debian:~$ ping 10.0.0.6 -M do -s 1472
PING 10.0.0.6 (10.0.0.6) 1472(1500) bytes of data.
1480 bytes from 10.0.0.6: icmp_seq=1 ttl=127 time=56.6 ms
1480 bytes from 10.0.0.6: icmp_seq=2 ttl=127 time=1.19 ms
1480 bytes from 10.0.0.6: icmp_seq=3 ttl=127 time=1.46 ms
1480 bytes from 10.0.0.6: icmp_seq=4 ttl=127 time=1.57 ms
1480 bytes from 10.0.0.6: icmp_seq=5 ttl=127 time=1.79 ms
1480 bytes from 10.0.0.6: icmp_seq=6 ttl=127 time=1.88 ms
Дамп с линка между Линуксом и роутером:
Ethernet кадр без метки размером 1514 байт с вложением 1500 байт
Зеленым выделен размер кадра (Dst MAC + Src MAC + Type + Payload). Красным выделен размер пакета 1500 байт. Теперь кадр на линке между роутером и коммутатором:
Ethernet кадр с меткой размером 1518 байт с вложением 1500 байт
Размер кадра увеличен до 1518 байт за счет того, что к заголовку добавились поля 802.1Q, но IP-пакет по-прежнему 1500 байт, данный кадр прошел через линк с MTU 1500 байт и это правильное поведение оборудование, но если вы работаете с каким-нибудь noname китайским тестируйте такие моменты.
Как изменить MTU интерфейса в Windows 10?
Сразу скажу, что я не самый быстрый стрелок на этом диком западе в части специфичных сетевых настроек на Винде, но как поменять MTU я знаю, для начала давайте посмотрим какие интерфейсы есть и какой MTU на них задан. Вот этой командной можно посмотреть канальные интерфейсы и их MTU в Windows:
C:\Windows\system32>netsh interface ipv4 show subinterfaces
В левом столбце значение L2 MTU, вывод я такой делаю, потому что можно посмотреть расширенные настройки интерфейсов:
C:\Windows\system32>netsh interface ipv4 show interfaces level=verbose
Interface Loopback Pseudo-Interface 1 Parameters
----------------------------------------------
IfLuid : loopback_0
IfIndex : 1
State : connected
Metric : 75
Link MTU : 4294967295 bytes
Reachable Time : 30500 ms
Base Reachable Time : 30000 ms
Retransmission Interval : 1000 ms
DAD Transmits : 0
Site Prefix Length : 64
Site Id : 1
Forwarding : disabled
Advertising : disabled
Neighbor Discovery : disabled
Neighbor Unreachability Detection : disabled
Router Discovery : dhcp
Managed Address Configuration : enabled
Other Stateful Configuration : enabled
Weak Host Sends : disabled
Weak Host Receives : disabled
Use Automatic Metric : enabled
Ignore Default Routes : disabled
Advertised Router Lifetime : 1800 seconds
Advertise Default Route : disabled
Current Hop Limit : 0
Force ARPND Wake up patterns : disabled
Directed MAC Wake up patterns : disabled
ECN capability : application
Interface Ethernet Parameters
----------------------------------------------
IfLuid : ethernet_32768
IfIndex : 8
State : connected
Metric : 25
Link MTU : 1500 bytes
Reachable Time : 20000 ms
Base Reachable Time : 30000 ms
Retransmission Interval : 1000 ms
DAD Transmits : 3
Site Prefix Length : 64
Site Id : 1
Forwarding : disabled
Advertising : disabled
Neighbor Discovery : enabled
Neighbor Unreachability Detection : enabled
Router Discovery : dhcp
Managed Address Configuration : enabled
Other Stateful Configuration : enabled
Weak Host Sends : disabled
Weak Host Receives : disabled
Use Automatic Metric : enabled
Ignore Default Routes : disabled
Advertised Router Lifetime : 1800 seconds
Advertise Default Route : disabled
Current Hop Limit : 0
Force ARPND Wake up patterns : disabled
Directed MAC Wake up patterns : disabled
ECN capability : application
И тут написано Link MTU. Поменяем значение MTU интерфейсу со значением Ethernet на 1600 байт через командую строку. Изменения рекомендую вносить через командую строку, запущенную от имени администратора:
C:\Windows\system32>netsh interface ipv4 set subinterface "Ethernet" mtu=1600 store=persistent
Ok.
C:\Windows\system32>netsh interface ipv4 show subinterfaces
Слово "Ethernet" в команде для смены MTU это имя интерфейса, имена интерфейсов можно посмотреть командой ipconfig. В графическом интерфейсе можно изменить размер кадров, который должен уметь обрабатывать интерфейс, заходим в меню "Настройки параметров адаптера" и здесь жмем ПКМ на нужный интерфейс:
Перечень адаптеров в Windows 10
Выбираем пункт "Свойства"/"Properties".
Меню просмотра и настроек свойств выбранного интерфейса
Жмем на кнопку "Configure..."/"Настроить...". А далее идем по цифрам:
Меню включения Jumbo Frame на сетевых интерфейсах в Windows 10
В русской версии Windows меню "Jumbo Packet" перевели как "Большой кадр". Значение 9014 байт это именно что размер кадра, потому что после того как будет выбрано 9014 байт, MTU интерфейса станет 9000 байт:
C:\Windows\system32>netsh interface ipv4 show subinterfaces
Когда вы включаете Jumbo кадры, интерфейс перезагружается.
Как изменить MTU в Linux?
Перейдем к Linux. Разберемся как проверять MTU на интерфейсах.
Прежде чем продолжить сделаю одно примечания. В посте о настройке лабы TTL я довольно подробно описал базовые сетевые настройки для Debian 10, плюс там же дал некоторые полезные ссыли, поэтому сейчас на этом вопросе подробно не останавливаюсь.
На конкретном интерфейсе MTU смотрим так:
user@debian:~$ ip link show dev ens3
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
Разберемся с тем, как сделать временные изменения MTU на интерфейсе, изменять будем на ens3, этот интерфейс включен в мою домашнюю сеть, а через нее в интернет, для проверки попинуем Гугл:
У интерфейса ens3 MTU будет 1400 байт до перезагрузки машины, после ребута он вновь станет 1500 байт. Разберемся как изменить MTU на постоянной основе, как и большая часть других настроек Linux, постоянные изменения применяются через изменение конфигурационных файлов. Открываем файл с сетевыми настройками любым удобным редактором:
sudo nano /etc/network/interfaces
Находим конфигурацию нужного нам интерфейса и добавляем в нее значение MTU нужного нам размера, в моем случае 1400 байт:
#to_CSR
allow-hotplug ens4
iface ens4 inet static
address 10.0.0.2/30
up ip route add 10.0.0.4/30 via 10.0.0.1
mtu 1400
Стоит учитывать что название и расположение файла с сетевыми настройками зависит от дистрибутива, с которым вы работаете. Давайте проверим изменился ли MTU:
user@debian:~$ ip link show dev ens4
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
PING 10.0.0.1 (10.0.0.1) 1372(1400) bytes of data.
1380 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=60.9 ms
1380 bytes from 10.0.0.1: icmp_seq=2 ttl=255 time=0.641 ms
1380 bytes from 10.0.0.1: icmp_seq=3 ttl=255 time=0.591 ms
1380 bytes from 10.0.0.1: icmp_seq=4 ttl=255 time=0.595 ms
^C
--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 61ms
rtt min/avg/max/mdev = 0.591/15.670/60.856/26.088 ms
user@debian:~$
И не забывайте, что в Linux есть замечательная утилита grep, которая позволяет избежать просмотра портянок различного рода конфигураций и диагностических выводов:
user@debian:~$ ip a | grep mtu
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP group default qlen 1000
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP group default qlen 1000
user@debian:~$
Ну и всё, спасибо, что дочитали!
Вопрос для вашего ответа
Почему роутер дает возможность установить минимальный MTU для IP 68 байт, а для MPLS и Ethernet 64 байта? В чем логика, если IP это вложение в Ethernet и тот же IP может быть закрыт MPLS заголовком?
Видео версия
Видео версия для тех, кому проще посмотреть и послушать, чем почитать.