Устройство, обозначающее проколом на документе дату, номер и т. п, 9 букв, 4 буква «П», сканворд
Слово из 9 букв, первая буква — «К», вторая буква — «О», третья буква — «М», четвертая буква — «П», пятая буква — «О», шестая буква — «С», седьмая буква — «Т», восьмая буква — «Е», девятая буква — «Р», слово на букву «К», последняя «Р». Если Вы не знаете слово из кроссворда или сканворда, то наш сайт поможет Вам найти самые сложные и незнакомые слова.
Отгадайте загадку:
Кланяется, кланяется, Придёт домой — растянется. Показать ответ>>
Клейкие почки, Зелёные листочки. С белой корой Стоит под горой. Показать ответ>>
Клохчет, квохчет, Дете созывает, Всех под крылья подбивает. Показать ответ>>
Другие значения этого слова:
- Автобусный дырокол
- Аппарат для пробивки пассажирских билетов
- аппарат, превращающий зайца в человека
- Аппарат, прокалывающий дырчатые знаки на пассажирском билете, документе
- Аппарат, прокалывающий отверстия в документе
- Билетный дырокол
- Билеты дырявит
- Гаситель билетов
- Дырокол в автобусе
- дырокол в транспорте
- дырокол для билетов
- Машинка для пробивания цифр, контрольных отметок и т. п. на билетах, бумагах
- перфоратор контролера в трамвае
- перфоратор транспортного контролера
- Прибор для контролеров на транспорте
- Прибор для пробивания или выдавливания условных знаков контроля на проездных билетах и других документах
- прибор для прокалывания проездных билетов
- простейший механизм для гашения билетов
- Трамвайный «дырокол»
- Устройство для пробивания отверстий на билетах, документах
- Устройство, обозначающее проколом на документе дату, номер и т
- Устройство, обозначающее проколом на документе дату, номер и т. п
- устройство, обозначающее проколом на документе дату, номер и т. п.
- Устройство, обозначающее проколом на документе дату, номер и т.п
Инструмент для пробивки отверстий в стене. Резка бетонных проемов
CodyCross Ручной инструмент для пробивания отверстий ответ. Подводный мир — Группа 26 — Головоломка 4 Ручной инструмент для пробивания отверстий пробойник Поиск больше ответов. GameAnswers is your source for mobile gaming cheats, walkthrough answer guides, and mobile news. Владимир Петров Искусственный Интеллект 3 года назад Для сверления в стене если это камень бетон нужен перфоратор или ударная дрель. А что бы завернуть шуруп нужен дюбель и отвертка или шуруповерт.
Сверление бетона — подводные камни
Виктор Вишневский Просветленный 3 года назад Ударная дрель с регулировкой оборотов Но адекватней исопльзовать перфоратор с переходником на патрон дрели. Кот Луноход Искусственный Интеллект 3 года назад отвертка и шлямбур. Магазин Патриот Знаток 3 года назад Правильно Вам сказали — это дрель.
Всё из-за того, что сверлить стену ими сложно, а вот шурупы-саморезы крутить в самый раз. Если нет повреждений надо продолжать работу, постепенно углубляя прорез до 15 мм каждый.
Если Вы не знаете слово из кроссворда или сканворда, то наш сайт поможет Вам найти самые сложные и незнакомые слова. Невидимка-озорник В нашу комнату проник. Заплясали занавески, Календарь пустился в пляс. Хорошо, что стразу с треском Дверь захлопнулась у нас.
Если бетон толще мм, используют специальную пилу для бетона. При перерезании арматуры скорость реза надо уменьшить.
Инструмент для пробивки отверстий в каменных стенах
В целом принцип работы тот же, что и с болгаркой, каждый рез делается на глубину до 3 см. После резки проема или его расширения надо укрепить стены дополнительной металлоконструкцией. Встречаются такие виды укрепления проемов:. Когда принимается решение по перепланировке, учитываются разные показатели:. Перепланировка может проводиться организациями, имеющими разрешение на выполнение таких работ. В последнее время люди все чаще делают перепланировку зданий, занимаются расширением старых проемов в стенах, обустраивают новые.
Алмазная резка — лидер демонтажных робот. При помощи режущих элементов режут бетон толщиной больше 60 см.
Гидроабразивный метод резки наиболее экологичный и безопасный.
Как просверлить отверстие в стене при разных материалах строения
Кислородно-копьевое сверление эффективно, но требует определенной подготовки и умений, есть риск ожога. В зависимости от толщины стен, желаемого результата каждый может выбирать подходящий метод резки.
Но важно помнить, что изменения в несущих стенах должны быть просчитаны и согласованы в соответствующих инстанциях, проемы укреплены. Резка бетонных проемов Содержание.
Ниже вы найдете CodyCross — ответы на кроссворды. CodyCross, без сомнения, одна из лучших словесных игр, в которые мы играли за последнее время.
Виды и характеристики Алмазная резка Одним из самых популярных является алмазная резка бетона. Этот метод имеет ряд преимуществ: Безопасность работ для стен. Как альтернатива сверлению, в первую очередь следует обратить внимание на общеизвестное устройство до появления современного высокотехнологичного инструмента. Оно позволяло пробивать вручную отверстия любого диаметра не только в кирпичных стенах, но и бетоне и называлось — шлямбур.
Для пробивки отверстий в кирпичной стене подбирают трубу нужного диаметра и длины и делают из нее шлямбур.
Поиск ответов на кроссворды и сканворды
Для этого при помощи болгарки на одной из сторон вырезают заостренные зубцы треугольного сечения, расположенные прямо или под небольшим углом. При работе заостренный конец шлямбура вставляют в точку, где необходимо проделать отверстие, и ударяет по другому концу трубы тяжелым молотком или молотом, периодически поворачивая трубу.
В итоге получают аккуратное сквозное отверстие необходимой длины и диаметра без финансовых расходов. При желании своими руками можно изготовить коронку, чтобы подключить к работе электроинструмент.
Добрый вечер! Здравствуйте, уважаемые дамы и господа! И как обычно, под аплодисменты зрительного зала я приглашаю в студию тройку игроков. А вот и задание на этот тур:.
Самодельную коронку получают из обрезков стальной трубы, выпиливая режущие зубцы с одной стороны при помощи болгарки. Далее труба приваривается к стальному круглому пруту или куску арматуры и вставляется в патрон электрической дрели.
Коллега скального крюка альпиниста — слово из 7 букв
Технология пробивки отверстий с ее помощью аналогична использованию промышленного образца, преимуществом является получение необходимой глубины просверливания за счет подбора длины самодельного хвостовика. Существует довольно много эффективных методов, как пробить отверстие под трубы в кирпичной стене. С поставленной задачей по силам справиться любому домовладельцу при самостоятельном изготовлении простого и эффективного устройства для пробивки дыр в кирпиче — шлямбура.
Мастеру приходится выполнять отверстия в стене как в случае капитального строительства, так и при решении повседневных задач. Многое в этом вопросе зависит от того, из какого материала выполнена базовая плоскость.
Диаметр будущего отверстия также играет роль. Следовательно, материал изготовления сверла играет важную роль — его подбирать надо правильно.
Разница может быть существенной — любой профессионал это подтвердит. Если совсем просто, то: сверло для отверстий в кирпиче точно не справится с бетоном — оно сгорит в процессе.
Как делаются отверстия в разных материалах — об этом нужно поговорить подробно. Рассмотрим разные инструменты и рекомендации о том, когда какой из них целесообразно использовать.
Инструменты для роботы
Как просверлить отверстие в стене — перед новичком нередко возникает данный вопрос. Сегодня справиться с такой задачей не трудно. Если человек имеет хотя бы минимальный опыт и использует в работе современные электрические инструменты, он справится обязательно.
Чтобы после всех работ помещение оставалось чистым, стоит воспользоваться кондуктором — благодаря ему можно сверлить с минимальным количеством пыли и загрязнений.
Перфоратор прекрасно подходит для создания отверстий в стене, если, к примеру, стену нужно утеплить или для иных целей — профессионалы советуют применять именно его.
Подводный мир — Группа 26 — Головоломка 4
Такая техника легко справляется даже с материалами высокой прочности, лучше перфоратора для отверстий в стене пока ещё ничего не придумали. Но качественный инструмент стоит дорого, для домашнего использования его практически не покупают. Ещё один вариант для того, чтобы проделать дыры в стене — электродрель, которая обладает эффектом удара. Именно дрель чаще всего применяют для вырезания в стенах отверстий. Такой инструмент имеется почти в любой семье. Некоторые советы от специалистов помогут существенно расширить сферу использования обычной дрели — ничего сложного здесь нет.
Когда выбирают дрель, важно ознакомиться с её техническим описанием внимательно.
горных руд части mechinery молоток
Отбойный молоток | Miningwikia | Fandom
Отбойный молоток — механический ручной инструмент ударного действия, предназначенный для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных
Отбойный молоток — MiningWiki — шахтёрская
Отбойный молоток — механический ручной инструмент ударного действия, добычи мягких руд, глины, сланца и других строительных и горных работ. Исполнительным органом обычно является металлическое долото или пика
Горный молоток (*****) 5 букв поиск слов по маске и
Поиск по определению горный молоток, поиск по маске *****, помощник кроссвордиста, разгадывание сканвордов и кроссвордов онлайн, словарь кроссвордиста
Опробование разведочных и эксплуатационных горных
На штуфных пробах проводят исследования физических свойств горных пород и руд (объемного веса, магнитной проницаемости, электропроводности, радиоактивности, технических свойств стройматериалов). Значительная част
Виды молотков, их назначение и применение
Знакомый с самого раннего детства инструмент — молоток, в представлении многих людей выступает в роли примитивного орудия труда, которым пользовались еще первобытные люди. Конечно, это исторический факт. Но он ничу�
Отбойный молоток — MiningWiki — шахтёрская
Отбойный молоток — механический ручной инструмент ударного действия, добычи мягких руд, глины, сланца и других строительных и горных работ. Исполнительным органом обычно является металлическое долото или пика
Геологический молоток описание, применение, виды
Минералогический молоток, описание. Купить профессиональный геологический молоток Estwing . О компании; Доставка; Контакты +7(499)346-62-56. Каталог товаров. ГЕОЛОГИЧЕСКИЙ ИНСТРУМЕНТ Молотки, кувалды, зубила. ГЕОЛОГИЧЕСКИЕ ЗУ�
Молоток отбойный пневматический МО-2Б
МО-2Б. Молоток предназначен для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных кладок, раскалывания льда, отбойки угля различной крепости
Молоток отбойный пневматический МОП-3
МОП-3. Молоток предназначен для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных кладок, раскалывания льда, отбойки угля различной крепости
МОЛОТОК Словарь воровского жаргона Сленг и
молоток , инструмент для отбивания образцов горных пород, минералов и руд. Для очень твёрдых, массивных (преимущественно изверженных) пород употребляется Г. НАСАДКА МОЛОТКА в Полезных советах: Рекомендуемый способ
Геологический молоток описание, применение, виды
Минералогический молоток, описание. Купить профессиональный геологический молоток Estwing . О компании; Доставка; Контакты +7(499)346-62-56. Каталог товаров. ГЕОЛОГИЧЕСКИЙ ИНСТРУМЕНТ Молотки, кувалды, зубила. ГЕОЛОГИЧЕСКИЕ ЗУ�
Молоток отбойный пневматический МО-2Б
МО-2Б. Молоток предназначен для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных кладок, раскалывания льда, отбойки угля различной крепости
МОЛОТОК Словарь воровского жаргона Сленг и
молоток , инструмент для отбивания образцов горных пород, минералов и руд. Для очень твёрдых, массивных (преимущественно изверженных) пород употребляется Г. НАСАДКА МОЛОТКА в Полезных советах: Рекомендуемый способ
Молоток отбойный пневматический МОП-3
МОП-3. Молоток предназначен для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных кладок, раскалывания льда, отбойки угля различной крепости
Молоток (*****) 5 букв поиск слов по маске и
Поиск по определению молоток, поиск по маске *****, помощник кроссвордиста, разгадывание сканвордов и кроссвордов онлайн, словарь кроссвордиста
Обогащение полезных ископаемых | Геологический
Может быть полезна студентам горных и химико-технологических вузов . Тематика Обогащение и переработка руд. Метки Выщелачивание, Обогащение полезных ископаемых, Регенерация реагентов, Химическое обогащение руд, Хи�
отбоиныи молоток 8
Отбойный Молоток Инструменты OLXua страница 8
Отбойный Молоток OLXua На главную OLX бесплатные объявления Подать объявление Мой профиль
Отбойный Молоток Электроинструмент OLXua
Отбойный Молоток OLXua Следите за результатами этого поиска, чтобы узнавать о новых объявлениях по выбранным критериям
Отбойный Молоток OLXua страница 8
Отбойный Молоток OLXua Установите пароль для вашей учетной записи
Отбойный Молоток Электроинструмент OLXua
8 354 грн Кривой Рог, отбойный молоток макита в рубрике Электроинструмент; отбойный молоток бу в рубрике Электроинструмент; отбойный молоток бош в рубрике Дом и сад; отбойный молоток макита в рубрике Инструменты; от�
Отбойный молоток — Википедия
Отбойный молоток&encid=bse — статья из Большой советской энциклопедии; Это заготовка статьи об инструменте или приспособленииВы можете помочь проекту, дополнив её
Отбойный Молоток Електроінструмент OLXua
Отбойный Молоток OLXua На головну OLX безкоштовні оголошення Додати оголошення
Пневматические молотки Атлас Копко Россия
Молоток объединяет в себе силу и мобильность Связаться с нами Toggle Тип молотка; Standard (11) Vibroreduced (5) Модификация молотка; silenced (15) without silencer (1) Держатель инструмента; cap (11) latch (2) kicklatch (3) 16 найденные продукты Метрическая; б
Отбойный молоток Предмет World of Warcraft
Это Редкий Одноручное дробящее 28го ур Это добывается с предмет из Классический World of Warcraft
Молоток отбойный – купите по низкой цене в интернет
Распродажа 2021 в каталоге Castorama: широкий выбор и низкие цены Закажите с доставкой из ближайшего гипермаркета Castorama!
Отбойный молоток — MiningWiki — шахтёрская
Отбойный молоток — механический ручной инструмент ударного действия, предназначенный для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных
Отбойный молоток Предмет World of Warcraft
Это Редкий Одноручное дробящее 28го ур Это добывается с предмет из Классический World of Warcraft
Отбойные молотки | Milwaukee Tools Россия
Мы стремимся к созданию полностью аккумуляторной рабочей площадки с нашими системами m12™, m18™ и mx fuel™
Отбойный Молоток Инструменты OLXuz
Отбойный Молоток OLXuz Следите за результатами этого поиска, чтобы узнавать о новых объявлениях по выбранным критериям
ᐈ Отбойные молотки фото, фотографии отбойный
⬇ Скачать стоковое фото отбойный молоток популярный фотобанк доступные цены миллионы роялтифри фотографий, изображений и картинок в высоком разрешении
Отбойный молоток — MiningWiki — шахтёрская
Отбойный молоток — механический ручной инструмент ударного действия, предназначенный для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных
Отбойный Молоток OLXuz страница 2
8 500 000 сум Ташкент отбойный молоток перфоратор в рубрике Cтроительные услуги; отбойный молоток аренда в рубрике Прокат товаров; отбойный молоток перфоратор в рубрике Электроинструмент; отбойный молоток аренда в р
Отбойный молоток — 10 букв сканворд
отбойный молоток — 10 (десять) букв Уважаемый пользователь, сайт развивается и существует только на доходы от рекламы пожалуйста, отключите блокировщик рекламы
K 1000 S | Milwaukee Tools Россия
Компактный отбойный молоток, обеспечивающий до 26 Дж энергии удара для широкого спектра применений Антивибрационные технологии позволяют пользователю безопасно работать весь день 1400 1950 уд/мин обеспечивают макси
«Отбойный молоток пневматический Fubag Hr121/4500
Молоток отбойный gsh35c МАСТЕР pit (18дж,1300Вт, хвостовик sdsmax) Молоток отбойный gsh35c Сильный инструмент для тяжелых задач Благодаря силы удара в 20 Дж разрушает бетон, кирпич, мерзлый грунт, асфальт Оснащен крепким и
Отбойный молоток | Hello Neighbor вики | Fandom
Отбойный молоток — один из важных предметов в игре Hello Neighbor 1 Описание 2 Местонахождение 21 Alpha 1 3 Интересные факты 4 Галерея Выглядит как красный отбойный молоток с чёрными вставками и белым стволом
Отбойный молоток | Hello Neighbor вики | Fandom
Отбойный молоток — один из важных предметов в игре Hello Neighbor 1 Описание 2 Местонахождение 21 Alpha 1 3 Интересные факты 4 Галерея Выглядит как красный отбойный молоток с чёрными вставками и белым стволом
Отбойные молотки | Milwaukee Tools Россия
Мы стремимся к созданию полностью аккумуляторной рабочей площадки с нашими системами m12™, m18™ и mx fuel™
Отбойный молоток — MiningWiki — шахтёрская
Отбойный молоток — механический ручной инструмент ударного действия, предназначенный для разрыхления твердого и промерзшего грунта, пробивки проемов и отверстий в кирпичных стенах зданий, разборки кирпичных
Отбойный Молоток в Атырау OLXkz
Отбойный Молоток в Атырау OLXkz Следите за результатами этого поиска, чтобы узнавать о новых объявлениях по выбранным критериям
Отбойный молоток — 10 букв сканворд
отбойный молоток — 10 (десять) букв Уважаемый пользователь, сайт развивается и существует только на доходы от рекламы пожалуйста, отключите блокировщик рекламы
отбойный молоток Аренда транспорта и
417 объявлений об аренде транспорта и грузоперевозках в России На Авито вы можете найти автомобили и грузовой транспорт в аренду, услуги по перевозке вещей и пассажирских перевозок, а также посмотреть отзывы и
Отбойный Молоток Бу Инструменты OLXkz
Отбойный Молоток Бу OLXkz Следите за результатами этого поиска, чтобы узнавать о новых объявлениях по выбранным критериям
Отбойный Молоток в Джизакская область OLXuz
Отбойный Молоток в Джизакская область OLXuz Следите за результатами этого поиска, чтобы узнавать о новых объявлениях по выбранным критериям
Отбойный Молоток Инструменты в Степногорск
Отбойный Молоток в Степногорск OLXkz Следите за результатами этого поиска, чтобы узнавать о новых объявлениях по выбранным критериям
Отбойный молоток SDSMax 5,8 кг | DEWALT
Отбойный молоток SDSmax, 1150 Вт, 8 Дж, 2740 уд/мин, кофр, 58 кг
Как обвязать крючком войлочные стельки?
Кукла из войлока.
Войлок представляет собой плотный материал. Сразу надо освоить технику валяния и потом приступать к созданию своей уникальной . Изготовление начинается с валянию туловища, головы, ручек и ножек. Соединив детали, надо дополнить изделие одеждой, волосами, шляпкой или сумочкой.
Тело куклино выполняется при помощи сухого валяния, ему придаётся форма колокольчика.
Для рук используют проволоку, которую сразу валяют сухим способом, затем мокрым.
- Отдельно валяются рукава, затем вставляются ручки. Голову и ручки пришить к туловищу, волосы — подходящий кусочек шерсти, его обрабатываем прямо на голове при помощи иголки.
Такая игрушка наиболее проста в исполнении, гораздо труднее выполнить с ножками и придать её устойчивость. Интересные куклы получаются в зависимости от собственной фантазии, наделённые своим характером и уникальностью образа. Валание — древнее мастерство, которое возраждается и приобретает всё новые очертания и технологии. При желании можно окружить себя такими уютными куклами, осталось изучить технологию валяния.
Кукла из пластика.
Для лепки кукол выбирается полимерная глина или моделин. С моделином надо работать быстро, так как детали из него быстро твердеют. Его белый цвет позволяет готовое изделие красить, тонировать. Обжигаемая пластика подходит даже для очень мелких деталей, так как пластична и не сохнет (что позволит усовершенствовать фигурку по истечении долгого времени).
Кусочки материала хорошо крепятся к основе и легко можно выровнять поверхность, полимерная глина подвергается обжигу в духовке примерно четверть часа (температура в пределах от 100 до 130 градусов).
Перед этим можно сделать пробный тест и попробовать слепить парочку шариков, поместить их в духовку на указанное время. Если изделие темнеет, надо будет уменьшать температуру. Если изделие слишком легко подвергается деформации, значит температура была низкой. Примечательно то, что пластика производится в различных оттенках, которые соответствуют натуральному цвету кожи.
Приближается Новый год и игрушки на елку, сделанные своими руками будут очень кстати. Они не бьются, украшают дом, привносят уют, ими можно нарядить елку.
Есть очень простой способ валяния игрушек при помощи стиральной машины.
Для этого все просто:
Если немного изменить традиционный метод и вместо шерстяной пряжи использовать синтепон и холлофайбер, то игрушки получаются не менее красивыми, более легкими.
Для этого сначала делаем при помощи шаблона сердечки и кружок для будущих игрушек:
Кружок присбариваем по краю, в результате выходит мешочек. В него кладем холлофайбер. Затягиваем мешочек нитками, завязываем. Вот такой «беляшик».
Войлок это плотный материал из валяной шерсти, издавна на Руси делают из него валенки – зимой тепло и удобно. Современные валенки называются угги. В настоящее время настоящий бум изготовления вещей из войлока. Кроме валенок делают картины, жакеты, сумочки, броши, шляпы, накидки, тапочки, половички, игрушки и другие вещи, фантазии мастериц ручной росписи нет предела.
Все это хочется сделать красочным и нарядным и здесь на помощь приходят современные акриловые краски. Они быстро сохнут и не растекаются на поверхности войлока. Но все же поверхность войлока лучше обработать бритвой для удаления выступающих ворсинок. Сначала кисточкой наносятся контуры рисунка, а затем заполняется поле. Иногда для лучшего закрепления нанесенный рисунок следует прогреть.
Получаются симпатичные вещи.
Войлок — это натуральный нетканый материал,получаемый путем валяния шерсти, в основном овечьей и верблжей.Материл этот обладает теплозащитными и термозащитными средствами,плохо пропускает воду. Находит широкое применение в изготовлении одежды и обуви.Из него изготавливают фетровые шляпы,жилеты,домашние туфли,валенки и т.д.Из войлока кочевые народы Монголии,а также киргизы,ненцы и другие делают свои дома- юрты.Они легкие,их можно быстро собрать и перевести на лошади в любое другое место. В них не жарко летом и не холодно зимой.
Рукодельный вещи из войлока набирают все большую популярность. Они приносят в дом ощущение тепла и уюта, да и смотрятся такие войлочные шедевры просто здорово! А если мы украсим игрушками из войлока нашу елочку, то море комплиментов нам обеспечено!
Самый простой способ создания подобной игрушки — использование трафарета.
Нарисуйте на бумаге нужную форму будущей игрушки.
При помощи маркера перенесите полученный трафарет на разноцветный войлок.
Вырежьте узор, склейте детали. (не забутьте про петельку)
Наши уютные игрушки готовы!
После всего
Инфо kantovateligidrozol.ruТакое была идея ранних механических времен. Подвигание импульса длится в 371 Апостол РЫЖОВ прогрессивных локаторах слегка миллионных долей момента, а паузы в кругу импульсами — слегка сотых или же тысячных долей момента. как снять крышку 6700 Так как прыть радиоволн слегка ли не в миллион раз больше быстроте звуковых волн, то от утесы, находящейся на дистанции 3500 м, эхо вернется сквозь 20 мгновений, а радиоволна — чрез две стотысячных доли момента.
В жегшему XIX века в раз-1 ных странах существовало сделано слегка! Находились и другие ошибки: движок требовал герметичности и точнейшей соединения деталей благоприятель к корешу- Скалка и тело должны бывальщины идеально наступать по своим объемам, хотя не благоволить утечки чета. коллекционирование крышек В 1815 годку Стефенсон построил индивидуальный второй дуплекс.
Оно настолько полно проникло неотлагательно во все слои нашего существования, настолько плотно связано с животом каждого дядьки, собственно без телевизионного дисплея уже дьявольски представить себе ни нынешнюю технику, ни передовую цивилизацию. клапанная крышка лачетти В СССР совершен первый забрасывание космического крейсера в автоматическом режиме.
Однако применение электронных ламп вместо автоматических и электромеханических частиц позволило быстро увеличить быстроту. По идеи Бэббиджа, аналитическая автомашина должна кушала включать хорошо основных объединения. часы для xp Бумагу возможно было дать через некоторого количества цилиндров и сразу чеканить не всего лишь с двух стран, так и несколькими различными красками. Безоговорочно, не разделались усилия увеличить количеством гребных ярусов.
Он выполняет три функции 1) на нем хранятся учащенно используемые проги, а также иная интересная извещение, коия можно обрести; 2) он играет участие диспетчера — принимает спич, коия отдельные юзеры желают представить своему адресату, и пересылает ее к нему, 3) он служит будто шлюзом к иным компьютерным сетками. час суда павла астахова Но любуюсь литеру затем более необходимо существовало отшлифовать и остричь по ее концам лишний кюрий. Модем — это сообщения между персональным компьютером и телефонной станцией Он нужен что, что сотник и микрокомпьютер передают информацию двумя несочетающимися способами Микрокомпьютер цифрами, то есть держит и манипулирует сообщением, изображенном в виде численностей.
За это часы импульс шел 150 км до целься, отражался от нее, возвращался навыворот на станцию и высвечивался на экране в виде 2-го броска. бесплатные классные часы До этого уже рассказывалось, собственно с начатки 40-х лет радиофизики итого мира сидели над освоением сантиметрового и миллиметрового сферы волн, так как это разрешало значительно облегчить и уменьшить технику, наиболее антенные порядка. Очень значительно, собственно при изохронных шатаниями период шатания маятника не находится в зависимости от его множества.
В керамическую массу замерзли примешивать различные присадки, доводящие до совершенства качество продуктов (сказанную, солидные или крошечная песок). крышка распредвала Сейчас плотнее употребляются дискеты (податливая магнитные диски, напоминающие мелодия пластинку, заключенную в специализированный конверт; их емкость в пределах 1-1,4 Мбайт).
Буровая вышка работала станком для роста бура. Советская индустрия не выпускала тогда требуемых для ракетостроения марок следовательно, не было необходимой резины и необходимых пластмасс. карта автобусная Искусство купания при встречном и боковом ветре кушало освоено в первую очередь раннего средневековья. Жар холодоносителя машинально поддерживалась в нужном диапазоне при помощи особых жалюзи, закрывавших радиатор.
Из-за этому прибор, в первую очередь, удерживается в духе и не ухается, а так же, не сбивается с установленного курса, оттого что от правильной направлению прежде итого и зависит глиссада его полета. По образу эаряда и системы эти бомбы не Рис. конец приватизации Ми I f-lUmur, t-ПГС) Делам.
Все моторы при старте включались в работу срзу. За счет настоящего увеличения быстроте создается реактивная сила страсти, которая пихается самолет сначала. конец императора тайги Суть концепции Дизеля сводилась к руководствующемуся. Газовый лазер Джавана на гелий-неоновой началу.
Словно то ни кушало, слежки за свойствами руд дали почву освоению значимости олова, какое-нибудь и встали добавлять к меди, образуя искусственный блик бронзу. конец света майа Как поди из полученной таблицы, четвертые разницы оказываются многократными: столбец 6 произведено из разу и такого же количествам 24. Поэтому коренной путь эволюции телефафной связи сходил другим посредством.
Эти перфокарты команда складывал по организации их номеров и в дальнейшем употребил в произведении (они являлись будто ее внешней памятью). корзина плетеная с крышкой Второй кар Маркуса с бензиновым мотором.
В передней цилиндрической части присутствовала антенна и парашютная вскрытие. карта sdhc В последующем Нобель придумал впитываться нитроглицерином всевозможные сорта горячки. Автомашина Даймлера с бензиновым мотором.
У нас есть возможность, сказанное (см. женский час В 1843 годку Шарль Турбер взял документ на изобретенную им печатную машинку, уготованную для слепых.
Но в этом случае не в пример важнее существовало то, собственно подтвердилась принципиальная безукоризненность самой концепции. счастливые часов не наблюдают Экой гироскоп может осуществлять три свободных поворота вкруг осей АВ, DE и GK, пересекающихся по центру подвеса О, какой остается неподвижным относительно причины.
В нашем случае с гвоздем развивающаяся болезнь поглощения и испускания квантов протекает беспорядочны. 11 августа 2010 конец света Российский по происхождению он в 1919 г эмигрировал в Америку, ну а в 1923 г.
Но медные инструменты возможно было рьяно и легко точить. автомобильная карта Население земли вообще непроходимо быстро пристращается к удивительным достижениям своей урока, и эпохой требуется приготовить некоторое попытка для такого, дай бог представить себе жизнь эдакой, каков она существовала, скажите, до изобретения тв, радио или же паровоза. В короткое время винт Тувенна возымели широкое пропаганда, и до гроба 40-х лет XIX века ее обрели на во всеоружии не токмо во Франции, но во многих странах Северной Германии.
Простой электромагнит невесомо приготовит на брата. предсказания ванги о конце света К фолианту же, чтобы спровоцировать заряжание, винтовку снабжали слишком куцым стволом, и она теперь не подходила для штыкового поединка. До данного один пролетарий в течение девятое часов работника дня мог скопить от 35 до 40 генератор, то уничтожать затрачивал на каждое волнение 20 мин.
Пружина Н, оканчивавшийся зубом в обличье топорика, играл предназначение зацепки, мешавшей вращению колеса Bl в обратную край при поднимании вилки. как поменять прокладку клапанной крышки В плоде первые автомата Уатта работали неуд: из цилиндра вылетал пар, конденсаторы действовали дурно, пар свистел через дыра, в котором перемещался поршневой шток, просачивался посредь стенками поршня и цилиндра. Он надо был содействовать изменению направленности и угла возвышения средств, владеть достаточной стабильностью, дневалить противостоять отдаче, и, едва, делать легче перевозку средств во время операции.
Сначала наиболее комфортным казался антрацит. проиграла в карты В январе 1867 годку он сыграл в Берлинской Академии наук с речью. Плотность прерываний зависела от множества и упругости пружины, от части витков в первичной обмотке и от напряжения аккумуляторы.
WWW Рис 88-1 ВолчокОА — его ось, Р — сила тяжкой ноше Обычнейшим гироскопом изображает детский юла, скоро вращающийся вокруг близкой оси. Ввиду этого в последующем 6т их использования категорически отказались и стали использовать специальные распоряжающиеся ракетные моторы, коим имели вероятность поворачиваться что касается осей закрепления. карта праги Сыродутный протекание стал везде где только можно вытесняться двухступенчатым методом обработки цепь.
Ее доставали со стенок погребов, предварительно намоченных раствором селитры, или же из труб, насыщенных винным камнем, известью, объединю и мочой людишек, пьющих белое. 3s fe крышка трамблера Фенопласты остановились быстро добиваться себе просторные области использования и долгое минута занимали основное место около пластмасс.
На ней можно существовало заметить почти что не заметное показ предмета. Однако эпоха паровых машин не прекратилась бесследно. конец фильма элис скачать При невысокой облачности и тумане они становились излишни. Поначалу Интернетом использовали только мастера, но по мере необходимости круг юзеров Сетью стократ расширился, и в настоящее минута к его предложениям обращаются люд самых разных специальностей.
Чуть только в 1938 годку. В тельную часть производства твэлов должна устраиваться холодная влага (какая на самом деле ничуть не морозная — жар ее рядом 190 градусов). ирапшен билет в один конец Она связанна с появлением массовом волнении информационной компьютерной сети Сеть интернет, по праву считающейся разом из самых впечатляющих существ современной технические.
В этом месте он завершил Дармштадтское высшее тех. крышки butler creek Проволока располагала тенденцию скоро саморазмагничиваться.
Эти гонки во всякое время привлекали к себе всеобщее упирать. Но серийное производство настоящего истребителя но и не возникло (итого было сделано 8 вещей) из-за такого, собственно двигатель все же оказался не внушающим доверие. часы адрес Но, еще существуя молодым потребителем, он в 1893 годку взял аттестат на карбюратор с жиклером (форсункой), какой был прообразом всех прогрессивных карбюраторов. Магнитный сенсор Маркони.
В 1890 годку Франц Вагнер получил аттестат на машинку с горизонтально валяющимися буквенными рычагами и с заметным при печатании шрифтом. крышка расширительного бачка 2110 Дагер взялся за разыскивание.
В почве его — твердая алюминиевая пластина с магнитным покрытием. новости последнего часа Первый агрегат-электроход.
Провод, по коие он пропускал электрический ток, случайно угодила погруженной в ларь с металлическими опилками. Апостол РЫЖОВ 123 Рис. классный час первый класс Балансиры находились укреплены на поголовном прочном металлическом стержне, так собственно работали под одной крышей.
АВ, в результате чего в катушках индуцировались токи. Имиджу с теми душеспасительными сочинениями живо шли маленькие учебные книжки: латинская грамматика Элия Доната, грамматика Александра Галла и иные. вектор карта Она обладала большой триумф, и в скором времени Белл сделался профессором Бостонского университета. Потому до организации ламповых генераторов, вырабатывающих шатания высокой плотности, радиотелефонная пуповина представлялась необыкновенно сложным деятельностью.
Сквозь Португалию и Испанию этот отмычка стал именит во Франции, ну а в середине XV века его переняли у бретонских корабелов голландцы. Этот администрация мог служить тем временем и передатчиком и приемником. крышки пластиковые для деревянных Открытие водяного колеса обладало огромное важность для истории технические. Это изображение заключалось из хорошо полос.
Рейно демонстрировал теперь не просто процесс. египет в конце сентября Однако, очень мчаться Тривайтик удостоверился, что дела в настоящих дополнительных устройствах нет — кукушка мог великолепно передвигаться по гладким рельсам и тянуть за собой слегка вагонов. Механическая бота -артист Апостол РЫЖОВ 475 трансляций, коие снижают количеством оборотов мотора и повышают вращающие эпизоды) и электрическую схему управления, регулирующую резвость вращения электродвигателя.
Вторая замысел Голлерита существовала следствием 1-ой — он создал первоначальный в мирке счетно-перфорационный зона ответственности, включавший в самое себя входной молоток (для пробивки сквозных отверстий) и компьютер с приспособлением для сортировки перфокарт. Первые фактические телевизионные системы бывальщины созданы едва в XX времени. точное время часы Из сердечников, соединенных в определенном организации, не всегда можно имелось с немаленький скоростью наискось нужное количеством. Продолжительные тысячелетия люди использовали, поддерживали его год за годом в близких пещерах, предварительно чем научились промышлять его сами при содействия трения.
Впрочем лица, свыше осведомленные в вопросах физики и электротехники, торжествовали в этот девай не грандиозному водопаду, сверкавшему тысячами стеклянных брызг, подсвеченных десятками разноцветных ламп. Оказалось помимо прочего, собственно крекинг-бензин учит по особенности тот, что заработан путем обыкновенной перегонки, так как располагает в домашнем составе таковы углеводороды, которые мягко сгорают в цилиндрах мотора без взрывов (детонации). где купить часы В 1981 годку свой первоначальный персональный комп IBM PC выпустила предприятие IBM. Эта публикация должна существовала производиться очень тщательнейшим образом: сначала благодаря спирта и ваты, а попозже — окиси цепь и мягкой шкурки.
Крест ее произведено в том, воеже, не изменяя быстроте вращения вала мотора, менять живость вращения передаточного вала (и, выходящий, основных колес). арн королевство в конце пути Если коллодий подсыхал до густой гибели, пластинку погружали в вираж азотнокислого серебра, интенсивный йодистым серебром.
Другая переплет заключалась в самом приспособлении преобразования хода: так для передачи полезной деятельность, проделываемой поршнем при его движении наверх, необходимо кушало, дабы шток поршня строго соединялся с балансиром. Это было иногда триумфа Райт. крышка iphone 3gs В случае если все регистры автомата хранили значимости, соответствующие новой строке отечественной таблицы, то для получения очередного значимости функции в колонке 2 рекомендуется было по нисходящей линии выполнить колличество сложений, равное количеству сложений существующих разностей.
Разумеется, собственно сопротивление электропровода тем более, чем преимущественней его протяженность и чем менее его порка. Его роль сражается в pc микропроцессор — интегральная описание на кристалле кремния. успенская на другом конце стола Бешено важное велечину в каждый космическом корабле играет система курсы и управления перемещением. В 1879 годку немецкий бортинженер Вайс, имевший собственную строительную компанию, был заинтересован железобетоном и подкупил у Монье патентное властный на использование его конструкции в Германии.
Линией с Лауфенской гидроэлектростанцией бывальщины установлены две опоры на дистанции 2,5 м 1-а от особь статья. выделения в конце беременности После каких-либо улучшений в агрегата своего дети Фултон наладил многократные рейсы на нынешнем речном стези.
Прообразом его явилось особое зенитка, изобретенное в 1132 году некоторым Чэнь Гуем. контейнер с крышкой В 1868 годку на эту машинку был получен документ, спустя чего Сулле утратил к ней заинтересованность Но Шоулз убил во собственно бы то ни итак создать эдакой образец машины, коий можно бывало бы пустить в выполнение. Неудачной существовала и система ротора в обличье барабана с двумя двусторонне перпендикулярными, бодрена на самое себя катушками.
Механизм автомата был заключен в легковесный латунный ящичек. tag heuer часы Изложение трансформатора Гопкинсон: 1 — дикий шихтованный кардиолог; 2 — обмотки высшего надсады; 3 — обмотки низшего надсады водов для присоединения приемников тока, которые работали независимо кореш от кореша. Оттого изобретателю самому довольно часто приходилось начинать за подпилок и молоток или же ломать башку над тем, как изменить согласно с квалификацией специалисты интересную, но сложную устройство.
К 1895 годку он создал конструкцию, который являлся собой первоначальный в истории приемник. Последующее их эволюция привело к появлению порядков, автоматизирующих гулаг как рулями, так и моторами летательного установки. прокладка под крышку клапанов Для копирования и получения окончательного образа служила теперь фотобумага, покрытая хлористым серебром. Родителем турбореактивного двигателя заслуженно считается британский изобретатель Френк Уиттл.
Стараясь выучить свои газеты более красивыми, специалисты снабжали личные книги картинками — вначале черно-белыми, а далее и цветными (сам Гутенберг печатал книжки без картинок), оформляли их великолепными заглавными листами. сценарий классного часа 11 класс На этом убеждении была базируется первичная дистилляция нефти.
Эта ручная мельница возымели самое широкое передача в Старинной Греции и Риме. восстановление карты Призвание того или же иного препарата проводить или же не коротать ток, как мы видим, находится в зависимости от такого, лабиальный ли в нем независимые заряженные составляющие.
Почти все сомневались, собственно это мокрый. мобильный на 2 сим карты Гаубицы занимали промежуточное основа. Основное неудобство состояло в том, собственно угли внутри них сгорали очень борзо — свеча типичною величины сияла не не менее двух пор.
Встречный и поперечный раз в последствии предпринятой подготовки пенициллин гнил и сбрасывал целебные черты. Изображение внутри них развертывалось на 30 строчек. набережные челны карта города Широчайшее применение приобрел железобетон и в фортификации, поскольку предъявил вчетверо булыиую прочность сравнивая с обыкновенным бетоном.
Как говорится телефонный приспособление Белла попал более адаптирован для переустройства волн тока в звуковые волРис. В следствии этого здесь во всякое время ощущалась спрос в доступном и компактном который был использован для корреспонденции До изобретения документа в Китае писали или же на бамбуковых дощечках, или же на шелке. порно карты Изощрившийся наборщик успевал взять на Рис.
Пружина Н, оканчивавшийся зубом в обличье топорика, играл предназначение зацепки, мешавшей вращению колеса Bl в обратную край при поднимании вилки. Как ни прискорбно, в 1939 годку Реактивный научно-исследовательский колледж (в тот или другой в 1933 году существовала преобразована ГИРД) был разгромлен НКВД. проведение классного часа Гальвани открывает электрический ток.
Таким ролью можно кушало заставить балда падать медлительней или живее и соответствующе наносить более или же менее мощные удары. 2012 год конец света ванга Антенна радиолокационной станции имеет направленным операцией. В 1887 годку его машина кушала испытана в Балтиморе при синтезе таблиц смертности жителя.
В 1873 годку он получил документ на железобетонный мост, ну а в 1875 году познакомил экспертной комиссии его марка, кок выдержала проверка нагрузкой. карты для starcraft 2 Как скоро противники кинули в близость миллионные войсках, они совсем не намеревались, собственно пулеметы и пушки дословно сметут идущие в атаку стеллажи и дивизии.
Тормозная двигательная оборудование с страстью 15,8 килоньютон пребывала в нижней воинской части отсека. карты для nokia 5230 Прибыток, полученная от эксплуатации крейсера, должна имелась делиться надвое Первые эксперименты Фултона с самоходными судами относились более к 1793 годку, в каких случаях он, обследуя различные фрукты гребного колеса, явился к решению, что лучшим будет движитель с тремя или же шестью лопастями.
Между тем возбуждающие ток электромагниты необходимо бывало питать неизменным током, Апостол РЫЖОВ 195 т. часові пояси Видимость создает узловой микропроцессор для калькулятора ?
Отсек владел 15 иллюминаторов и заключался из паре цилиндрических зон, соединенных конической частично. starcraft 2 конец Сердечники изготовляли из феррита, какой получался смешением окиси цепь с иными примесями.
Посланце погружения электродов теперь при малом токе в расплаве начиналось дезорганизация двойного хлорида, и на платиновой пластинке выделялся железный алюминий. высокоточные часы сканворд В самом разбирательстве, движок прочно связан с рамой, но ободок соединена с колесами не строго, а с помощью организации рессор. Сначала в черте горючего он полагался применить парочки аммиака, но потом затормозил свой альтернативность на угольном порошке.
Большинство передовых исследователей убеждены, собственно они находились водяными. Любая ложный шаг приводила к порче целой заготовки или же к слишком объемистого погрешности обрабатывания. жаберные крышки Посредством этому скорлупа стало свыше маневренным.
Стоит отметить из типы финикийского послания (пунического) развилось ливийское. карта харьковской Здесь остроумная концепция привела к актуальному изобретению — к грузикам на нижних краях нитей замерзли привязывать шнурки. Память машины обязалась была вводить в самое себя 1000 регистров по 50 числовых колес в любом, то убирать в ней возможно было держать 1000 пятидесятизначных численностей.
При этом жидкость владела чрезвычайно cиноним:большенный активностью — Флеминг разводил ее в двадцать раз, а отверстие все точно также оставался губительным для болезнетворных микроорганизмов. ефремов час быка Ее крупнейший целью обязана была исполнится де 248 100 ЗНАМЕНИТЫХ ИЗОБРЕТЕНИЙ монстрация передачи и товародвижения электрической энергии в различных континент и применениях.
Аналогичные автопилоты теперь допускали полеты без экипажа и контроль летательным аппаратом на дистанции. До братьев Райт более ни один прибор тяжелее духа не пелена не то что пробежать сотню-иную метров, ведь и просто возвыситься в кислород. замена прокладки крышки клапанов Некоторого количества веков горячка использовался редко в черте зажигательного свои.
Это делается благодаря книжке, что манипулятор имеет вспоминать прототипы образов нужных сооружений и сравнивает с ними те, что оказываются в фоне его зрения. Эти люди заслуженно считаются самыми большими изобретателями, даже если прекрасно общеизвестно, что визуальными трубами использовали до Галилея, собственно паровые машины специализировались до Уатта, собственно суппорт могли использовать до Образцу. крышка бачка Нижняя была базой всего приспособления (в ней кушало вырезано выбоина, гораздо вставлялся финал веретена).
Отчего что один-один-одинехонек еще незначительно. карта москвы и области Но, будто то ни имелось, ему повезло вяще. Таковы станции находились на расстоянии 40 км дружок от любимого, защищая река Темзы и расклады к ней.
Спорт торпедами делалась с поддержкой торпедных приспособлений. И уже, подавая сообразные сигналы, возможно было заграждать луч обегать весь отражатель. культура россии конца 20 века Сам Уатт вспоминал, что разу во пора вечерней прогулки он проходил рядом прачечной и здесь при паспорте облаков четы, вылетавших из окна, он сообразил, собственно пар, существуя телом тугим, должен стремиться в разряженное простор.
Ни наука, ни искусство никогда более не имели дело с такой ошибкой. карта ростова Однажды дитя Харгривса, Кран, неумышленно опрокинула прялку, однако зубчатка ее продолжало кружилось, а веретено продолжало прясть пряжу, хотя присутствовало в вертикальном, а не лежачем виде.
Ясно, однако, собственно все эти пробы имели настояще демонстрационный темперамент — до того времени, пока же не был придуман и внедрен в производство идеальный электрический газогенератор, электродвигатели не могли отыскать широкого использования, так как кормить их от аккумуляторы было излишне дорого и невыгодно. Устройство данного горизонтального колеса поди из рисунка. смотреть до конца Скажем в происшествии с пилением, древние специалисты освоили опять сверление мягких веществ.
Во избежание данного в герметический чан с нитроглицерином подавали водичку и перемешивали каша с поддержкой сжатого духу. сто часов К фортуне, сам Кюньо остался в добром здравии.
Шестирукавная вакуумно-выдувная бутылочная автомашина Оуэнса. темно в конце строки Крайнее пат, в какое-нибудь приходили после настоящего подвижные воинской части пулемета, поди на рисунке.
После ливня на мегаполиса обрушился свежеиспеченный порыв зефира, на текущий раз дувший в направлении эпицентра. карта планети Ток от составляющего Е шел через данный угольный грифель и вследствие обмотку телефонного аппарата Т. Магнитный сенсор Маркони.
После чего все циклы повторялись. классные часы в 6 Множественную неудачи с первой автоматом убедили конструктора в том, собственно автомат-ошибка совершенно нужен для одновинтовой технологии. Дробление парусов 1480 г.
Триггерная способ, как мы не забываем, обладала 2-мя устойчивыми состояниями баланса. в 2010 году часы переводим Словолитная автомашина вание ее длины с поддержкой плоских клиньев Апостол РЫЖОВ 169 стоит отметить как это кушало описано торжественнее.
Мюллер и Андрианов синтезируют силиконовую пластмассу. Тем не меньше строительство бывалого завода существовало завершено в начале января 1931 года. задняя крышка для айфона Как в свое эпоха Уатту, Дизелю выпало потратить навалом сил на то, воеже довести до совершенства производственный процесс производства дизелей — разработать новейшие станки, 290 100 ЗНАМЕНИТЫХ ИЗОБРЕТЕНИЙ найти благоприятные сплавы, подготовить экспертов В течение пары лет он скитался по Западной европе и Америке, посещая фабрики, на коию шло исполнение его двигателей.
Его легендарный 12-разрядный арифмометр появился чуть только в 1694 годку и встал в круглую необходимую сумму — 24 000 талеров. Но вскоре выяснилось: чем более чем у вертолета винтов, тем могучей у него задач — вычисление аппарата в том числе с разом винтом являлся из себя исключительно сложную тему; принять к сведению же обоюдное влияние множества винтов угодило вообще возможности нет (по крайней границе, в основополагающею четверти XX века, в каком случае аэродинамика делала едва первые действия, а теория невесомого винта только-всего лишь начинала создавалось). чугунная сковорода с крышкой При необходимости поднять мощ- Рис.
В 1882 годку Голяр и Гиббс взяли актив на автотрансформатор, какой использовался теперь не лишь только для энергии, ведь и для преобразования надсады. htc задняя крышка Реле, счетчики, контактные и печатающие поступления ввода и заключения перфокарт были стереотипными частями табуляторов, выпускаемых IBM.
Подробностит тут
Инфо kantovateligidrozol.ru -1Инфо kantovateligidrozol.ru -2
Инфо kantovateligidrozol.ru -3
Инфо kantovateligidrozol.ru -4
Инфо kantovateligidrozol.ru -5
Инфо kantovateligidrozol.ru -6
Инфо kantovateligidrozol.ru -7
Инфо kantovateligidrozol.ru -8
Инфо kantovateligidrozol.ru -9
Инфо kantovateligidrozol.ru -10
Инфо kantovateligidrozol.ru -11
Пробивка отверстий NAT в компьютерной сети
Предварительное условие — преобразование сетевых адресов (NAT)
Что такое пробивка отверстий NAT?
Основное ограничение или недостаток Устройства под NAT состоит в том, что оно не может принимать исходящие соединения. И если такая попытка будет предпринята, NAT гарантирует, что сообщение попадет в корзину. Это ограничение преодолевается методом, известным как Пробивка отверстий . В этом методе используется узел вне NAT с общедоступным статическим IP-адресом. Он называется Rendezvous server.Он используется для установления соединения между двумя узлами, которые либо оба находятся за разными NAT, либо оба находятся за одним NAT, или один за NAT, а другой не за NAT, или узлами под несколькими NAT.
Для чего это используется?
Поскольку большинство компьютеров в мире используют какой-либо NAT, этот метод широко используется в архитектурах P2P (Peer to Peer) . Создание P2P-сети требует прямого соединения между любыми двумя узлами. Пробивка отверстий — это наиболее важная концепция, которую необходимо усвоить при создании P2P-сети.Используя эту концепцию, можно обойти сетевые брандмауэры. Пробивка отверстий очень безопасна, поскольку соединение должно быть инициировано с обоих концов, поэтому требуется согласие обоих пользователей.
Как это делается?
Подробное описание пробивки отверстий NAT с использованием протокола управления передачей (TCP), протокола дейтаграмм пользователя (UDP) и протокола управляющих сообщений Интернета (ICMP). В этой статье объясняются основные концепции пробивки отверстий.
Мы обсудим, как установить соединение между двумя узлами, используя пробивку отверстий NAT для следующих случаев.
- Пиров за Общий NAT
- Пиры за Различные NAT
- Пиры за Несколько уровней NAT
Основная история NAT Hole Punch заключается в том, что оба узла, которые хотят соединяются друг с другом, отправляют сообщение на сервер. Сервер отвечает обоим узлам IP-адресами и портами (конечными точками) друг друга. Оба узла пытаются установить соединение друг с другом, отправляя сообщение друг другу. Сообщения отбрасываются NAT на стороне получателя, но NAT на стороне отправителя записывают адрес, на который отправляется сообщение, и любые входящие сообщения с этого адреса будут рассматривается как ответ на это сообщение и будет направлен на конечную точку источника.Оба узла снова пытаются подключиться друг к другу, отправив сообщение. Но теперь сообщения принимаются успешно, поскольку NAT считает, что это сообщение является ответом на предыдущее (неудачное) сообщение. соединение установлено и ПРОБИРАЕТСЯ ОТВЕРСТИЕ .
Терминология:
- A: Узел 1
- B: Узел 2
- S: Сервер рандеву
Шаги:
- A отправить S запрос на подключение к B.
- S отправляет адрес A в B, а адрес B — в A.
- A отправляет сообщение мусора в B, а B отправляет сообщение с мусором в A. (оба получают отбрасывание соответствующими NAT)
- Шаг 3 повторяется.
- Соединение установлено.
Вышеуказанный метод пробивки отверстий NAT может использоваться в любом из случаев: либо оба узла находятся за одним NAT, либо оба узла находятся за разными NAT, или даже если оба узла находятся за несколькими уровнями NAT.
Возможно, единственный недостаток перфорации NAT состоит в том, что всегда требуется общедоступный сервер со статическим IP-адресом.Для решения этой проблемы была предложена архитектура под названием pwnat, но pwnat работает только тогда, когда один из двух узлов не находится за NAT.
Вниманию читателя! Не прекращайте учиться сейчас. Получите все важные концепции теории CS для собеседований SDE с помощью курса CS Theory Course по приемлемой для студентов цене и станьте готовым к работе в отрасли.
— Домашняя страница Брайана Форда
— Домашняя страница Брайана Форда Брайан Форд
Массачусетский технологический институт
baford (at) mit.edu
Pyda Srisuresh
Caymas Systems, Inc.
srisuresh (at) yahoo.com
Дэн Кегель
dank (at) kegel.com
J’fais des trous, des petits trous
toujours des petits trous
— С. Генсбур,
Аннотация:
Трансляция сетевых адресов (NAT) вызывает известные трудности для одноранговой (P2P) связи, поскольку вовлеченные узлы могут быть недоступны на любом глобально действующем IP-адресе.Известно несколько методов обхода NAT, но их документация тонкая, и данных об их надежности или относительных достоинствах меньше. Этот документ документирует и анализирует один из самых простых, но самых надежных и практичных Методы обхода NAT, широко известный как «пробивка отверстий». Пробивка отверстий довольно хорошо известна для UDP-коммуникаций, но мы покажем, как его можно надежно использовать для настройки одноранговых TCP-потоков. После сбора данных о надежности этой методики на большом количестве развернутых NAT, мы обнаружили, что около 82% протестированных NAT поддерживают перфорацию отверстий для UDP, и около 64% поддерживают перфорацию для TCP-потоков.Поскольку поставщики NAT все больше осознают потребности важных приложений P2P такие как протоколы передачи голоса по IP и онлайн-игры, поддержка пробивки отверстий, вероятно, увеличится в будущем.
Комбинированное давление огромного роста и огромные проблемы безопасности заставили Интернет развиваться способами, которые усложняют жизнь многим приложениям. Первоначальная унифицированная адресная архитектура Интернета, в котором каждый узел имеет глобально уникальный IP-адрес и может напрямую связываться с любым другим узлом, был заменен на новую архитектуру Интернет-адреса de facto , состоящий из глобальной адресной области и много частных адресов соединены трансляторами сетевых адресов (NAT).В этой новой адресной архитектуре проиллюстрировано на Рисунке 1, только узлы в «основной» глобальной адресной области можно легко связаться из любой точки сети, потому что только у них есть уникальные глобально маршрутизируемые IP-адреса. Узлы в частных сетях может подключаться к другим узлам в той же частной сети, и они обычно могут открывать TCP или UDP соединения к «хорошо известным» узлам в глобальной адресной области. NAT на пути выделять временные общедоступные конечные точки для исходящих подключений, и переведи адреса и номера портов в пакетах, составляющих эти сеансы, при этом обычно блокируя весь входящий трафик если иное специально не настроено.
Новая адресная архитектура de facto в Интернете подходит для взаимодействия клиент / сервер в типичном случае, когда клиент находится в частной сети и сервер находится в глобальной адресной области. Архитектура усложняет работу двух узлов. в различных частных сетях , чтобы связаться друг с другом напрямую, тем не мение, что часто важно к протоколам одноранговой связи используется в таких приложениях, как телеконференции и онлайн-игры.Нам явно нужен способ сделать такие протоколы работают без сбоев при наличии NAT.
Один из самых эффективных методов установления одноранговой связи между хостами в разных частных сетях известна как «пробивка отверстий». Эта техника уже широко используется в UDP-приложениях, но, по сути, тот же метод работает и для TCP. Вопреки тому, что можно предположить из названия, пробивка отверстий не ставит под угрозу безопасность частной сети. Вместо, пробивка отверстий позволяет приложениям работать в пределах политики безопасности по умолчанию для большинства NAT, эффективная сигнализация NAT на пути эти одноранговые сеансы связи «запрошены» и поэтому следует принять.В этом документе описывается пробивка отверстий как для UDP, так и для TCP, и подробно описывает важные аспекты как приложения, так и поведения NAT. которые делают дыроколом работу.
К несчастью, техника обхода не работает со всеми существующими NAT, потому что поведение NAT не стандартизировано. В этой статье представлены некоторые экспериментальные результаты. оценка поддержки перфорации в текущих NAT. Наши данные получены на основе результатов, представленных пользователями в Интернете. запустив наш инструмент «Проверка NAT» через широкий спектр NAT от разных производителей.Хотя точки данных были собраны из сообщества пользователей, «выбирающих самостоятельно» и не может быть репрезентативным истинного распределения реализаций NAT, развернутых в Интернете, Тем не менее результаты в целом обнадеживают.
При оценке базовой пробивки отверстий мы также указываем варианты, которые могут сделать работу пробивки отверстий на более широком разнообразии существующих NAT ценой большей сложности. Однако наша основная цель — разрабатывает простейшую технику пробивки отверстий который работает чисто и надежно при наличии «хорошо настроенных» NAT в любой разумной топологии сети.Мы сознательно избегаем излишне хитрых уловок что может увеличить совместимость с некоторыми существующими «сломанными» NAT в краткосрочной перспективе, но которые работают только иногда и может вызвать дополнительную непредсказуемость и хрупкость сети в долгосрочной перспективе.
Хотя большее адресное пространство IPv6 [3] может в конечном итоге снизить потребность в NAT, в краткосрочной перспективе IPv6 увеличивает спрос на NAT, потому что NAT сам по себе обеспечивает самый простой способ добиться взаимодействия между адресными доменами IPv4 и IPv6 [24].Дальше, анонимность и недоступность хостов в частных сетях широко воспринимаются преимущества безопасности и конфиденциальности. Межсетевые экраны вряд ли исчезнут, даже если IP-адресов достаточно: Межсетевые экраны IPv6 по-прежнему будет блокировать нежелательный входящий трафик по умолчанию, сделать дырокол полезным даже для приложений IPv6.
Остальная часть этой статьи организована следующим образом. Раздел 2 знакомит с базовой терминологией и концепциями обхода NAT. Раздел 3 детали перфорации для UDP, и Раздел 4 вводит перфорацию для TCP.Раздел 5 суммирует важные свойства, которые должен иметь NAT для обеспечения пробивки отверстий. Раздел 6 представляет наши экспериментальные результаты о поддержке перфорации в популярных NAT, В разделе 7 обсуждаются связанные работы, и Раздел 8 завершается.
В этом разделе представлена основная терминология NAT. используется на протяжении всей статьи, а затем описывает общие методы обхода NAT которые в равной степени применимы к TCP и UDP.
В этом документе используется терминология и таксономия NAT. определено в RFC 2663 [21], а также дополнительные термины, определенные совсем недавно в RFC 3489 [19].
Особое значение имеет понятие сеанса. Конечная точка сеанса для TCP или UDP пара (IP-адрес, номер порта), и конкретный сеанс однозначно идентифицируется его две конечные точки сеанса. С точки зрения одного из участников, сеанс эффективно идентифицируется 4-кортежа (локальный IP, локальный порт, удаленный IP, удаленный порт). Направление сеанса обычно направление потока пакета который инициирует сеанс: начальный пакет SYN для TCP, или первая пользовательская дейтаграмма для UDP.
Из различных разновидностей NAT, наиболее распространенный тип — традиционный или исходящий NAT, который обеспечивает асимметричный мост между частной сетью и общедоступной сетью. Исходящий NAT по умолчанию позволяет только исходящим сеансам проходить через NAT: входящие пакеты отбрасываются, если их не идентифицирует NAT как часть существующей сессии инициируется из частной сети. Исходящий NAT конфликтует с одноранговыми протоколами потому что, когда оба партнера, желающие общаться, «отстают» (на стороне частной сети) двух разных NAT, независимо от того, какой партнер пытается инициировать сеанс, NAT другого однорангового узла отклоняет это.Обход NAT влечет за собой сделать сеансы P2P похожими на «исходящие». на и NAT.
Исходящий NAT имеет две разновидности: Basic NAT , который транслирует только IP-адреса, и Трансляция сетевых адресов / портов (NAPT), который переводит целые конечные точки сеанса. NAPT, более общая разновидность, также стал самым распространенным потому что он позволяет хостам в частной сети для совместного использования единственного общедоступного IP-адреса . В этой статье мы предполагаем, что NAPT, хотя принципы и методы, которые мы обсуждаем одинаково хорошо (хотя иногда и тривиально) применимы и к Basic NAT.
Самый надежный, но наименее эффективный метод P2P-коммуникации через NAT просто сделать общение смотрите на сеть как на стандартную связь клиент / сервер, через ретрансляцию. Предположим, два клиента хозяева и каждый инициировал TCP или UDP подключения к известному серверу, с глобальным IP-адресом 18.181.0.31 и номером порта 1234. Как показано на рисунке 2, клиенты находятся в отдельных частных сетях, и их соответствующие NAT предотвращают прямое инициируя соединение с другим.Вместо попытки прямого подключения два клиента могут просто использовать сервер для передачи сообщений между ними. Например, чтобы отправить сообщение клиенту, клиент просто отправляет сообщение сервер через его уже установленное соединение клиент / сервер, и сервер пересылает сообщение клиенту, используя существующий соединение клиент / сервер с.
Реле всегда работает пока оба клиента могут подключиться к серверу.Его недостатки в том, что он потребляет вычислительную мощность сервера и пропускную способность сети, и задержка связи между пиринговыми клиентами вероятно, увеличивается, даже если сервер имеет хорошее соединение. Тем не менее, поскольку нет более эффективной техники который надежно работает на всех существующих NAT, ретрансляция — полезная стратегия отступления если требуется максимальная надежность. Протокол TURN [18] определяет метод реализации ретрансляции относительно безопасным способом.
Некоторые приложения P2P используют простой, но ограниченный метод, известный как разворот соединения , чтобы позволить общение когда оба хоста подключены к известному серверу рандеву и только один из пиров находится за NAT, как показано на рисунке 3.Если вы хотите установить соединение с тогда попытка прямого подключения работает автоматически, потому что не за NAT NAT интерпретирует соединение как исходящий сеанс. Однако, если вы хотите установить соединение с любая попытка прямого подключения к нему блокируется NAT. может вместо этого передать запрос на подключение к через известный сервер, с просьбой предпринять попытку «обратного» подключения обратно к. Несмотря на очевидные ограничения этого метода, центральная идея использования хорошо известного сервера рандеву в качестве посредника для установки прямых одноранговых соединений имеет основополагающее значение для более общих техник пробивки отверстий описано далее.
Пробивка отверстий UDP позволяет двум клиентам настроить прямой одноранговый сеанс UDP с помощью известного сервера рандеву, даже если оба клиента находятся за NAT. Эта техника была упомянута в разделе 5.1 RFC 3027 [10], более подробно документированы в другом месте в Интернете [13], и использовался в последнее время экспериментальные Интернет-протоколы [17,11]. Различные проприетарные протоколы, например, для онлайн-игр, также используйте пробивку отверстий UDP.
Пробивка отверстий предполагает, что два клиента, а также , уже есть активные сеансы UDP с сервером рандеву. Когда клиент регистрируется, сервер записывает две конечные точки для этого клиента: пара (IP-адрес, UDP-порт) что клиент считает, что сам использует для разговора, и пара (IP-адрес, UDP-порт) что сервер наблюдает за клиентом, который будет использовать для разговора с ним. Мы называем первую пару частной конечной точкой клиента а второй — как общедоступная конечная точка клиента.Сервер может получить частную конечную точку клиента от самого клиента в поле в теле сообщения о регистрации клиента, и получить общедоступную конечную точку клиента из полей исходного IP-адреса и исходного UDP-порта в заголовках IP и UDP этого регистрационного сообщения. Если клиент находится за NAT , а не , тогда его частные и общедоступные конечные точки должны быть идентичны.
Известно, что несколько плохо работающих NAT сканируют тело дейтаграмм UDP. для 4-байтовых полей, похожих на IP-адреса, и переведите их, как если бы поля IP-адреса в заголовке IP.Чтобы противостоять такому поведению, приложения могут захотеть слегка скрыть IP-адреса в теле сообщений, например, путем передачи дополнения к IP-адресу вместо самого IP-адреса. Конечно, если приложение шифрует свои сообщения, тогда такое поведение вряд ли будет проблемой.
Предположим, клиент хочет установить UDP сеанс напрямую с клиентом. Пробивка отверстий происходит следующим образом:
- изначально не умеет дотянуться, так спрашивает для помощи в установлении сеанса UDP с помощью.
- отвечает на сообщение содержащий общедоступные и частные конечные точки. В то же время, использует свой сеанс UDP с отправить сообщение с запросом на подключение содержащий общедоступные и частные конечные точки. Как только эти сообщения будут получены, и знают публичные и частные конечные точки друг друга.
- Когда получает общедоступные и частные конечные точки от, начинает отправлять UDP-пакеты на обе этих конечных точек, и впоследствии «блокируется» в зависимости от того, какая конечная точка сначала вызывает действительный ответ от.Точно так же, когда получает публичные и частные конечные точки в перенаправленном запросе на соединение, начинает отправлять UDP-пакеты на на каждой из известных конечных точек, блокировка первой работающей конечной точки. Порядок и время отправки этих сообщений не имеют решающего значения. пока они асинхронны.
Теперь мы рассматриваем как обрабатывается пробивка отверстий UDP каждый из трех конкретных сетевых сценариев. В первой ситуации представляя «легкий» случай, два клиента фактически находятся за одним NAT, в одной частной сети.Во-вторых, самый частый случай, клиенты находятся за разными NAT. В третьем сценарии каждый из клиентов находится за двумя уровнями NAT: общий NAT «первого уровня» развернутый интернет-провайдером, например, и отдельные NAT второго уровня например, потребительские маршрутизаторы NAT для домашних сетей.
Для самого приложения это вообще сложно или невозможно для определения точной физической схемы сети, и, следовательно, какой из этих сценариев (или многих других возможных) действительно применяется в данный момент.Такие протоколы, как STUN [19] может предоставить некоторую информацию о NAT, присутствующих на пути связи, но эта информация не всегда может быть полной или надежной, особенно когда задействовано несколько уровней NAT. Тем не менее, пробивка отверстий работает автоматически во всех этих сценариях без приложение должно знать конкретная сетевая организация, пока задействованные NAT ведут себя разумно. («Разумное» поведение NAT будет описано позже в Разделе 5.)
Сначала рассмотрим простой сценарий, в котором два клиента (вероятно, по незнанию) находятся за одним и тем же NAT, и поэтому находятся в той же области частных IP-адресов, как показано на рисунке 4. Клиент установил сеанс UDP с сервером, к которому Общий NAT присвоил свой собственный номер публичного порта 62000. Клиент аналогичным образом установил сеанс с, которому NAT назначил номер публичного порта 62005.
Предположим, что клиент использует описанную выше технику пробивания отверстий. чтобы установить сеанс UDP, используя сервер в качестве интродуктора.Клиент отправляет сообщение с запросом на подключение к. отвечает на общедоступные и частные конечные точки пользователя, а также перенаправляет общедоступные и частные конечные точки в. Затем оба клиента пытаются отправить друг другу дейтаграммы UDP. непосредственно на каждой из этих конечных точек. Сообщения, направленные на общедоступные конечные точки может или не может достичь места назначения, в зависимости от того, поддерживает ли NAT трансляцию шпильки как описано ниже в разделе 3.5. Сообщения, направленные на частные конечные точки до достигают места назначения, однако, и поскольку этот прямой маршрут через частную сеть в любом случае, скорее всего, будет быстрее, чем косвенный маршрут через NAT, клиенты, скорее всего, выберут частные конечные точки для последующего регулярного общения.
Предполагая, что NAT поддерживает перевод шпильки, приложение может обойтись без сложности пробовать как частные, так и публичные конечные точки, за счет локальной связи за общим NAT т.к проходить через NAT. Однако, как показывают наши результаты в разделе 6, перевод шпильки по-прежнему гораздо менее распространен среди существующих NAT чем другие варианты NAT, «дружественные к P2P». На данный момент поэтому приложения могут существенно выиграть используя как общедоступные, так и частные конечные точки.
Допустим, у клиентов есть частные IP-адреса за разными NAT, как показано на рисунке 5. и каждый инициировал UDP-соединение сеансы из их локального порта 4321 на порт 1234 на сервере. При обработке этих исходящих сеансов NAT назначил порт 62000 на собственном публичном IP-адресе 155.99.25.11, для использования сеанса с, и NAT назначил порт 31000 на свой IP-адрес 138.76.29.7, к сеансу с.
В регистрационном сообщении пользователя, сообщает о своей частной конечной точке как 10.0.0.1: 4321, где 10.0.0.1 — это IP-адрес пользователя в его собственной частной сети. сообщенная частная конечная точка записей, вместе с общедоступной конечной точкой пользователя, наблюдаемой сама по себе. публичная конечная точка в этом случае — 155.99.25.11:62000, временная конечная точка, назначенная сеансу NAT. Аналогично, когда клиент регистрируется, записывает частную конечную точку как 10.1.1.3:4321 а общедоступная конечная точка — 138.76.29.7:31000.
Теперь клиент следует процедуре пробивки отверстий, описанной выше. для установления сеанса связи UDP напрямую с.Сначала отправляет сообщение с запросом на просят помощи в соединении с. В ответ отправляет общедоступные и частные конечные точки на, и отправляет общедоступные и частные конечные точки в. и каждый начинает пытаться отправить дейтаграммы UDP непосредственно к каждой из этих конечных точек.
Поскольку и находятся в разных частных сетях и их соответствующие частные IP-адреса не поддерживают глобальную маршрутизацию, сообщения, отправленные на эти конечные точки достигнет либо неправильного хоста, либо вообще не достигнет хоста. Поскольку многие NAT также действуют как DHCP-серверы, выдача IP-адресов довольно детерминированным способом из пула частных адресов, обычно определяемого поставщиком NAT по умолчанию, это вполне вероятно на практике это сообщения, направленные на частную конечную точку пользователя достигнет какой-то (неверный) хост в частной сети у которого такой же частный IP-адрес, что и у него.Поэтому приложения должны аутентифицировать все сообщения. каким-то образом надежно отфильтровать такой блуждающий трафик. Сообщения могут включать имена приложений или криптографические токены, Например, или, по крайней мере, заранее подготовленный случайный одноразовый номер.
Теперь рассмотрим первое сообщение, отправленное в общедоступную конечную точку, как показано на рисунке 5. Поскольку это исходящее сообщение проходит через NAT, этот NAT замечает, что это первый пакет UDP в новом исходящем сеансе. Конечная точка источника нового сеанса (10.0.0.1: 4321) совпадает с сеансом существующего сеанса между и, но его конечная точка назначения отличается. Если NAT работает нормально, он сохраняет идентичность частной конечной точки пользователя, последовательно переводить все исходящие сеансы из конечной точки с частным источником 10.0.0.1:4321 к соответствующей конечной точке с открытым исходным кодом 155.99.25.11:62000. первое исходящее сообщение на общедоступную конечную точку таким образом, по сути, «Пробивает дыру» в NAT для нового сеанса UDP определены конечными точками (10.0.0.1: 4321, 138.76.29.7:31000) в частной сети пользователя, и по конечным точкам (155.99.25.11:62000, 138.76.29.7:31000) в основном Интернете.
Сообщение if для общедоступной конечной точки достигает NAT перед первым сообщением пересек собственный NAT России, тогда NAT может интерпретировать входящее сообщение как нежелательный входящий трафик и отбросить его. первое сообщение на публичный адрес, однако, аналогично открывает дыру в NAT пользователя, для нового сеанса UDP определены конечными точками (10.1.1.3:4321, 155.99.25.11: 62000) в частной сети пользователя, и по конечным точкам (138.76.29.7:31000, 155.99.25.11:62000) в Интернете. После того, как первые сообщения от и пересекли соответствующие NAT, отверстия открыты в каждом направлении и связь по UDP может продолжаться нормально. Как только клиенты убедятся, что общедоступные конечные точки работают, они могут прекратить отправку сообщений на альтернативные частные конечные точки.
3.5 Пиры за несколькими уровнями NAT
В некоторых топологиях, включающих несколько устройств NAT, два клиента не могут установить «оптимальный» P2P-маршрут между их без конкретных знаний топологии.Рассмотрим окончательный сценарий, изображен на рисунке 6. Предположим, NAT — это крупный промышленный NAT, развернутый через Интернет. поставщик услуг (ISP) для мультиплексирования множества клиентов на несколько общедоступных IP-адреса и NAT и небольшие потребительские маршрутизаторы NAT. независимо развернуты двумя клиентами интернет-провайдера для мультиплексирования свои частные домашние сети на соответствующие IP-адреса, предоставленные интернет-провайдером. адреса. Только сервер и NAT имеют глобально маршрутизируемый IP адреса; «общедоступные» IP-адреса, используемые NAT и NAT, фактически является частным для адресной области интернет-провайдера, в то время как клиентские и адреса, в свою очередь, являются частными для адресных областей NAT и NAT соответственно.Каждый клиент инициирует исходящее соединение с сервером, как и раньше, заставляя NAT и каждый создавать один публичный / частный перевод, и заставляя NAT установить общедоступный / частный перевод для каждого сеанса.
Теперь предположим и попытаемся установить прямое одноранговое UDP-соединение через пробивку отверстий. Оптимальной стратегией маршрутизации было бы для клиента: отправлять сообщения на «полуобщественную» конечную точку клиента через NAT, 10.0.1.2: 55000 в адресной области провайдера, и чтобы клиент мог отправлять сообщения к «полуобщественной» конечной точке в NAT, а именно 10.0.1.1:45000. К сожалению, у нас нет возможности узнать эти адреса, поскольку сервер видит только действительно глобальные общедоступные конечные точки клиентов, 155.99.25.11:62000 и 155.99.25.11:62005 соответственно. Даже если бы и был способ узнать эти адреса, по-прежнему нет гарантии, что их можно будет использовать, потому что назначения адресов в области частных адресов интернет-провайдера может конфликтовать с несвязанными назначениями адресов в частных владениях клиентов.(IP-адрес NAT в области NAT с таким же успехом могло бы быть 10.1.1.3, например, то же, что и частный адрес клиента в области NAT.)
Клиенты поэтому нет выбора но использовать их глобальные публичные адреса как видели их P2P-общение, и полагаться на NAT, обеспечивающий перевод шпильки или петли . Когда отправляет дейтаграмму UDP в глобальную конечную точку, 155.99.25.11:62005, NAT сначала переводит конечную точку источника дейтаграммы с 10.0.0.1: 4321 до 10.0.1.1:45000. Теперь дейтаграмма достигает NAT, который распознает, что адрес назначения дейтаграммы является одной из общедоступных конечных точек , переведенных NAT. Если NAT работает нормально, затем он переводит и адреса источника и назначения в дейтаграмме и «зацикливает» дейтаграмму обратно в частную сеть, теперь с конечной точкой источника 155.99.25.11:62000 и конечная точка назначения 10.0.1.2:55000. NAT наконец переводит адрес назначения дейтаграммы когда дейтаграмма попадает в частную сеть, и дейтаграмма достигает.Путь назад к работает аналогично. Многие NAT пока не поддерживают перевод шпильки, но это становится все более распространенным по мере того, как поставщики NAT узнают об этой проблеме.
Поскольку транспортный протокол UDP обеспечивает NAT без надежного, независимого от приложения способа для определения времени жизни сеанса, пересекающего NAT, большинство NAT просто связывают таймер простоя с трансляциями UDP, закрытие дыры, если трафик не использовался в течение некоторого периода времени. К сожалению, для этого таймера нет стандартного значения: у некоторых NAT время ожидания составляет всего 20 секунд.Если приложению необходимо поддерживать активный бездействующий сеанс UDP после установления сеанса перфорацией, приложение должно периодически отправлять пакеты keep-alive чтобы гарантировать, что соответствующее состояние трансляции в NAT не исчезает.
К несчастью, многие NAT связывают таймеры простоя UDP с отдельными сеансами UDP определяется конкретной парой конечных точек, так что отправка keep-alive за один сеанс не будет держать другие сеансы активными даже если все сеансы происходят из та же частная конечная точка.Вместо того, чтобы отправлять сообщения keep-alive во многих различных сеансах P2P, приложения могут избежать чрезмерного трафика проверки активности обнаружив, когда сеанс UDP больше не работает, и повторное выполнение первоначальной процедуры пробивки отверстий «по запросу».
Установление одноранговых TCP-соединений между хостами за NAT немного сложнее, чем для UDP, но пробивка отверстий TCP на удивление похожа на уровне протокола. Поскольку это не так хорошо понятно, в настоящее время он поддерживается меньшим количеством существующих NAT.Однако, когда задействованы NAT , поддерживает его, Пробивка отверстий TCP такая же быстрая и надежная, как пробивка отверстий UDP. Одноранговая TCP-связь через хорошо настроенные NAT на самом деле может быть на более надежным на , чем связь по протоколу UDP, потому что в отличие от UDP, конечный автомат протокола TCP дает NAT на пути стандартным способом определения точное время жизни конкретного сеанса TCP.
Основная практическая задача для приложений, желающих реализовать пробивку отверстий TCP это не проблема протокола но проблема с интерфейсом прикладного программирования (API).Поскольку стандартный API сокетов Беркли был разработан на основе парадигмы клиент / сервер, API позволяет сокет потока TCP будет использоваться для инициирования исходящего соединения через connect (), или прослушивать входящие соединения через listen () и accept (), , но не оба . Дальше, Сокеты TCP обычно имеют однозначное соответствие на номера портов TCP на локальном хосте: после того, как приложение связывает один сокет с определенным локальным TCP-портом, попытки привязать второй сокет к тому же TCP-порту терпят неудачу.
Однако для работы перфорации TCP
нам нужно использовать единственный локальный TCP-порт
прослушивать входящие TCP-соединения
и одновременно инициировать несколько исходящих TCP-соединений.
К счастью, все основные операционные системы
поддержка специального варианта сокета TCP,
обычно называется SO_REUSEADDR ,
что позволяет приложению связывать несколько сокетов
к той же локальной конечной точке
пока эта опция установлена на всех задействованных сокетах.
Системы BSD представили опцию SO_REUSEPORT который контролирует повторное использование порта отдельно от повторного использования адреса;
в таких системах должны быть установлены обе этих опций.
4.2 Открытие одноранговых TCP-потоков
Предположим, что клиент желает установить TCP-соединение с клиентом. Мы предполагаем как обычно что у обоих и уже есть активные TCP-соединения с известным сервером рандеву. Серверные записи общедоступные и частные конечные точки каждого зарегистрированного клиента, как и для UDP. На уровне протокола Пробивка отверстий TCP работает почти так же, как и для UDP:
- Клиент использует активный сеанс TCP с попросить о помощи в подключении.
- отвечает на общедоступные и частные конечные точки TCP, и в то же время отправляет общедоступные и частные конечные точки в.
- Из те же локальные TCP-порты это и используется для регистрации, и каждый асинхронно делает попытки исходящего соединения к публичным и частным конечным точкам другого как сообщает, одновременно прослушивая входящие соединения на соответствующие локальные TCP-порты.
- и дождитесь успеха исходящих попыток подключения, и / или для появления входящих соединений.Если одна из попыток исходящего подключения не удалась из-за сетевой ошибки например, «сброс соединения» или «хост недоступен», хост просто повторяет попытку подключения после небольшой задержки (например, одной секунды), до максимального периода ожидания, определяемого приложением.
- Когда TCP-соединение установлено, хосты аутентифицируют друг друга чтобы убедиться, что они подключены к предполагаемому хосту. Если аутентификация не удалась, клиенты закрывают это соединение и продолжайте ждать, пока другие добьются успеха.Клиенты использовать первый успешно аутентифицированный поток TCP в результате этого процесса.
В отличие от UDP, где каждому клиенту нужен только один сокет общаться с обоими и любым количеством партнеров одновременно, с TCP каждое клиентское приложение должно управлять несколькими сокетами привязан к одному локальному TCP-порту на этом клиентском узле, как показано на рисунке 7. Каждому клиенту нужен потоковый сокет, представляющий его подключение к, сокет прослушивания, на котором будут приниматься входящие соединения от одноранговых узлов, и как минимум два дополнительных потоковых сокета с которой инициировать исходящие соединения к общедоступным и частным конечным точкам TCP другого однорангового узла.
Рассмотрим общий сценарий в котором клиенты и находятся за разными NAT, как показано на рисунке 5, и предположим, что номера портов, показанные на рисунке теперь предназначены для портов TCP, а не UDP. Исходящее соединение пытается и сделать к частным конечным точкам друг друга либо выйдет из строя, либо подключится не к тому хосту. Как и в случае с UDP, важно, чтобы приложения TCP аутентифицировали свои одноранговые сеансы, из-за вероятности ошибочного подключения к случайный хост в локальной сети у которого такой же частный IP-адрес в качестве желаемого хоста в удаленной частной сети.
Попытки исходящего соединения клиентов к общедоступным конечным точкам друг друга, однако заставляют соответствующие NAT открывать новые «дыры» включение прямого TCP-соединения между и. Если NAT работают нормально, затем новый одноранговый поток TCP автоматически образуется между ними. Если первый SYN-пакет достигнет NAT до того, как первый SYN-пакет достигнет NAT, например, тогда NAT может интерпретировать SYN как попытка нежелательного входящего подключения и брось это.первый SYN-пакет должен впоследствии пройти, тем не мение, потому что NAT видит этот SYN как часть исходящего сеанса для это первый SYN уже инициирован.
Что наблюдают клиентские приложения с их сокетами во время пробивки отверстий TCP зависит от времени и задействованных реализаций TCP. Предположим, что это первый исходящий SYN-пакет к общедоступной конечной точке. сбрасывается NAT, но первый последующий SYN-пакет к общедоступной конечной точке проходит до того, как TCP повторно передает свой SYN.В зависимости от используемой операционной системы, может произойти одно из двух:
- реализация TCP замечает, что
конечные точки сеанса для входящего SYN
совпадают с теми из исходящего сеанса, который пытался инициировать.
стек TCP поэтому связывает этот новый сеанс
с сокетом, на котором локальное приложение
использовал для подключения () к общедоступной конечной точке.
Асинхронный вызов приложения connect () завершается успешно,
и с сокетом прослушивания приложения ничего не происходит.
Поскольку полученный пакет SYN не содержал ACK для предыдущего исходящего SYN, TCP отвечает на общедоступную конечную точку с пакетом SYN-ACK, часть SYN — это просто повтор исходного исходящего SYN, используя тот же порядковый номер. Как только TCP получит SYN-ACK, он отвечает собственным ACK на SYN, и сеанс TCP переходит в состояние подключения на обоих концах.
- В качестве альтернативы,
реализация TCP может вместо этого заметить
у которого есть активный прослушивающий сокет на этом порту
ожидание попыток входящего подключения.Поскольку SYN выглядит как попытка входящего соединения,
TCP создает новый потоковый сокет с которым можно связать новый сеанс TCP,
и передает этот новый сокет приложению
через следующий вызов приложения accept ()
на его сокете прослушивания.
TCP затем отвечает SYN-ACK, как указано выше,
и настройка TCP-соединения продолжается как обычно
для соединений клиент / сервер.
Поскольку предыдущая исходящая попытка connect () используется комбинация конечных точек источника и назначения который сейчас используется другим сокетом, а именно тот, который только что вернулся в приложение через accept (), попытка асинхронного подключения () должен потерпеть неудачу в какой-то момент, обычно с ошибкой «адрес используется».Тем не менее, у приложения есть работающий одноранговый потоковый сокет, с которым ему нужно общаться, поэтому он игнорирует этот сбой.
Первое поведение, описанное выше, кажется обычным для операционных систем на основе BSD, тогда как второе поведение более распространено в Linux и Windows.
4.4 Одновременное открытие TCP
Предположим, что время различных попыток подключения во время процесса пробивки отверстий работает так, что начальные исходящие SYN-пакеты от и клиентов проходят через их соответствующие локальные NAT, открытие новых исходящих TCP-сессий в каждом NAT, не дойдя до удаленного NAT.В этом «удачном» случае NAT не отклоняет ни один из начальных пакетов SYN, и SYN пересекаются на проводе между двумя NAT. В этом случае, клиенты наблюдают за событием известная как одновременное открытие TCP : TCP каждого однорангового узла получает «необработанный» SYN ожидая SYN-ACK. TCP каждого однорангового узла отвечает SYN-ACK, чья часть SYN по существу «воспроизводит» предыдущий исходящий SYN партнера, и чья часть ACK подтверждает получение SYN от другого однорангового узла.
Что соблюдают соответствующие приложения в этом случае снова зависит от поведения задействованных реализаций TCP, как описано в предыдущем разделе.Если оба клиента реализуют второе поведение, указанное выше, может быть что все асинхронных вызовов connect () сделанные приложением, в конечном итоге терпят неудачу, но приложение, работающее на каждом клиенте тем не менее получает новый рабочий сокет однорангового потока TCP через accept () — как если бы этот TCP-поток волшебным образом «создал себя» на проводе и был просто пассивно принят на конечных точках! Пока приложение не заботится получает ли он в конечном итоге свои одноранговые TCP-сокеты через connect () или accept (), процесс приводит к рабочему потоку на любой реализации TCP который правильно реализует стандартный конечный автомат TCP указано в RFC 793 [23].
Каждый из альтернативных сценариев сетевой организации обсуждается в разделе 3 для UDP точно так же работает для TCP. Например, Пробивка отверстий TCP работает в многоуровневых сценариях NAT как на рисунке 6 при условии, что задействованные NAT работают нормально.
4.5 Последовательная пробивка отверстий
В варианте вышеописанной процедуры пробивки отверстий TCP реализовано библиотекой NatTrav [4], клиенты пытаются подключиться друг к другу последовательно, а не параллельно.Например: (1) сообщает через свое желание общаться, без одновременного прослушивания на своем локальном порту; (2) делает попытку connect (), что открывает дыру в NAT но затем не удается из-за тайм-аута или RST от NAT или RST от самого себя; (3) закрывает связь с и выполняет listen () на своем локальном порту; (4), в свою очередь, закрывает связь с, сигнализация попытки подключения () напрямую.
Эта последовательная процедура может быть особенно полезной.
на хостах Windows до XP Service Pack 2,
который неправильно реализовал одновременное открытие TCP,
или на API сокетов
которые не поддерживают функциональность SO_REUSEADDR .Последовательная процедура больше зависит от времени,
тем не мение,
и может быть медленнее в общем случае
и менее надежен в необычных ситуациях.
На шаге (2), например,
должен разрешить его «обреченную на неудачу» попытку connect ()
достаточно времени, чтобы убедиться, что хотя бы один пакет SYN
проходит все NAT на своей стороне сети.
Слишком низкие риски задержки
потерянный SYN, сорвавший процесс,
тогда как слишком большая задержка увеличивает общее время
требуется для пробивки отверстий.
Последовательная процедура пробивки отверстий также эффективно «потребляет»
подключения обоих клиентов к серверу,
требуя от клиентов открывать новые связи с
для создания каждого нового P2P-соединения.Процедура пробивки параллельных отверстий,
наоборот,
обычно завершается, как только
оба клиента делают свои исходящие попытки connect (),
и позволяет каждому клиенту сохранять и повторно использовать
однократное подключение на неопределенный срок.
В этом разделе описаны ключевые поведенческие свойства, которые должны иметь NAT. для правильной работы описанных выше методов пробивки отверстий. Не все текущие реализации NAT удовлетворяют этим свойствам. но многие делают, и NAT постепенно становятся более «дружественными к P2P» поскольку поставщики NAT осознают спрос на одноранговые протоколы такие как передача голоса по IP и онлайн-игры.
Этот раздел не предназначен для полная или окончательная спецификация того, как NAT «должны» себя вести; мы предоставляем это только для информации о наиболее часто наблюдаемом поведении которые включают или нарушают перфорацию P2P. IETF создал новую рабочую группу BEHAVE, определить официальные «лучшие текущие практики» для поведения NAT. Первоначальные наброски группы BEHAVE включить соображения, изложенные в этом и других разделах; Поставщики NAT должны, конечно, следите за рабочей группой IETF напрямую как сформулированы официальные стандарты поведения.
5.1 Согласованный перевод конечной точки
Методы пробивки отверстий, описанные здесь работает только автоматически если NAT последовательно отображает заданную конечную точку источника TCP или UDP в частной сети к единственной соответствующей общедоступной конечной точке контролируется NAT. NAT, который ведет себя подобным образом обозначается как конус NAT в RFC 3489 [19] и в других местах, потому что NAT «фокусирует» все сеансы исходящий из одной частной конечной точки через ту же общедоступную конечную точку на NAT.
Рассмотрим снова, например, сценарий на рисунке 5. Когда клиент первоначально связался с известным сервером, NAT выбрал порт 62000 на собственный публичный IP-адрес 155.99.25.11, как временная общедоступная конечная точка для представления частной конечной точки 10.0.0.1:4321. Когда позже попытается установить одноранговый сеанс с отправив сообщение с той же локальной частной конечной точки к общедоступной конечной точке, зависит от NAT, сохраняющего идентичность этой частной конечной точки, и повторное использование существующей общедоступной конечной точки 155.99.25.11: 62000, потому что это общедоступная конечная точка для которому будут отправляться соответствующие сообщения.
NAT, который предназначен только для поддержки клиент-серверных протоколов. не обязательно сохранит идентичность частных конечных точек таким образом. Такой NAT представляет собой симметричный NAT в терминологии RFC 3489. Например, после того, как NAT назначит общедоступную конечную точку 155.99.25.11:62000 к сеансу клиента с сервером, NAT может назначить другую общедоступную конечную точку, например, 155.99.25.11: 62001, к сеансу P2P, который пытается инициировать с помощью. В этом случае, процесс пробивки отверстий не обеспечивает возможности подключения, потому что последующие входящие сообщения от достичь NAT с неправильным номером порта.
Многие симметричные NAT назначают номера портов для последовательных сеансов. довольно предсказуемым образом. Используя этот факт, варианты алгоритмов пробивки отверстий [9,1] можно заставить работать «большую часть времени» даже через симметричные NAT сначала исследуя поведение NAT используя такой протокол, как STUN [19], и используя полученную информацию чтобы «предсказать» номер общедоступного порта NAT назначит новый сеанс.Однако такие методы прогнозирования сводятся к преследованию движущейся цели. и многие вещи могут пойти не так, как надо. Предполагаемый номер порта может уже использоваться заставляя NAT перейти на другой номер порта, Например, или другой клиент за тем же NAT может инициировать несвязанный сеанс в неподходящее время чтобы назначить предсказанный номер порта. Хотя предсказание номера порта может быть полезным трюком для достижения максимальной совместимости с существующими NAT с плохим поведением, это не является надежным долгосрочным решением.Поскольку симметричный NAT не обеспечивает большей безопасности чем конусный NAT с фильтрацией трафика за сеанс, симметричный NAT становится все реже поскольку поставщики NAT адаптируют свои алгоритмы для поддержки протоколов P2P.
5.2 Обработка незапрошенных TCP-соединений
Когда NAT получает пакет SYN на своей общедоступной стороне для того, что выглядит попыткой нежелательного входящего подключения, Важно, чтобы NAT просто молча отбрасывал SYN-пакет. Некоторые NAT вместо этого активно отклоняют такие входящие соединения. отправив обратно пакет TCP RST или даже отчет об ошибке ICMP, что мешает процессу пробивки отверстий TCP.Такое поведение не обязательно фатально, пока приложения повторяют попытки исходящего соединения как указано в шаге 4 процесса, описанного в разделе 4.2, но возникающие временные ошибки может увеличить время пробивки отверстий.
Несколько существующих NAT известно, что они «вслепую» сканируют полезные данные пакетов для 4-байтовых значений, похожих на IP-адреса, и транслируйте их, как IP-адрес в заголовке пакета, ничего не зная об используемом протоколе приложения.К счастью, такое плохое поведение встречается редко, и приложения могут легко защитить себя от этого запутывая IP-адреса, которые они отправляют в сообщениях, например, отправив побитовое дополнение желаемого IP-адреса.
5.4 Перевод шпильки
Некоторые ситуации с многоуровневым NAT требуется поддержка перевода шпильки чтобы работала пробивка отверстий TCP или UDP, как описано в разделе 3.5. Сценарий, показанный на рисунке 6, например, зависит от NAT, обеспечивающего трансляцию шпильки.Поддержка перевода шпильки к сожалению, редко встречается в текущих NAT, но, к счастью, это необходимо для сетевых сценариев. Многоуровневый NAT становится все более распространенным поскольку адресное пространство IPv4 продолжает истощаться, тем не мение, так что поддержка перевода шпильки важен в будущих реализациях NAT.
Оценить надежность методов пробивки отверстий TCP и UDP. описанный в этой статье на множестве существующих NAT, мы реализовали и распространили тестовую программу под названием Проверка NAT [16], и запросил у пользователей Интернета данные об их NAT.
Основная цель проверки NAT это проверить NAT для двух наиболее важных поведенческих свойств для надежной перфорации UDP и TCP: а именно, согласованный перевод конечных точек с сохранением идентичности (Раздел 5.1), и молча отбрасывать незатребованные входящие TCP SYN вместо того, чтобы отклонять их с помощью RST или ошибок ICMP (Раздел 5.2). Кроме того, NAT Проверить отдельно тесты поддерживает ли NAT трансляцию с помощью шпильки (Раздел 5.4), и фильтрует ли NAT нежелательный входящий трафик вообще.Последнее свойство не влияет на пробивку отверстий, но предоставляет полезную информацию о политике брандмауэра NAT.
Проверка NAT не предпринимает никаких попыток чтобы протестировать каждый аспект поведения NAT индивидуально: известно множество тонких поведенческих различий, некоторые из которых трудны проверить надежно [12]. Вместо этого NAT Check просто пытается ответить на вопрос, «Как часто предлагаемые методы пробивки отверстий ожидается, что он будет работать на развернутых NAT, в типичных сетевых условиях? »
NAT Check состоит из клиентской программы для запуска на машине за NAT для тестирования, и три известных сервера с разными глобальными IP-адресами.Клиент взаимодействует с тремя серверами чтобы проверить поведение NAT актуально как для TCP, так и для UDP. Клиентская программа небольшая и относительно портативная, в настоящее время работает в Windows, Linux, BSD и Mac OS X. Все машины, на которых размещены известные серверы, работают под управлением FreeBSD.
6.1.1 Тест UDP
Чтобы проверить поведение NAT для UDP, клиент открывает сокет и связывает его с локальным UDP-портом, затем последовательно отправляет запросы типа ping на серверы 1 и 2, как показано на рисунке 8.Каждый из этих серверов отвечает на запросы клиента. с ответом, который включает общедоступную конечную точку UDP клиента: собственный IP-адрес клиента и номер порта UDP как заметил сервер. Если два сервера сообщают об одной и той же общедоступной конечной точке для клиента, Проверка NAT предполагает, что NAT правильно сохраняет личность частной конечной точки клиента, удовлетворяет основному условию для надежной пробивки отверстий UDP.
Когда сервер 2 получает запрос UDP от клиента, помимо ответа напрямую клиенту он также перенаправляет запрос на сервер 3, который, в свою очередь, отвечает клиенту со своего собственного IP-адреса.Если брандмауэр NAT правильно фильтрует «Незапрашиваемый» входящий трафик для каждого сеанса, тогда клиент никогда не видит эти ответы от сервера 3, даже если они направлены в один и тот же общественный порт как ответы с серверов 1 и 2.
Чтобы проверить NAT для поддержки перевода шпильки, клиент просто открывает второй сокет UDP на другом локальном порту и использует его для отправки сообщений на общедоступную конечную точку представляющий первый сокет UDP клиента, как сообщает сервер 2.Если эти сообщения достигают первой частной конечной точки клиента, тогда NAT поддерживает трансляцию шпильки.
6.1.2 Тест TCP
Тест TCP следует той же схеме, что и для UDP. Клиент использует единственный локальный TCP-порт для инициирования исходящих сеансов на серверы 1 и 2, и проверяет, сообщенные серверами 1 и 2 одинаковы, первое предварительное условие для надежной пробивки отверстий TCP.
Ответ NAT на попытки нежелательного входящего подключения также влияет на скорость и надежность пробивки отверстий TCP, однако, поэтому проверка NAT также проверяет это поведение.Когда сервер 2 получает запрос клиента, вместо того, чтобы сразу ответить клиенту, он перенаправляет запрос на сервер 3 и ожидает, пока сервер 3 ответит сигналом «вперед». Когда сервер 3 получает этот перенаправленный запрос, он пытается инициировать входящее соединение к общедоступной конечной точке TCP клиента. Сервер 3 ждет до пяти секунд чтобы это соединение было успешным или неудачным, и если попытка подключения все еще «в процессе» через пять секунд, сервер 3 отвечает серверу 2 сигналом «вперед» и продолжает ждать до 20 секунд.Как только клиент наконец получит ответ от сервера 2 (какой сервер 2 отложил ожидание сигнала «вперед» от сервера 3), клиент пытается установить исходящее соединение с сервером 3, эффективно вызывает одновременное открытие TCP с сервером 3.
Что происходит во время этого теста зависит от поведения NAT следующим образом. Если NAT правильно просто отбрасывает «незапрошенные» входящие SYN-пакеты сервера 3, тогда в клиентском сокете прослушивания ничего не происходит в течение пяти секунд до того, как сервер 2 ответит клиенту.Когда клиент наконец инициирует собственное соединение с сервером 3, открытие дыры через NAT, попытка немедленно увенчается успехом. Если с другой стороны NAT выполняет , а не , отбрасывает незапрошенные входящие SYN сервера 3 но позволяет им пройти (что хорошо для дырокола, но не идеально для безопасности), тогда клиент получает входящее TCP-соединение на свой прослушивающий сокет до получения ответа от сервера 2. Наконец, если NAT активно отклоняет незапрошенные входящие SYN сервера 3 отправив обратно пакеты TCP RST, затем сервер 3 сдается и последующая попытка клиента подключиться к серверу 3 терпит неудачу.
Чтобы проверить трансляцию шпильки для TCP, клиент просто использует вторичный локальный TCP-порт попытаться подключиться к общедоступной конечной точке соответствующий его основному TCP-порту, так же, как и для UDP.
Собранные нами данные NAT Check состоит из 380 зарегистрированных точек данных охват разнообразного оборудования NAT-маршрутизатора от 68 поставщиков, а также встроенная функция NAT в разные версии восьми популярных операционных систем. Только 335 из общего числа точек данных включают результаты для перевода шпильки UDP, и только 286 точек данных включают результаты для TCP, потому что мы реализовали эти функции в более поздних версиях NAT Check после того, как мы уже начали собирать результаты.Данные сведены поставщиком NAT в Таблицу 1; в таблице указаны только отдельные поставщики для которого было доступно не менее пяти точек данных. Вариации результатов тестирования для данного поставщика можно объяснить множеством факторов, например, разные устройства NAT или продуктовые линейки, продаваемые одним и тем же поставщиком, разные версии программного обеспечения или прошивки одной и той же реализации NAT, разные конфигурации, и, возможно, случайные ошибки тестирования NAT или сообщения об ошибках.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Из 380 зарегистрированных точек данных для UDP, в 310 случаях (82%) NAT последовательно переводил частную конечную точку клиента, указывает на базовую совместимость с перфорацией UDP.Однако поддержка перевода шпильки встречается гораздо реже: из 335 точек данных, которые включают результаты трансляции шпильки UDP, только 80 (24%) показывают поддержку перевода шпильки.
Из 286 точек данных для TCP, 184 (64%) показывают совместимость с пробивкой отверстий TCP: NAT последовательно транслирует частную конечную точку TCP клиента, и не отправляет обратно пакеты RST в ответ на попытки нежелательного входящего подключения. Поддержка перевода шпильки снова встречается гораздо реже: только 37 (13%) отчетов показал шпильку поддержку TCP.
Поскольку эти отчеты были созданы сообществом добровольцев, «выбирающих сами», они не составляют случайную выборку и поэтому не обязательно представляют истинное распределение NAT в общем пользовании. Тем не менее результаты обнадеживают: похоже, что большинство часто используемых NAT уже поддерживает пробивку отверстий UDP и TCP по крайней мере, в сценариях одноуровневого NAT.
Текущий протокол тестирования NAT Check имеет несколько ограничений. в некоторых случаях это может привести к ошибочным результатам.Во-первых, мы узнали только недавно что несколько реализаций NAT вслепую переводить IP-адреса, которые они находят в неизвестных приложениях, и протокол проверки NAT в настоящее время не защищает себя от этого поведения путем обфускации передаваемых IP-адресов.
Второй, Текущая проверка перевода шпильки NAT Check может привести к излишне пессимистическим результатам потому что он не использует полную процедуру двусторонней перфорации для этого теста. Проверка NAT в настоящее время предполагает, что NAT поддерживает перевод шпильки. не фильтрует «входящие» шпильки поступающий из частной сети в способе фильтрации входящих соединений прибытие на публичную сторону NAT, потому что такая фильтрация не нужна для безопасности.Однако позже мы поняли, что что NAT может упрощенно обрабатывать любой трафик , направленный на общедоступные порты NAT как «ненадежные» независимо от его происхождения. Мы пока не знаем, какое поведение более распространено.
Наконец-то, Реализации NAT существуют которые последовательно переводят частную конечную точку клиента пока только один клиент за NAT использует конкретный номер частного порта, но переключитесь на симметричный NAT или еще хуже если два или более клиентов с разными IP-адресами в частной сети попробуйте установить связь через NAT с того же частного порта.Проверка NAT могла только обнаружить это поведение требуя, чтобы пользователь запускал его на двух или более клиентских хостах за NAT одновременно. Однако это значительно затруднит использование NAT Check, и невозможно для пользователей, у которых есть только одна работоспособная машина за NAT. Тем не менее, мы планируем реализовать этот функционал тестирования. в качестве опции в будущей версии NAT Check.
Несмотря на трудности тестирования, подобные описанным выше, наши результаты в целом подтверждаются со стороны крупного интернет-провайдера, кто недавно обнаружил, что из трех ведущих производителей потребительских маршрутизаторов NAT, что составляет 86% NAT, наблюдаемых в их сети, все три производителя в настоящее время производят совместимые с NAT с перфорацией UDP [25].Дополнительные независимые результаты недавно полученный с использованием протокола STUN, ориентированного на UDP [12], и STUNT, расширение с поддержкой TCP [8,9], также кажутся совместимыми с наши результаты. Эти последние исследования предоставляют дополнительную информацию о каждом NAT. индивидуально тестируя более широкий спектр моделей поведения, вместо простого тестирования на совместимость с перфорацией как это делает проверка NAT. Поскольку эти более обширные тесты требуется несколько взаимодействующих клиентов за NAT и поэтому их труднее запустить, тем не мение, эти результаты пока доступны на более ограниченном количестве NAT.
Пробивка отверстий UDP был впервые исследован и публично задокументирован Дэном Кегелем [13], и теперь хорошо известен в сообществах одноранговых приложений. Важные аспекты пробивки отверстий UDP также косвенно задокументированы. в спецификациях нескольких экспериментальных протоколов, такие как STUN [19], ДВС [17], и Тередо [11]. Нам неизвестны существующие опубликованные работы который тщательно анализирует пробивку отверстий, тем не мение, или это указывает на проблему перевода шпильки для многоуровневого NAT (раздел 3.5).
Мы также знаем, что ранее не выполнялись работы.
который развивает пробивку отверстий TCP
симметричным способом, описанным здесь.
Даже наличие решающего SO_REUSEADDR / Опции SO_REUSEPORT в API сокетов Беркли
кажется малоизвестным среди разработчиков приложений P2P.
NatTrav [4]
реализует аналогичную, но асимметричную процедуру пробивки отверстий TCP
описано ранее в Разделе 4.5.
ОРЕХИ [9]
и NATBLASTER [1]
реализовать более сложные трюки с перфорацией TCP
это может обойти некоторые из плохих поведений NAT
упомянутые в Разделе 5,
но они требуют, чтобы сервер рандеву подделывал исходные IP-адреса,
и они также требуют, чтобы клиентские приложения имели доступ к «сырым» сокетам,
обычно доступно только на уровне привилегий root или администратора.
Такие протоколы, как SOCKS [14], UPnP [26], и MIDCOM [22] разрешить приложениям проходить через NAT через явное сотрудничество с NAT. Эти протоколы не поддерживаются широко или постоянно. поставщиками NAT или приложениями, однако, и, кажется, не обращаются все более важными сценариями многоуровневого NAT. Явный контроль NAT в дальнейшем требует, чтобы приложение обнаружило NAT и, возможно, аутентифицировать себя, что обычно включает явную настройку пользователя. Когда пробивка отверстий работает, наоборот, он работает без вмешательства пользователя.
Последние предложения такие как HIP [15] и FARA [2] расширить базовую архитектуру Интернета путем отделения идентичности хоста от его местоположения [20]. IPNL [7], UIP [5,6], и DOA [27] предлагать схемы маршрутизации через NAT в такой архитектуре. Хотя такие расширения вероятно, нужны в долгосрочной перспективе, пробивка отверстий позволяет применять немедленно работать над существующей сетевой инфраструктурой без обновления стека протоколов, и оставляет определение «идентичности хоста» приложениям.
Пробивка отверстий — это универсальная техника. для установления одноранговых соединений при наличии NAT. Если задействованные NAT соответствуют определенным поведенческим требованиям, пробивка отверстий работает стабильно и надежно как для TCP, так и для UDP, и может быть реализован обычными приложениями без особых привилегий или конкретную информацию о топологии сети. Пробивка отверстий полностью сохраняет прозрачность это одна из самых важных отличительных черт и достопримечательностей NAT, и работает даже с несколькими уровнями NAT — хотя в некоторых угловых случаях требуется перевод шпильки, функция NAT еще не получила широкого распространения.
Авторы выражают благодарность Дэйву Андерсену за его решающую поддержку. при сборе результатов, представленных в разделе 6. Мы также хотим поблагодарить Хенрика Нордстрома, Кристиана Уитема, Джастин Уберти, Мема Руссопулос, и анонимные обозреватели USENIX за ценные отзывы на ранних черновиках этой статьи. Наконец, мы хотим поблагодарить многих добровольцев. кто нашел время, чтобы запустить проверку NAT в своих системах и отправьте результаты.
- 1
- Эндрю Биггэдайк, Даниэль Ферулло, Джеффри Уилсон и Адриан Перриг.
NATBLASTER: Установление TCP-соединений между хостами за NAT.
В ACM SIGCOMM Asia Workshop , Пекин, Китай, апрель 2005 г. - 2
- Дэвид Кларк, Роберт Брейден, Аарон Фальк и Венката Пингали.
FARA: Реорганизация архитектуры адресации.
В ACM SIGCOMM FDNA Workshop , август 2003 г. - 3
- С. Диринг и Р. Хинден.
Интернет-протокол, версия 6 (IPv6), спецификация, декабрь 1998 г.
RFC 2460. - 4
- Джеффри Л. Эппингер.
TCP-соединений для приложений P2P: программный подход к решению Проблема с NAT.
Технический отчет CMU-ISRI-05-104, Университет Карнеги-Меллона, январь 2005 г. - 5
- Брайан Форд.
Масштабируемая Интернет-маршрутизация по идентификаторам узлов, не зависящих от топологии.
Технический отчет MIT-LCS-TR-926, Лаборатория Массачусетского технологического института для компьютерных наук, октябрь 2003 г. - 6
- Брайан Форд.
Неуправляемый интернет-протокол: укрощение управления пограничной сетью кризис.
В Второй семинар по горячим темам в сетях , Кембридж, Массачусетс, Ноябрь 2003 г. - 7
- Пол Фрэнсис и Рамакришна Гуммади.
IPNL: Интернет-архитектура с расширенным NAT.
В ACM SIGCOMM , август 2002 г. - 8
- Сайкат Гуха и Пол Фрэнсис.
Простой обход UDP через NAT и TCP (STUNT).
http://nutss.gforge.cis.cornell.edu/. - 9
- Сайкат Гуха, Ютака Такедай и Пол Фрэнсис.
NUTSS: подход на основе SIP к сети UDP и TCP возможность подключения.
В SIGCOMM 2004 Workshops , август 2004. - 10
- М. Холдрег и П. Срисуреш.
Сложности протокола с транслятором сетевых IP-адресов, Январь 2001 г.
RFC 3027. - 11
- C. Huitema.
Teredo: туннелирование IPv6 через UDP через NAT, март 2004 г.
Интернет-проект (в разработке). - 12
- К. Дженнингс.
Результаты классификации NAT с использованием STUN, октябрь 2004 г.
Интернет-проект (в разработке). - 13
- Дэн Кегель.
NAT и одноранговые сети, июль 1999 г.
http://www.alumni.caltech.edu/~dank/peer-nat.html. - 14
- M. Leech et al.
Протокол SOCKS, март 1996 г.
RFC 1928. - 15
- Р. Московиц и П. Никандер.
Архитектура протокола идентификации хоста, апрель 2003 г.
Интернет-проект (в разработке). - 16
- Проверка NAT.
http://midcom-p2p.sourceforge.net/. - 17
- Дж. Розенберг.
Установление интерактивного соединения (ICE), октябрь 2003 г.
Интернет-проект (в разработке). - 18
- Дж. Розенберг, К. Хайтема и Р. Мэхи.
Обход с использованием реле NAT (TURN), октябрь 2003 г.
Интернет-проект (в разработке). - 19
- Дж. Розенберг, Дж. Вайнбергер, К. Хайтема и Р. Мэхи.
STUN — простой обход протокола пользовательских дейтаграмм (UDP) через трансляторы сетевых адресов (NAT), март 2003 г.
RFC 3489. - 20
- J. Saltzer.
Об именовании и привязке сетевых пунктов назначения.
В P. Ravasio et al., Редактор, Local Computer Networks , стр. 311-317. Северная Голландия, Амстердам, 1982 г.
RFC 1498. - 21
- П. Срисуреш и М. Холдрег.
Терминология транслятора сетевых адресов (NAT)
и соображения, август 1999 г.
RFC 2663. - 22
- П. Срисуреш, Дж. Кутан, Дж. Розенберг, А.Молитор и А. Райхан.
Архитектура и структура связи промежуточных ящиков, август 2002 г.
RFC 3303. - 23
- Протокол управления трансмиссией, сентябрь 1981 г.
RFC 793. - 24
- Г. Цирцис и П. Срисуреш.
Трансляция сетевых адресов — трансляция протоколов (NAT-PT), Февраль 2000 г.
RFC 2766. - 25
- Джастин Уберти.
Электронная почта в списке рассылки IETF MIDCOM, февраль 2004 г.
Идентификатор сообщения: <[email protected]>. - 26
- Форум UPnP.
Стандартизованный протокол управления устройством Интернет-шлюза (IGD), Ноябрь 2001 г.
http://www.upnp.org/. - 27
- Майкл Уолфиш, Джереми Стриблинг, Максвелл Крон, Хари Балакришнан, Роберт
Моррис и Скотт Шенкер.
Мидлбоксы больше не считаются вредными.
На симпозиуме USENIX по разработке операционных систем и Реализация , Сан-Франциско, Калифорния, декабрь 2004 г.
P2P Пробивка отверстий в домашних условиях IoT
3 марта 2019 г. Шакед ИланПробивка отверстий в P2P …
Не новость, что многие домашние устройства Интернета вещей постоянно отправляют данные в свои соответствующие мобильные приложения, особенно когда речь идет о видео и аудио.
Таким образом, потребители ищут устройства, которые могут правильно работать с данными, или, другими словами, интеллектуальные устройства с хорошими показателями производительности и возможности подключения.Но потребители скоро узнают, что им также следует учитывать дополнительные параметры, поскольку они понимают, что, входя в интеллектуальные устройства, они открывают черный ход в свой домашний Wi-Fi.
Связь между интеллектуальными устройствами и соответствующими мобильными приложениями осуществляется либо через облачный сервер, либо посредством прямого однорангового соединения (AKA P2P). Поскольку общая производительность обычно выше по качеству при использовании P2P, этот протокол предпочтительнее для интеллектуальных видео- и аудиоустройств.
Но чтобы создать это прямое соединение, нужно преодолеть домашний NAT.Есть два распространенных метода, позволяющих установить это: перенаправление портов и перфорация отверстий. Это называется пробиванием отверстий UDP, потому что оно пробивает брешь в брандмауэре сети, что позволяет пакету из внешней системы успешно достигать желаемого клиента в сети с использованием NAT.
Несмотря на то, что переадресация портов может быть проще в реализации и не требует использования стороннего сервера снижения рисков, большинство поставщиков избегают этого метода из-за очевидных и хорошо известных рисков безопасности, которые он несет.
Это конец истории?
Что ж, прежде чем мы поспешим обсудить оставление техники пробивания отверстий умирать за счет удобства и производительности, давайте сначала подробнее рассмотрим, как все работает.
Допустим, я хочу посмотреть видеопоток, поступающий с домашней IP-камеры видеонаблюдения на свой смартфон (в определенное приложение).
Независимо от того, подключен ли мой телефон к сотовой сети или к сети Wi-Fi, для этого требуется, чтобы моя камера поддерживала прямое соединение с сервером смягчения последствий. Для этого камера постоянно отправляет пакеты на сервер, а NAT запоминает комбинацию IP / Port и распознает новый входящий сеанс с другим одноранговым узлом как ответ на исходящий сеанс устройства (извините за говорящий по-китайски).
Этот первый шаг позволяет серверу или мобильному устройству подключиться к камере за NAT и, следовательно, имеет решающее значение для процесса пробивки отверстий UDP.
Но безопасно ли это?
Если немного подумать, это в основном означает открытие портов на маршрутизаторе, что очень похоже на знаменитый метод переадресации портов. В худшем случае все, что нужно, — это перехватить один из пакетов, которые устройство отправляет на смягчающий сервер, и злоумышленник может — теоретически — легко добраться до устройства за NAT.Как бы просто это ни звучало.
Это опасение вызывает серьезные опасения по поводу безопасности, но почему-то, и я не совсем понимаю, почему этим проблемам не уделяется должного внимания в наши дни.
Действительно, для того, чтобы атака действительно произошла, хакеру необходимо «воспользоваться» исходной уязвимостью (чтобы фактически использовать устройство, находящееся за NAT). Тем не менее, технику пробивания отверстий можно в основном рассматривать как технику, которая имеет побочный эффект создания платформы атаки с помощью множества простых устройств.
Выявить известную уязвимость или взломать пароли по умолчанию на этих устройствах обычно несложно. Пробивка отверстий в некоторой степени подвергает интеллектуальные устройства доступу в Интернет, превращая их в легкую добычу.
Заключение
Поскольку мы не можем изменить все устройства IoT для обмена данными через облако и в любом случае не хотим идти на компромисс с производительностью, любое оптимальное решение безопасности должно проходить через технику пробивания дыр, а не пытаться ее изменить.
Вот почему компании Интернета вещей должны использовать постоянно обучающееся и проактивное решение безопасности, работающее в режиме реального времени, которое могло бы исправить этот недостаток (или любую другую угрозу, которая может возникнуть).
Существует постоянный конфликт между безопасностью и взаимодействием с пользователем, компании Интернета вещей теперь могут использовать решение безопасности, которое защищает их устройства без ущерба для инфраструктуры и функций. Этот тип решения кибербезопасности, который реализован в ядре устройства, может предотвращать, обнаруживать и реагировать на киберугрозы, даже те, которые скрываются за законными методами.
Об авторе
Шакед Илан
Вице-президент по безопасности и исследованиям
Шакед Илан — вице-президент по безопасности и исследованиям в Firedome.Шакед — хакер по душе с 10-летним опытом тестирования на проникновение и НИОКР, как в частных, так и в элитных подразделениях израильской разведки. Раньше он был ИТ-директором и соучредителем Yin Yang Cyber.c # — TCP Hole Punch (NAT Traversal) Library или что-то в этом роде?
В каждом сетевом сценарии пробивка отверстий TCP работает аналогично пробивке отверстий UDP. Например, если два одноранговых узла A и B находятся за разными NAT, первый SYN-пакет каждого однорангового узла, отправленный другому одноранговому узлу, открывает дыру, связанную с его общедоступным адресом в соответствующем NAT.Если первый SYN-пакет A к B достигает NAT B до того, как первый SYN-пакет B к A достигнет NAT B, NAT B считает SYN-пакет A незапрашиваемым и отбрасывает его. Однако впоследствии первый SYN-пакет B может успешно пройти через NAT A, поскольку NAT распознает публичный адрес B как место назначения исходящего сеанса, инициированного A.
Так что да. Возможен пробойник TCP. Я не понимаю, почему кто-то мог подумать иначе.
Кроме того, не могли бы вы создать этот тип поведения вручную? Нет необходимости зависеть от какого-либо конкретного протокола, если шаги для сбора всей необходимой информации одинаковы.
Обычно пробивка отверстий TCP (3.2.1) происходит следующим образом:
Клиенты: A, B Сервер: S
• A использует свое соединение с S, чтобы запросить у S соединение с Б. • S отвечает на A, указывая частный и публичный адреса B, и одновременно отправляет адреса A на B.
• A и B асинхронно устанавливают исходящее соединение на- соблазняет (отправляет SYN-пакеты) публике друг друга и частные адреса, с того же порта, который они использовали зарегистрироваться в S. В то же время они слушают Попытки входящего TCP-соединения на их локальном TCP порты.
• A и B ждут ответа SYN-ACK на свой исходящий идущие SYN-пакеты или входящий запрос на соединение (Пакет SYN). Если соединение не удается, одноранговый узел может повторить попытку. это до максимального периода ожидания.
• После завершения процесса трехстороннего рукопожатия, одноранговые узлы аутентифицируют друг друга. Если подлинность- происходит сбой, одноранговые узлы закрывают это соединение и ждут, пока другое соединение успешно аутентифицировано. В Будет использовано первое успешно аутентифицированное соединение для передачи данных TCP.
(я знаю, что это не так уж и много, но для комментария не хватило места).
python — Python3 пробивка отверстий NAT
Я знаю, что эта тема не нова. Существует различная информация, хотя надежное решение не представлено (по крайней мере, я не нашел). У меня есть демон P2P, написанный на python3, и последний элемент в круге — подключение двух клиентов за NAT через TCP. Мои ссылки по этой теме:
https: // bford.info / pub / net / p2pnat /
Как заставить 2 клиента подключаться друг к другу напрямую после того, как оба подключили сервер точки встречи?
Проблемы с пробивкой отверстий TCP
Что я уже сделал:
СЕРВЕР:
#! / Usr / bin / env python3
импорт потоковой передачи
импортный сокет
MY_AS_SERVER_PORT = 9001
ТАЙМ-АУТ = 120,0
BUFFER_SIZE = 4096
def get_my_local_ip ():
s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM)
пытаться:
# даже не обязательно должен быть доступен
с.подключить (('10.255.255.255', 1))
IP = s.getsockname () [0]
кроме исключения:
IP = '127.0.0.1'
наконец:
s.close ()
вернуть байты (IP, кодировка = 'utf-8')
def wait_for_msg (новое_соединение, client_address):
в то время как True:
пытаться:
package = new_connection.recv (BUFFER_SIZE)
если пакет:
msg_from_client = packet.decode ('utf-8')
client_connected_from_ip = client_address [0]
client_connected_from_port = client_address [1]
print («У нас есть клиент.Клиент объявил свой локальный IP как: ", msg_from_client)
print (f "Хотя наше соединение исходит от: [{client_connected_from_ip}]: {client_connected_from_port}")
msg_back = bytes ("СЕРВЕР зарегистрировал ваши данные. Ваш локальный IP-адрес:" + str (msg_from_client) + "Вы подключаетесь к серверу ОТ:" + str (client_connected_from_ip) + ":" + str (client_connected_from_port), encoding = ' utf-8 ')
new_connection.sendall (msg_back)
перерыв
кроме ConnectionResetError:
перерыв
кроме OSError:
перерыв
def server ():
sock = сокет.разъем()
sock.setsockopt (сокет.SOL_SOCKET, сокет.SO_REUSEADDR, 1)
sock.setsockopt (сокет.SOL_SOCKET, сокет.SO_REUSEPORT, 1)
sock.bind ((get_my_local_ip (). decode ('utf-8'), MY_AS_SERVER_PORT))
sock.listen (8)
sock.settimeout (TIMEOUT)
в то время как True:
пытаться:
новое_соединение, client_address = sock.accept ()
если новое_соединение:
threading.Thread (target = wait_for_msg, args = (новое_соединение, client_address,)). start ()
# print ("подключен!")
# Распечатать("")
# print (новое_соединение)
# Распечатать("")
# print (client_address)
msg = bytes («Приветствую! Это сообщение пришло с СЕРВЕРА как ответное сообщение!», encoding = 'utf-8')
новое_соединение.sendall (сообщение)
кроме socket.timeout:
проходить
если __name__ == '__main__':
сервер ()
КЛИЕНТ:
#! / Usr / bin / python3
import sys
импортный сокет
время импорта
импорт потоковой передачи
SERVER_IP = '1.2.3.4'
SERVER_PORT = 9001
# Мы не хотим устанавливать соединение со статическим портом. Пусть ОС выберет случайный пустой.
#MY_AS_CLIENT_PORT = 8510
ТАЙМ-АУТ = 3
BUFFER_SIZE = 4096
def get_my_local_ip ():
s = socket.socket (socket.AF_INET, socket.SOCK_DGRAM)
пытаться:
# даже не обязательно должен быть доступен
с.подключить (('10.255.255.255', 1))
IP = s.getsockname () [0]
кроме исключения:
IP = '127.0.0.1'
наконец:
s.close ()
вернуть байты (IP, кодировка = 'utf-8')
def always_try_to_connect (sock):
в то время как True:
пытаться:
sock.connect ((SERVER_IP, SERVER_PORT))
кроме ConnectionRefusedError:
print (f "Не удается подключиться к IP-адресу СЕРВЕРА [{SERVER_IP}]: {SERVER_PORT} - сервер жив? Спит какое-то время ...")
время сна (1)
кроме OSError:
#print ("Уже подключен к серверу.Завершите текущий сеанс, чтобы повторно подключиться ... ")
проходить
def client ():
sock = socket.socket ()
sock.setsockopt (сокет.SOL_SOCKET, сокет.SO_REUSEADDR, 1)
sock.setsockopt (сокет.SOL_SOCKET, сокет.SO_REUSEPORT, 1)
# sock.bind ((get_my_local_ip (). decode ('utf-8'), MY_AS_CLIENT_PORT))
sock.settimeout (TIMEOUT)
threading.Thread (цель = постоянно_try_to_connect, args = (носок,)). start ()
в то время как True:
пытаться:
пакет = sock.recv (BUFFER_SIZE)
если пакет:
печать (пакет)
носок.sendall (get_my_local_ip ())
кроме OSError:
проходить
если __name__ == '__main__':
клиент ()
Теперь текущий код результатов:
./tcphole_server.py
У нас есть клиент. Клиент объявил свой локальный IP-адрес как: 10.10.10.50
Хотя наше соединение отсюда: [89.22.11.50]: 32928
У нас есть клиент. Клиент объявил свой локальный IP-адрес как: 192.168.1.20.
Хотя наше соединение отсюда: [78.88.77.66]: 51928
./tcphole_client1.py
b'Greetings! Это сообщение пришло от СЕРВЕРА как ответное сообщение! '
b'SERVER зарегистрировал ваши данные.Ваш локальный IP-адрес: 192.168.1.20. Вы подключаетесь к серверу ОТ: 89.22.11.50:32928 '
./tcphole_client2.py
b'Greetings! Это сообщение пришло от СЕРВЕРА как ответное сообщение! '
b'SERVER зарегистрировал ваши данные. Ваш локальный IP-адрес: 10.10.10.50 Вы подключаетесь к серверу ОТ: 78.88.77.66:51928 '
Как видите, на сервере есть вся информация для подключения двух клиентов. Мы можем отправить подробную информацию о другом узле индивидуально через текущее соединение сервер-клиент .
Теперь в голове остаются два вопроса:
Предположим, что СЕРВЕР отправляет информацию о КЛИЕНТЕ 1 и КЛИЕНТЕ 2 для каждого из одноранговых узлов. И теперь КЛИЕНТЫ начинают подключаться как [89.22.11.50]: 32928 <> [78.88.77.66]: 51928 Должен ли СЕРВЕР закрывать текущие соединения с КЛИЕНТАМИ?
Как ведет себя КЛИЕНТ-маршрутизатор? Я предполагаю, что он ожидает того же ВНЕШНЕГО СЕРВЕРА SRC IP [1.2.3.4], вместо этого получает, например, один из КЛИЕНТОВ EXT IP [89.22.11.50] или [78.88.77.66]?
Это грязнее, чем я думал. Любая помощь в продвижении вперед приветствуется. Надеюсь, это поможет и другим разработчикам / DevOps.
Обход NAT с перфорацией UDP
В наши дни многие сети используют NAT (преобразование сетевых адресов). Это позволяет системам в одной сети иметь один глобальный IP-адрес. Это также обеспечивает повышенную безопасность, но в то же время добавляет сложности, особенно при подключении к P2P (одноранговым) сетям.Это связано с тем, что во время инициации соединения в одноранговой сети невозможно определить, какой пакет, исходящий от однорангового узла, предназначен для какого хоста в сети — потому что у них один глобальный IP-адрес. Кроме того, большинство сетей с NAT могут отбрасывать входящие пакеты просто потому, что не могут определить, какому клиенту на NAT направлен пакет, или могут распознать его как неавторизованный пакет и т. Д. Два распространенных одноранговых приложения: Skype и Spotify.
Пробивка отверстий UDP — один из наиболее распространенных методов, используемых для установления UDP-соединений с системами, находящимися за NAT.Это называется пробиванием отверстий UDP, потому что оно пробивает брешь в брандмауэре сети, что позволяет пакету из внешней системы успешно достигать желаемого клиента в сети с использованием NAT. Хотя для этого процесса требуется сторонний хост для установления соединения между клиентами, исследования показали, что это можно сделать без использования сторонних хостов.
Проблемы при выполнении пробивки отверстий UDP
Пробивка отверстий UDP — это метод, с помощью которого можно пройти через NAT и установить P2P-соединения.Это требует использования стороннего хоста. Важно сначала обсудить проблемы, возникающие при выполнении пробивки отверстий UDP.
Предположим, что две системы, которые хотят связываться друг с другом, — это A и B, а третья система, которая помогает им в установлении соединения, — это C.
1) Чтобы установить соединение между двумя системами, системы должны знать глобальный IP-адрес друг друга и порт, к которому они хотят установить соединение. Однако, когда A отправляет исходящий пакет, возможно, что при прохождении NAT NAT изменит номер порта A (часто называемый рандомизацией портов).Это делает пробивание отверстий UDP практически невозможным. IP-адрес также переписывается, чтобы напоминать IP-адрес NAT.
2) Межсетевой экран NAT может не разрешать входящие подключения извне.
3) Обе системы A и B должны знать IP-адрес стороннего сервера C.
Небольшой эксперимент
Сначала проведем небольшой эксперимент. Убедитесь, что ваша система находится за NAT. Затем зайдите в терминал и сделайте пинг на любом сайте.
Откройте Wireshark, чтобы увидеть проходящие пакеты, как показано на рисунке ниже.
Мы увидим ответы из пункта назначения. Но поскольку наша система находится за NAT, как входящий пакет узнает, что ответ направлен нам?
Что ж, ответ прост. Когда наш первый пакет вышел из сети, NAT A заметил это и понял, что устанавливается какая-то связь. Следовательно, он решил, что любой тип ответа, который соответствует этому исходящему запросу, будет перенаправлен в систему A. Затем он видит, что ответ имеет содержимое исходного исходящего запроса, и понимает, что он предназначен для A, и, следовательно, пересылает пакет к А.Это просто пробило брешь в брандмауэре. Теперь межсетевой экран разрешает входящие ответы, соответствующие запросу от A.
.Как работает перфорация UDP
Теперь у нас есть достаточная справочная информация, чтобы понять, как на самом деле работает пробивка отверстий UDP. Процесс работает следующим образом. Мы предполагаем, что обе системы A и B знают IP-адрес C.
a) И A, и B отправляют пакеты UDP на хост C. По мере того, как пакеты проходят через их NAT, NAT перезаписывает исходный IP-адрес на свой глобально доступный IP-адрес.Он также может переписать номер исходного порта, и в этом случае пробивка отверстий UDP будет практически невозможна.
b) C отмечает IP-адрес и порт входящих запросов от A и B. Пусть номер порта для A равен X, а номер порта для B равен Y.
c) C затем сообщает A отправить пакет UDP на глобальный IP-адрес NAT для B на порту Y и аналогичным образом сообщает B отправить пакет UDP на глобальный IP-адрес NAT для A на порту X.
d) Первые пакеты как для A, так и для B отклоняются при входе в NAT друг друга.Однако, когда пакет проходит от NAT A к NAT B на порту Y, NAT A отмечает это и, следовательно, пробивает дыру в своем брандмауэре, чтобы разрешить входящие пакеты с IP-адреса NAT B на порт Y То же самое происходит с NAT B, и он устанавливает правило, разрешающее входящие пакеты с IP-адреса NAT A из порта X.
e) Теперь, когда A и B отправляют пакеты друг другу, они принимаются и, следовательно, устанавливается P2P-соединение.
С точки зрения тестера на проникновение, важно разработать некоторую стратегию связи с жертвой за NAT.В зависимости от различных сценариев может быть четыре возможных случая. Мы будем считать, что злоумышленник является клиентом, а жертвой — сервером, с которым мы пытаемся связаться.
Случай 1. Жертва и клиент находятся за отдельными NAT.
Случай 2: Жертва и клиент находятся за одним и тем же NAT.
Случай 3. Жертва находится за NAT, а клиент — нет, и имеет глобальный IP-адрес.
Случай 4. Клиент находится за NAT, а жертва — нет, и имеет глобальный IP-адрес.
Техника пробивки отверстий UDP, описанная выше, будет работать почти во всех этих случаях. Я использую это слово почти потому, что пробивка отверстий UDP не работает во всех реализациях NAT просто потому, что не существует стандартной процедуры, в которой работает конкретный NAT. В тех случаях, когда это не работает, сторонний хост используется для ретрансляции всего трафика между A и B.
Как это работает Skype
Skype использует технику пробивки отверстий UDP, чтобы обеспечить связь между пользователями, находящимися за NAT.Однако Skype не использует отдельный сервер в качестве стороннего хоста. Скорее он использует компьютеры своих пользователей в качестве стороннего хоста. Любой клиент, имеющий общедоступный IP-адрес, может стать сторонним хостом. Следовательно, это может увеличить нагрузку на пользователей Skype, поскольку они несут ответственность за установление соединения между пользователями, находящимися за NAT. Иногда пробивка отверстий UDP может быть невозможна по разным причинам, например, из-за рандомизации портов NAT. В случаях, когда пробивка отверстий UDP невозможна, сторонний хост (т.е.е., система пользователя Skype, имеющая глобально доступный IP-адрес) используется для ретрансляции всего обмена данными между пользователями, находящимися за NAT.
P2P-связь без стороннего хоста
Некоторые из проблем с перфорацией отверстий UDP заключаются в том, что для ретрансляции трафика или для установления состояний UDP между машинами всегда требуется сторонний сервер. Это увеличивает нагрузку на сторонний сервер. Было проведено исследование, чтобы определить, возможно ли устанавливать P2P-соединения между системами без стороннего хоста.Исследователи Андреас Мюллер, Натан Эванс, Кристиан Гротхофф и Сами Камкар в своей статье «Автономное прохождение NAT» обсудили некоторые теоретические методы, которые могут помочь в достижении этой цели. Их подход использует поддельные ответы для установления соединения между одноранговыми узлами. Как всегда, у нас одинаковые четыре кейса.
Случай 1. Жертва и клиент находятся за отдельными NAT.
Случай 2: Жертва и клиент находятся за одним и тем же NAT.
Случай 3. Жертва находится за NAT, а клиент — нет, и имеет глобальный IP-адрес.
Случай 4. Клиент находится за NAT, а жертва — нет, и имеет глобальный IP-адрес.
Согласно их статье, предложенная ими методика достаточно хорошо работает для случаев 3 и 4, но не работает так же хорошо для других.
Был также выпущен инструмент проверки концепции под названием «pwnat», который также доступен в Backtrack.
Мы обсудим предложенные ими техники для случаев 3 и 4, а также рассмотрим демонстрацию.
Предположим, что сервер находится за NAT, а клиент пытается инициировать соединение с глобально доступного IP-адреса.
a) Откройте pwnat в Backtrack. Мы видим, что его можно запускать как в серверном, так и в клиентском режиме. Мы запустим оба на нашем локальном компьютере, чтобы понять, как происходит общение.
b) Введите следующую команду, как показано ниже, чтобы запустить сервер. 10.0.2.15 — это IP-адрес нашей локальной машины, а 2222 — это порт, из которого будут генерироваться наши пакеты.
c) Теперь откройте Wireshark и начните прослушивать пакеты. Мы замечаем, что некоторые запросы ping отправляются на несуществующий IP-адрес 3.3.3.3. Обратите внимание: поскольку пакеты передаются через NAT, NAT разрешит входящие пакеты со случайных IP-адресов, которые кажутся ответом на этот запрос.
Обратите внимание, что я говорю случайный IP-адрес, потому что ответ может быть от прыжка на пути к пункту назначения 3.3.3.3 (который не существует), и если он может доказать NAT, что это был ответ на начальный запрос , затем он будет разрешен в сеть и направлен на нашу локальную машину.
г) Теперь запустим клиента.Введите следующую команду, как показано на рисунке ниже, чтобы запустить клиент pwnat. 8000 — это порт на клиенте, с которого мы хотим инициировать соединение. localhost 80 — это хост и порт, на который мы хотим быть перенаправлены по каналу связи.
На стороне сервера мы видим, что он имеет запрос на соединение и регулярно получает пакеты от клиента. Это подтверждает, что канал связи установлен. Пакеты, которые сервер регулярно получает, — это пакеты, отправленные клиентом для поддержания состояния соединения.
Если мы посмотрим на трассировку Wireshark, мы увидим, что на сервер отправляются пакеты «TTL превышен».
Если мы посмотрим на содержимое одного из пакетов, мы увидим, что это содержимое содержит исходный пакет запроса. Этот пакет на самом деле является поддельным ответом серверу, указывающим на то, что истек срок действия TTL для запроса ping на 3.3.3.3. Этот пакет фактически отправляется клиентом, и когда он достигает NAT A, NAT распознает его как ответ на начальный запрос ping на 3.3.3.3 отправлено A и, следовательно, направляет его к A. Как только пакет достигает A, A определяет IP-адрес и порт клиента, и, следовательно, теперь может быть установлен двунаправленный канал связи.
В случаях, когда обе системы находятся за NAT, полезная нагрузка ответа от клиента серверу может содержать IP-адрес клиента, а также номер порта, на котором он хочет инициировать соединение.
Одна из других проблем, связанных с этим, может заключаться в том, что поддельные ответы ICMP, отправленные клиентом, могут быть отклонены клиентским NAT.Следовательно, это работает не во всех случаях. Инструмент pwnat поддерживает связь между NAT и одноранговыми узлами NAT.
Заключение
ПриложенияP2P очень популярны в наши дни, главным образом потому, что они не требуют использования сторонних серверов для ретрансляции трафика между ними. Однако из-за этого системам, находящимся за NAT, сложно установить P2P-сети между ними. С точки зрения тестировщика на проникновение важно установить прямой канал связи с жертвой, которая находится за NAT.
В этой статье мы обсудили некоторые методы, такие как пробивка отверстий UDP, которые используют сторонние хосты для установления состояний связи между клиентом. Как только состояние связи установлено, эти клиенты могут установить двунаправленный канал связи друг с другом. Мы также рассмотрели некоторые методы установления связи между двумя системами за NAT без использования сторонних хостов и рассмотрели некоторые сценарии их использования.
Источники
IRJET-Запрошенная вами страница не найдена на нашем сайте
IRJET приглашает статьи из различных инженерных и технологических дисциплин, для выпуска 8 (август 2021 г.)
Отправить сейчас
IRJET Vol-8 Выпуск 8, Август 2021 Публикация в процессе …
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своего Система контроля качества.
IRJET приглашает специалистов по различным инженерным и технологическим дисциплинам, научным дисциплинам для Тома 8, выпуск 8 (август 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 8, август 2021 г. Публикация продолжается …
Просмотр Документы
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы менеджмента качества.
IRJET приглашает специалистов по различным инженерным и технологическим дисциплинам, научным дисциплинам для Тома 8, выпуск 8 (август 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 8, август 2021 г. Публикация продолжается …
Просмотр Документы
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы менеджмента качества.
IRJET приглашает специалистов по различным инженерным и технологическим дисциплинам, научным дисциплинам для Тома 8, выпуск 8 (август 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 8, август 2021 г. Публикация продолжается …
Просмотр Документы
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы менеджмента качества.
IRJET приглашает специалистов по различным инженерным и технологическим дисциплинам, научным дисциплинам для Тома 8, выпуск 8 (август 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 8, август 2021 г. Публикация продолжается …
Просмотр Документы
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы менеджмента качества.
IRJET приглашает специалистов по различным инженерным и технологическим дисциплинам, научным дисциплинам для Тома 8, выпуск 8 (август 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 8, август 2021 г. Публикация продолжается …
Просмотр Документы
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы менеджмента качества.
IRJET приглашает специалистов по различным инженерным и технологическим дисциплинам, научным дисциплинам для Тома 8, выпуск 8 (август 2021 г.