Как самому подключить розетку — «Петрович.Знает»
Вы сделали дома перестановку, и теперь телевизор не достает до розетки. А может быть, старая розетка сломалась или не вписывается в свежий интерьер. В любом случае вам предстоит ее замена, перенос или новая установка. Опасную работу с электрикой нужно проводить под руководством профессионала. Андей Хрисанов — эксперт индивидуального управления ремонтно-строительными работами — научит вас быстро и безопасно подключать розетки самостоятельно.
Техника безопасности
Когда дело касается электрики, нельзя пренебрегать техникой безопасности. В случае с установкой розетки придерживайтесь следующих правил:
- Проводите монтаж в светлое время суток, а если света недостаточно, используйте фонарик.
- Перед началом любых электромонтажных работ обесточьте квартиру. Выключите главный автомат электрощита у входной двери, а еще лучше — отключите вводной автомат, который находится в подъезде.
- Проверьте индикаторной отверткой, есть ли ток в розетках. Для этого вставьте ее в розетку: сначала в одно отверстие, а потом в другое. Если индикатор загорится, значит в сети есть ток и вы отключили что-то не то.
- Даже обесточенные провода кладите так, чтобы они случайно не коснулись друг друга, а каждую скрутку закрывайте изолентой.
- Работайте в электрозащитных перчатках даже при выключенном электричестве.
- Используйте инструменты с прорезиненными рукоятками, которые не проводят ток.
- Помните, что прямые соединения алюминиевых и медных кабелей запрещены, потому что они могут вызвать короткое замыкание и пожар. Чтобы этого не случилось, соединяйте их только через клемму.
- Устанавливать розетку самостоятельно можно, только когда в квартире уже стоит распределительный щит.
Работая с электричеством, важно не запутаться в проводах. В современных домах к розетке ведут 3 кабеля:
- Фаза (чаще коричневый) — проводник, по которому ток приходит к электроприбору.
- Ноль (чаще синий) — проводник, по которому ток движется в обратном направлении.
- Заземление (чаще желто-зеленый) — проводник без напряжения, который защищает от удара током. В старых домах часто нет заземления, тогда розетку подключают на ноль. Но электрики рекомендуют установить устройство защитного отключения (УЗО) или полностью заменить проводку.
Если в вашей розетке цвета проводов фазы, ноля и заземления другие, можно определить, кто есть кто, с помощью индикаторной отвертки. Заземление обычно находится по центру или заметно в стороне от парных винтов фазы и ноля, так что определять его отверткой не надо. Включите электричество и по очереди коснитесь отверткой двух оставшихся контактов. Индикатор загорится при прикосновении к фазе, значит, другой контакт — это ноль.
Инструменты и расходники
Собираетесь ли вы установить розетку туда, где ее раньше не было, или на место старой — неважно. Набор инструментов будет отличаться незначительно. Вам понадобятся:
- Розетка. Для ванной комнаты нужно выбирать розетки с крышкой. Маркировка влагозащиты должна быть не ниже IP44: она означает, что розетка не сломается, если на нее попадут брызги; розетки с маркировкой IP55 переносят струю воды, а IP65 полностью защищены от песка, пыли и попадания любого количества осадков
- Индикаторная отвертка, чтобы проверить наличие тока в сети до начала работы и исправность новой розетки, когда закончите ее установку.
- Крестовая и плоская отвертка для монтажа.
- Подрозетник (монтажная коробка), подходящая под размер розетки. Ее выбирают, исходя из материала стен. Для сплошных стен из бетона или кирпича подходят обычные подрозетники, а для гипсокартона нужна коробка с зажимными лапками, чтобы она надежно держалась в полой стене. Подрозетники могут быть рассчитаны сразу на несколько розеток.
- Канцелярский нож для зачистки проводов или специальный нож для снятия изоляции.
- Лазерный или ручной уровень для разметки.
- Кусачки и плоскогубцы для обрезки, выпрямления и скрутки проводов.
- Самозажимные пружинные клеммы для соединения жил кабеля.
- Перфоратор и алмазная коронка D68, если нужно сделать новое отверстие под розетку. Диаметр 68 мм — стандартный для современных подрозетников.
- Саморезы 3,5 мм для крепления розетки к подрозетнику.
- Силовой кабель из 3 жил с сечением 2,5 кв. мм для переноса розетки или на случай, если вы хотите установить их сразу несколько в ряд. На 4 розетки понадобится около метра этого кабеля.
Как заменить старую розетку на новую
Демонтируем старую розетку
- Отверткой выкрутите винт, который находится в центре розетки, чтобы снять ее лицевую панель (крышку). Под крышкой находится каркас розетки, прикрепленный к подрозетнику. Иногда его внутри нет, и каркас держится в отверстии за счет металлических лапок по бокам.
- Убедитесь, что в сети нет тока, коснувшись индикаторной отверткой всех контактов по очереди. Если индикатор не зажегся, можно продолжать работу. Выкрутите винты, которые соединяют каркас с подрозетником, чтобы получить доступ к проводам. Открутите винты от клемм, которые держат провода, и полностью снимите каркас с подрозетником.
- Если розетка на этом месте вам больше не нужна, то выпрямите плоскогубцами концы проводов, обмотайте их изолентой и спрячьте все коммуникации в стену так, чтобы фаза не соприкасалась с нолем. Заполните отверстие монтажной пеной, срежьте лишнее, когда она высохнет, и зашпатлюйте этот участок перед его финишной отделкой.
Ставим новую розетку на место старой
- У подрозетников на задней стенке обычно есть перфорированная разметка под отверстие, в которое продевают кабель. Выдавите пластик в новом подрозетнике пальцем или, если перфорация недостаточно глубокая, вырежьте его канцелярским ножом. Вставьте в отверстие в стене новый подрозетник и проденьте через отверстие провода. Подрозетник должен быть надежно закреплен в стене, поэтому его клеят на гипс или алебастр. Мастера рекомендуют гипсовый клей: он хорошо держит форму и схватывается не мгновенно, чтобы можно было поправить положение подрозетника.
- Снимите крышку новой розетки, открутив большой винт в центре, и отложите ее в сторону. Подключите к каркасу розетки провода: раскрутите крепления зажимов, чтобы провода свободно входили в них; соедините их с клеммами и затяните винты. Главное — верно подключить заземление. Фазу же чаще вставляют справа, а ноль слева, но если сделаете наоборот, то ничего страшного не случится.
- Вы можете закрепить каркас в подрозетнике горизонтально или вертикально. Разницы нет, делайте так, как вам будет удобнее вставлять вилку в розетку.
- С помощью саморезов зафиксируйте розетку в подрозетнике. Сверху закрепите лицевую панель и затяните центральный винт.
Когда установите розетку, включите электричество и коснитесь индикаторной отверткой по очереди каждого контакта. Индикатор должен зажечься в том месте, где находится фаза, — это значит, что вы все сделали правильно. Если индикатор не загорелся, а вы уверены, что не допустили ошибок, то, возможно, где-то поврежден провод. Проверить целостность линии, найти проблему и исправить ее — уже работа профессионального электрика.
Как перенести розетку в другое место
Ищем скрытую проводку
В большинстве квартир установлена скрытая проводка, то есть все коммуникации находятся внутри стен. Это значит, что для переноса розетки стену придется проверить:
- С помощью уровня сделайте на стене разметку под новую розетку и штрабу для кабеля. Согласно ПУЭ 6.6.30, розетки должны быть установлены не выше 100 см от пола, в остальном выбор места за вами. Учтите еще, что в ванной, туалете и на кухне розетки должны быть расположены на расстоянии не меньше 60 см от пола и сантехники.
- Индикаторной отверткой проверьте, не проходит ли на месте разметки скрытая проводка. Переведите отвертку в режим «Н» и приложите кнопкой к стене. Водите отверткой по разметке, и если внутри есть проводка, индикатор даст вам об этом знать. В безопасном месте просверлите отверстие для подрозетника перфоратором с алмазной коронкой D68. Разметку, проходящую от одной розетки к другой, также просканируйте.
Прокладываем кабель от старой розетки и устанавливаем новую
- Демонтируйте старую розетку. Напомним основные этапы: снимите лицевую панель, убедитесь, что розетка не под напряжением, выкрутите винты, соединяющие каркас с подрозетником, открутите винты от клемм и снимите каркас с подрозетником.
- Проштрабите перфоратором канал от старой розетки к новой по разметке. Для кабеля на 3 жилы толщиной в 1 см минимальная глубина штрабы будет 3–4 см.
- Возьмите кабель с 3 жилами и сечением 2,5 мм. Зачистите его концы, сняв примерно 1 см изоляции ножом и кусачками.
- Соедините через пружинные клеммы 3 жилы кабеля с 3 жилами кабеля из старой розетки, которые соответствуют друг другу (фаза, ноль и заземление).
- Просверлите в штрабе несколько отверстий под дюбель на произвольном расстоянии друг от друга. Уложите внутрь кабель, ведущий от старой розетки к новой, и закрепите пластиковыми дюбелями-хомутами.
- Поскольку эта розетка больше не понадобится, закройте ненужное отверстие в стене.
- Поставьте розетку на новом месте. Кратко снова перечислим этапы: вставьте подрозетник на место новой розетки, проденьте через отверстие в подрозетнике силовой кабель, зачистите контакты, приклейте подрозетник, подключите к каркасу розетки провода через клеммы, зафиксируйте на саморезы каркас розетки в подрозетнике, поставьте на место лицевую панель и затяните центральный болт.
Как установить новую розетку
Можно подключить новую розетку через автомат в щитке или запитать от другой розетки. В обоих случаях придется штрабить стену и вести провод от щитка или от розетки. Принцип подключения тоже одинаковый, поэтому выбирайте вариант, который ближе. Обычно ближе оказывается другая розетка.
- Определите место для розетки.
- Проложите кабель от старой розетки.
- Демонтируйте розетку, через которую будете подключать новую.
Подключаемся к другой розетке:
- Проденьте кабель сквозь подрозетник розетки, к которой вы подключаетесь. Используйте короткий отрезок кабеля с 3 жилами и сечением 25 кв. мм. С одного конца соедините его самозажимными клеммами с розеткой, которую вы демонтировали. Другим концом подключите к силовому кабелю, идущему к новой. Благодаря этому соединению ток будет питать обе розетки одновременно.
- Верните на место «розетку-донор».
- Установите новую розетку.
Резюме
При монтаже розетки в первую очередь нужно позаботиться о безопасности: отключить электричество, работать в защитных диэлектрических перчатках и использовать инструменты с прорезиненными рукоятками, которые не пропускают ток. В остальном даже новичок справится с установкой розетки, если внимательно прочтет нашу инструкцию и поймет принцип подключения контактов.
20.05.2022
Товары из статьи
Фонарь налобный Navigator (949171) светодиодн…
Отвертка плоская 140 мм 100-500 В Witte индик…
Перчатки латексные диэлектрические Эконом (1 …
Набор диэлектрического инструмента 1000 В КВТ…
Щит распределительный встраиваемый Schneider …
Розетка Schneider Electric Glossa GSL000143 с…
Отвертка крестовая PZ1 75 мм Hesler
Отвертка плоская SL6 100 мм Hesler
Подрозетник Schneider Electric для бетона d71…
Нож строительный Hesler 18 мм с ломающимся ле…
Нож 1000 В Vira (397032) для удаления изоляци…
Уровень лазерный ADA CUBE Mini Professional E…
Уровень STABILA 70 80 см 2 глазка
Кусачки диагональные Stanley Fatmax (0-89-859…
Плоскогубцы 160 мм
Клемма на 4 провода Wago 2273-244 0,5-2,5 кв. …
Перфоратор электрический Интерскол П-30/900ЭР…
Коронка алмазная Trio-Diamond (400068) по кер…
Саморезы универсальные 35×3,5 мм оцинкованные…
Кабель Севкабель NYM 3×2,5 (100 м)
Дюбель-хомут для круглого кабеля Tech-Krep 5-…
Клей для ПГП, ГКЛ, ГВЛ Кнауф Перлфикс гипсовы…
схема подключения. ⋆ Руководство электрика
Содержание статьи
- 1 Как подключить розетку.
- 2 Подготовка к подключению розетки.
- 3 Как подключить розетку самостоятельно.
- 4 Как подключить двойную розетку.
Как подключить розетку.
Нашу жизнь просто невозможно представить без электрических приборов. Большое количество бытовой техники уверенно вошло в наши квартиры, чтобы облегчить домашнюю работу и информационное пространство. Поэтому всё чаще требуется установка новой розетки для подключения различных электроприборов.
Какие правила нужно соблюдать при монтаже электрической розетки, как правильно подключить одинарную и двойную розетки, какие инструменты понадобятся и другие нюансы мы расскажем в этой статье.
Рис.1 — визуальная схема подключения розетки
При выполнении работ по подключению розетки необходимо:
1. Перед электромонтажными работами обязательно нужно обесточить проводку на вводе в дом или квартиру.
2. Внимательно изучите прилагаемую инструкцию к изделию и следуйте её указаниям.
Не игнорируйте данные рекомендации, т.к. это может спасти вам жизнь.
Подготовка к подключению розетки.
Чтобы подключить самостоятельно розетку к электрической сети нужно подготовить следующее:
- определиться с выбором типа розетки и приобрести её;
- проложить провод к месту расположения будущего разъёма электросети;
- подготовить необходимый для монтажных работ инструмент;
- выполнить пошаговую инструкцию, которая описана ниже.
Сегодня в магазинах представлен широкий выбор разнообразных розеток для любых помещений, в различном исполнении:
- наружные;
- внутренние;
- одинарные, двойные, тройные и т.д.;
Больших отличий при подключении того или иного вида розеток нет. Разница лишь в способах их установок.
Рис.2 — исполнение розеток
Подрозетники – это коробки, изготовленные из пластмассы или материала не проводящего ток и стойкого к воспламенению. Для его установки требуется наличие ниши в стене.
Закреплять подрозетник необходимо очень прочно, чтобы розетка вместе с ним не вывалилась из места установки.
Это правило нужно обязательно учесть, т.к. многие не выключают приборы из сети, взявшись за вилку, а тянут её из розетки за шнур.
Рис.3 — подрозетники
Как подключить розетку самостоятельно.
Никаких особых навыков, чтобы правильно подключить электро розетку, не нужно. Всё делается достаточно легко, просто следуйте нашим рекомендациям.
Итак, как правило, для подключения имеется три провода:
Обратите внимание, что заземляющий провод может отсутствовать, если при монтаже электропроводки его не прокладывали. Это не повлияет на работу электроприборов, но для обеспечения безопасности данный проводник должен быть установлен.
На всех розетках нанесены специальные символы, которые указаны выше (фазный провод, нулевой провод, заземление), поэтому вы точно не ошибётесь. В принципе, никакой разницы нет, если при подключении розетки вы поменяете местами фазный и нулевой провода — на работу электроприборов это не повлияет. Главное запомните, что заземляющий провод подключается к металлическому корпусу розетки.
На рисунке 4 вы можете видеть, как правильно подключить провода к розетке. Ничего сложного, просто следуйте обозначениям на корпусе.
Рис.4 — подключение розетки.
А на рисунке 5 представлена схема подключения розетки с заземлением. Напомним, что при отсутствии заземляющего проводника, ничего при подключении не меняется, за исключением заземлителя.
Рис.5 — схема подключения розетки.
Как подключить двойную розетку.
Процесс подключения двойной розетки аналогичен подключению одинарной. То есть, необходимо правильно подцепить провода:
Разница заключается лишь в том, что необходимо провести шлейф от одной розетки к другой.
Провода ко второй розетке необходимо подключать тем же образом, что и к первой, ошибиться здесь не реально.
На рисунке 6 представлена схема подключения розетки с заземлением. Если необходимо подключить двойную розетку без заземления, то просто не задействуется заземляющий проводник.
Рис.6 — схема подключения двойной розетки.
Если же вам нужно подключить тройную розетку, либо четверную и т.д., то действуйте совершенно также, как и при подключении двойной розетки, то есть прокладыванием шлейфа проводов к каждой последующей розетки.
1. Шлейф — отрезок провода, соединяющий параллельно или последовательно несколько электроприборов.
‘Не удалось подключиться к сокету: время ожидания соединения истекло’ ошибка
Невозможность отправить почту в нужное время может даже привести к потере важной деловой возможности.
Довольно неприятно! мы знаем.
И, когда сообщения об ошибках содержат технические жаргоны, это становится более неприятным.
Одна из таких ошибок: « не удалось подключиться к сокету, время ожидания истекло ».
Устранение проблем с доставкой электронной почты наших клиентов является одной из распространенных задач, которые мы выполняем в рамках наших услуг внешней технической поддержки для веб-хостов.
Сегодня мы обсудим 4 основные причины этой ошибки и способы ее устранения.
Не удалось подключиться к сокету: время ожидания подключения истекло. Что это значит?
Проще говоря, сокет — это конечная точка связи.
При обычной доставке почты клиентский сокет соединяется с прослушивающим сокетом сервера. И общение происходит, когда это соединение успешно.
‘не удалось подключиться к сокету, время ожидания соединения истекло’ означает, что соединение с почтовым сервером не удалось или почтовый сервер больше недоступен.
Не удалось подключиться к сокету: время ожидания подключения истекло. Причины и способы устранения
Теперь давайте рассмотрим основные причины этой ошибки и способы их устранения нашими инженерами службы поддержки.
1) Неверный хост SMTP и порт
Пользователи должны ввести данные почтового сервера в своем почтовом приложении.
Например, если они используют Gmail в качестве почтового сервера, SMTP-хост должен быть smtp.gmail.com .
Иногда к этой ошибке может привести опечатка в имени хоста или неактивный почтовый сервер.
Аналогично, порт SMTP по умолчанию — 25, но некоторые поставщики услуг электронной почты используют настраиваемые порты, такие как 587, для уменьшения количества спама.
Кроме того, некоторые почтовые серверы разрешают отправку электронной почты только через SSL-порт 465.
Таким образом, неправильный ввод хоста SMTP или порта в настройках SMTP почтового приложения может привести к ошибкам доставки электронной почты.
Решение
Во-первых, наши инженеры службы поддержки проверяют DNS-подключение почтового сервера с помощью приведенной ниже команды.
dig mail. domain.com
Кроме того, чтобы определить правильный SMTP-порт и его подключение, мы используем приведенную ниже команду.
telnet mail.domain.com 25
Позже мы проверим и убедимся, что в почтовом приложении используются правильные настройки SMTP.
[Проблемы с вашей электронной почтой и вы не можете определить, где что-то пошло не так? Не волнуйтесь, наши инженеры службы поддержки могут помочь вам здесь.]
2) Ограничения брандмауэра сервера
Брандмауэры играют решающую роль в обеспечении безопасности сервера. Эти брандмауэры иногда могут блокировать доступ к некоторым IP-адресам или диапазонам IP-адресов из-за ненормального поведения.
Например, некоторые серверы блокируют доступ с IP-адреса, если количество подключений с этого IP-адреса превышает пороговое значение.
Таким образом, если брандмауэр не разрешает подключение, пользователи увидят ошибку «не удалось подключиться к сокету, время ожидания подключения истекло» .
Решение
Во-первых, наши инженеры службы поддержки проверяют и удостоверяются, что IP-адрес пользователя заблокирован брандмауэром сервера. Мы используем онлайн-инструменты, такие как https://whatismyipaddress.com/, чтобы получить общедоступный IP-адрес клиента.
Если IP-адрес заблокирован брандмауэром сервера, мы немедленно удаляем его и восстанавливаем подключение к электронной почте. После этого мы выявляем причину блокировки брандмауэром и информируем заказчика.
Кроме того, мы вносим IP-адрес на сервер в белый список на определенный период времени после подтверждения того, что это законный запрос.
3) Порт провайдера блокирует
Порт SMTP по умолчанию — 25. Но большинство интернет-провайдеров блокируют этот порт для борьбы со спамом и злоупотреблениями.
И это еще одна распространенная причина ошибки.
Решение
Наши специалисты службы поддержки проверяют результаты traceroute от ПК пользователя до почтового сервера.
Это дает представление о проблемах сетевого подключения в любой из промежуточных сетей между почтовым сервером и пользовательским ПК.
Если мы обнаружим проблемы на уровне интернет-провайдера, мы предлагаем клиентам связаться с ними.
В качестве альтернативы мы настраиваем почтовый сервер на альтернативные порты, такие как 587, для обхода блокировок портов провайдера и восстановления доставки электронной почты.
Как только почтовый сервер настроен на новый порт, мы вносим этот порт в белый список брандмауэра, чтобы разрешить входящие подключения.
4) Проблемы с брандмауэром ПК
Иногда это может происходить.
Антивирусное программное обеспечение или сторонние брандмауэры на ПК пользователя иногда могут блокировать подключения к определенным IP-адресам, включая IP-адрес сервера.
В результате может выдавать ошибку при подключении к почтовому серверу с ПК пользователя.
Решение
Чтобы проверить проблемы с подключением ПК пользователя к почтовому серверу, мы получаем результаты telnet с ПК пользователя на порт почтового сервера.
Таким образом мы определяем, может ли пользователь подключиться к SMTP-порту почтового сервера.
В случае сбоя подключения мы предлагаем клиентам отключить локальный брандмауэр и антивирус и попробовать.
[Нужна помощь в решении текущих проблем с электронной почтой? Нажмите здесь, чтобы эксперт службы поддержки рассмотрел вашу проблему.]
Заключение
Короче говоря, « не удалось подключиться к сокету, ошибка времени ожидания соединения» может произойти из-за неправильных настроек хоста SMTP или порта , блокирует брандмауэр интернет-провайдера и многое другое. Сегодня мы обсудили 4 основные причины этой ошибки и способы их устранения нашими инженерами службы поддержки.
ПРЕДОТВРАТИТЕ СБОЙ СЕРВЕРА!
Никогда больше не теряйте клиентов из-за низкой скорости сервера! Позвольте нам помочь вам.
Наши специалисты по серверам будут контролировать и обслуживать ваш сервер 24/7, чтобы он оставался молниеносно быстрым и безопасным.
СМ. ПЛАНЫ АДМИНИСТРИРОВАНИЯ СЕРВЕРА
var google_conversion_label = «owonCMyG5nEQ0aD71QM»;
Все, что вы хотели знать о сокетах UDP, но боялись спросить, часть 1
Идет загрузка…
25 ноября 2021 г. 17:27
Марек Майковский
Исторически основной компетенцией Cloudflare была работа с обратным прокси-сервером HTTP. Мы приложили значительные усилия для оптимизации традиционных серверов HTTP/1.1 и HTTP/2, работающих поверх TCP. Однако недавно мы начали использовать крупномасштабные сервисы UDP с отслеживанием состояния.
Stateful UDP набирает популярность по ряду причин:
— QUIC — это новый транспортный протокол, основанный на UDP, он поддерживает HTTP/3. Мы видим, что принятие ускоряется.
— Мы используем WARP — нашу службу туннелирования на основе протокола Wireguard, которая внутри использует UDP.
— У нас много общего UDP-трафика, проходящего через нашу службу Spectrum.
Несмотря на то, что UDP в принципе прост, для работы в больших масштабах требуется много знаний в предметной области. В этом сообщении блога мы рассмотрим основы: все, что вам нужно знать о UDP-серверах, чтобы начать работу.
Подключенные и неподключенные
Как вы «принимаете» соединения на UDP-сервере? Если вы используете несвязанные сокеты, вы обычно этого не делаете.
Но давайте начнем с основ. Сокеты UDP могут быть «подключенными» (или «установленными») или «неподключенными». Подключенные сокеты имеют полный 4-кортеж, связанный {IP-адрес источника, исходный порт, IP-адрес назначения, порт назначения}, неподключенные сокеты имеют 2-кортежа {bind ip, bind port}.
Традиционно подключенные сокеты в основном использовались для исходящих потоков, а неподключенные — для входящих соединений со стороны «сервера».
Клиент UDP
Как мы сегодня узнаем, их можно смешивать. Можно использовать подключенные сокеты для обработки входа и неподключенные для выхода. Чтобы проиллюстрировать последнее, рассмотрим эти два фрагмента. Они делают то же самое — отправляют пакет DNS-преобразователю. Первый фрагмент использует подключенный сокет:
Второй, использует неподключенный сокет:
Какой из них лучше? Во втором случае при получении программист должен проверить исходный IP пакета. В противном случае программа может запутаться из-за случайного входящего интернет-мусора, например сканирования портов. Заманчиво повторно использовать дескриптор сокета и затем запрашивать другой DNS-сервер, но это плохая идея, особенно при работе с DNS. В целях безопасности DNS предполагает, что исходный порт клиента является непредсказуемым и недолговечным.
Вообще говоря, для исходящего трафика предпочтительнее использовать подключенные сокеты UDP.
Подключенные сокеты могут сохранять поиск маршрута для каждого пакета, используя умную оптимизацию — Linux может сохранять результат поиска маршрута в структуре соединения. В зависимости от специфики установки это может сэкономить несколько циклов процессора.
Для полноты картины можно свернуть новый исходный порт и повторно использовать дескриптор сокета с неясным приемом, который называется «распад ассоциации сокета». Это можно сделать с connect(AF_UNSPEC)
, но это довольно продвинутая магия Linux.
Сервер UDP
Традиционно на стороне сервера UDP требует несвязанных сокетов. Их использование требует некоторой ловкости. Чтобы проиллюстрировать это, давайте напишем эхо-сервер UDP. На практике вам, вероятно, не стоит писать такой сервер из-за риска стать вектором отражения DoS. Среди других средств защиты, таких как ограничение скорости, службы UDP всегда должны отвечать строго меньшим объемом данных, чем было отправлено в исходном пакете. Но не будем отвлекаться, наивный эхо-сервер UDP может выглядеть так:
Этот код вызывает вопросы:
— Полученные пакеты могут быть длиннее 2048 байт. Это может произойти из-за обратной петли, при использовании больших кадров или с помощью фрагментации IP.
— вполне возможно, что полученный пакет имеет пустую полезную нагрузку.
— А как насчет входящих ошибок ICMP?
Эти проблемы специфичны для UDP, они не возникают в мире TCP. TCP может прозрачно обрабатывать MTU/фрагментацию и ошибки ICMP. В зависимости от конкретного протокола служба UDP может быть более сложной и уделять особое внимание таким крайним случаям.
Получение пакетов из сокета с подстановочными знаками
С этим кодом связана более серьезная проблема. Он корректно работает только при привязке к определенному IP-адресу, например ::1
или 127.0.0.1
. Это не всегда будет работать, когда мы привязываемся к подстановочному знаку. Проблема заключается в строке sendto()
— мы явно не указали исходящий IP-адрес! Linux не знает, откуда мы хотим получить пакет, и выберет исходящий IP-адрес по умолчанию. Это может быть не тот IP-адрес, с которым общался клиент. Например, допустим, мы добавили :: 2
адрес для обратного интерфейса и отправки пакета на него, с IP-адресом src, установленным на действительный :: 1
:
[электронная почта защищена]: ~$ sudo tcpdump -ni lo порт 1234 -t tcpdump: подробный вывод подавлен, используйте -v или -vv для полного декодирования протокола прослушивание на lo, канальный EN10MB (Ethernet), размер захвата 262144 байт IP6 ::1. 41879 > ::2.1234: UDP, длина 2 IP6 ::1.1234 > ::1.41879: UDP, длина 2
Здесь мы видим, что пакет корректно летит с ::1
на ::2
, на наш сервер. Но затем, когда сервер отвечает, он получает ответ от IP-адреса :: 1
, что в данном случае неверно.
На стороне сервера при привязке к подстановочному знаку:
— мы можем получать пакеты, предназначенные для нескольких IP-адресов
— мы должны быть очень осторожны при ответе и использовать соответствующий исходный IP-адрес
BSD Sockets API не t облегчить понимание того, куда был направлен полученный пакет. В Linux и BSD можно запросить полезные метаданные CMSG с помощью IP_RECVPKTINO и IPV6_RECVPKTINFO.
Улучшенный цикл сервера может выглядеть так:
Системные вызовы recvmsg
и sendmsg
, в отличие от recvfrom
/ sendto
, позволяют программисту запрашивать и устанавливать дополнительные метаданные CMSG, что очень удобно при работе с UDP.
CMSG IPV6_PKTINFO содержит следующую структуру данных:
Здесь мы можем найти IP-адрес и номер интерфейса получателя пакета. Обратите внимание, здесь нет места для номера порта.
Мягкий перезапуск сервера
Многие традиционные протоколы UDP, такие как DNS, основаны на запросе-ответе. Поскольку нет состояния, связанного с «подключением» более высокого уровня, сервер может без проблем перезапуститься, обновить или изменить конфигурацию. В идеале сокеты должны управляться с помощью обычной активации сокета systemd, чтобы избежать короткого временного окна, когда сокет не работает.
Современные протоколы часто основаны на соединении. Для таких серверов при перезапуске полезно сохранять старые подключения, направленные на старый серверный процесс, в то время как новый экземпляр сервера доступен для обработки новых подключений. Старые соединения со временем прервутся, и старый серверный процесс сможет завершиться. Это обычная и простая практика в мире TCP, где каждое соединение имеет свой собственный файловый дескриптор. Старый серверный процесс прекращает принимать (accept()) новые соединения и просто ждет, пока старые соединения постепенно исчезнут. У NGINX есть хорошая документация по этому вопросу.
К сожалению, в UDP вы не можете accept()
новых соединений. Выполнение изящных перезапусков сервера для UDP на удивление сложно.
Метод «установлено-не-подключено»
Для некоторых услуг мы используем метод, который мы называем «установлено-не-подключено». Это происходит от осознания того, что в Linux можно создать подключенный сокет *по* неподключенному. Рассмотрим этот код:
Это выглядит хакерским? Что ж, должно. Что мы делаем здесь:
— Запускаем несвязанный сокет UDP.
— Ждем прихода клиента.
— Как только мы получаем первый пакет от клиента, мы сразу же создаем новый полностью подключенный сокет, *над* неподключенным сокетом! Он использует тот же локальный порт и локальный IP-адрес.
Вот как это может выглядеть в ss:
[email protected]:~$ ss -panu sport = :1234 или dport = :1234 | кот Состояние Recv-Q Send-Q Локальный адрес: порт Одноранговый адрес: процесс порта УСТАНОВКА 0 0 [::1]:1234 [::1]:44592 питона3 UNCONN 0 0 *:1234 *:* python3 УСТАНОВИТЬ 0 0 [::1]:44592 [::1]:1234 н. з.
Здесь вы можете увидеть два сокета, управляемых на нашем тестовом сервере Python. Обратите внимание, что установленный сокет использует неподключенный порт сокета.
Этот трюк в основном воспроизводит поведение «accept()» в UDP, где каждое входящее соединение получает свой собственный выделенный дескриптор сокета.
Хотя этот трюк хорош, он не лишен недостатков — пикантен в двух местах. Во-первых, возможно, что клиент отправит более одного пакета в неподключенный сокет, прежде чем будет создан подключенный сокет. Код приложения должен обходить это — если пакет, полученный из серверного сокета, принадлежит уже существующему подключенному потоку, он должен быть передан в нужное место. Затем, во время создания подключенного сокета, в коротком окне после bind()
до connect()
мы можем получить неожиданные пакеты, принадлежащие неподключенному сокету! Нам не нужны эти пакеты здесь. Необходимо фильтровать исходный IP/порт при получении ранних пакетов на подключенном сокете.
Стоит ли такой подход дополнительной сложности? Это зависит от варианта использования. Для относительно небольшого количества долгоживущих потоков это может быть нормально. Для большого количества недолговечных потоков (особенно DNS или NTP) это излишество.
Сохранение стабильности старых потоков во время перезапуска службы особенно сложно в UDP. Техника установленного над неподключенным — лишь один из самых простых способов справиться с этим. Мы оставим еще один метод, основанный на SO_REUSEPORT ebpf, для следующей статьи в блоге.
Резюме
В этом сообщении блога мы начали с выделения подключенных и неподключенных сокетов UDP. Затем мы обсудили, почему сложно привязать UDP-серверы к подстановочному знаку и как IP_PKTINFO CMSG может помочь решить эту проблему. Мы обсудили проблему изящного перезапуска UDP и намекнули на метод установления соединения поверх отсутствия соединения.
Тип гнезда | Создано с помощью | Соответствующие системные вызовы |
---|---|---|
установлен | соединить() | прием()/отправка() |
установлен | привязать() + подключить() | recvfrom()/send(), следите за гонкой после bind(), проверьте источник пакета |
не подключен | привязка (конкретный IP) | recvfrom()/отправить() |
не подключен | привязка (подстановочный знак) | recvmsg()/sendmsg() с IP_PKTINFO CMSG |
Следите за обновлениями, в будущих сообщениях в блоге мы можем еще глубже погрузиться в любопытный мир производственных UDP-серверов.
Мы защищаем целые корпоративные сети, помочь клиентам построить Интернет-приложения эффективно, ускорить любой Веб-сайт или Интернет-приложение, защититься от DDoS-атак атаки, держать хакеры в залив, и может помочь вам в ваш путь к нулевому доверию.
Посетите 1.1.1.1 с любого устройства, чтобы начать работу. наше бесплатное приложение, которое делает ваш Интернет быстрее и безопаснее.
Чтобы узнать больше о нашей миссии по улучшению Интернета, начните здесь. Если вы ищете новое направление карьеры, ознакомьтесь с нашими открытыми позиции.
UDPПохожие сообщения
07 октября 2021 г. 3:20
Обновленная информация о недавних атаках VoIP: что мне делать, если меня атакуют?
Из-за продолжающихся атак, которые мы наблюдаем, мы делимся подробностями о недавних моделях атак, о том, какие шаги они должны предпринять перед атакой и что делать после того, как атака произошла. …
- К
Омер Йоахимик
, Вивек Ганти
, Алекс Форстер
ДДоС , DDoS-атаки с выкупом , Тенденции , ГЛОТОК , VoIP
08 декабря 2021 г. 1:59PM
Расширение платформы Cloudflare Zero Trust для поддержки UDP и внутреннего DNS
В прошлом году мы запустили новую функцию, которая позволила пользователям начать создание частной сети на Cloudflare. Сегодня мы рады представить еще больше функций, которые сделают миграцию с нулевым доверием проще, чем когда-либо….
- К
Эйб Кэррил
Неделя ИТ-директора , Облачная вспышка Один , Облачный туннель , Нулевое доверие , УДП
13 ноября 2021 г. 14:33
Cloudflare блокирует многовекторную DDoS-атаку со скоростью почти 2 Тбит/с
Ранее на этой неделе Cloudflare автоматически обнаружила и смягчила DDoS-атаку, пиковая скорость которой составляла чуть менее 2 Тбит/с — самая крупная, которую мы видели на сегодняшний день.