В какой-то момент я решил заняться self-hosting’ом дома: небольшой хомлаб, Proxmox, несколько сервисов за reverse proxy, HTTPS - всё максимально стандартно. Никакой экзотики: обычный домашний интернет, белый IP, проброс портов, nginx с TLS.
Но на этапе публикации сервисов наружу выяснилось странное: входящий 443 порт просто не открывается, при том что 80 и другие порты работают.
Исходные условия
Чтобы сразу исключить очевидные варианты, перечислю вводные:
Каждый раз, когда в Иране возникают массовые протесты, мы наблюдаем уже привычную картину: информационный поток замирает. Связь с интернетом сильно замедляется или пропадает полностью.
Несколько дней назад в маршрутизаторе моего провайдера после отключения электричества поломался IPv4. К счастью, подключение по IPv6 продолжало работать, но доступна была только малая часть веб-сайтов.
Иногда появляется необходимость обращения к брокерам Kafka из другой сети через NAT. Но, даже если NAT настроен корректно, то при попытках подключения, обратно возвращается ошибка о том, что брокер недоступен. Хотя ping и telnet по нужному порту проходят. В статье мы подробно разберем, как необходимо настроить Kafka для того, чтобы к системе можно было обращаться через NAT.
Корень проблемы
Kafka имеет особенный алгоритм обработки входящих подключений. Если его очень сильно упростить, то он сводится к следующим шагам:
Получил запрос на подключение от клиента по прослушиваемому порту
Поставили новый роутер, запустили онлайн-игру или развернули облачный сервер — и снова натыкаетесь на «двойной NAT», бесконечный порт-форвардинг и вместо своего IP видите чей-то 203.0.113.45. Причем железо и провайдеры уже готовы к IPv6, а мы все еще буксуем в прошлом.
Давайте посмотрим, почему наследие старого интернета — повсеместный NAT — тормозит нашу сетевую эволюцию и что с этим можно сделать. Детали под катом.Читать полностью »
Если вы полный ноль в интернет-технологиях, и хотите получить общее понимание Интернета, прочитав всего одну статью, то эта статья — для вас.
Здесь вы узнаете о 4 уровнях модели TCP/IP. О том, что такое MAC‑адрес и IP-адрес, и зачем нам 2 типа цифровых адресов. Как работает DNS. Зачем нужны коммутаторы и роутеры. Как работает NAT. Как устанавливается защищённое соединение. Что такое инфраструктура открытых ключей, и зачем нужны TLS-сертификаты. Чем отличаются три версии протокола HTTP. Как происходит HTTP-аутентификация. И в конце будет несколько слов о VPN.
Приветствую, коллеги! Меня зовут ProstoKirReal, и сегодня мы продолжим наше путешествие по модели OSI, обсудив транспортный уровень (L4). Этот уровень играет ключевую роль в обеспечении надежной передачи данных.Читать полностью »
Многие, кто работают с интернет-сокетами в любой сфере IT, задаются вопросом о пробросе портов. Связано это с тем, что практически во всех домашних/общественных/корпоративных роутерах реализован механизм NAT, который перекрывает прямой доступ к устройствам в этих подсетях извне, общаясь с внешним интернетом от их имени.
У NAT есть киллер-фича — он представляет собой идеальный фаервол: атаки извне не могут использовать порты локальных устройств напрямую, следовательно, это решает проблему атак на сетевую уязвимость ОС.
Но, это доставляет и неудобства, например, если ты захочешь подключиться или хотя бы увидеть устройство за NAT в благих целях, то ты чисто теоретически не сможешь это сделать — у него относительно тебя нет IP-адреса.
Разнообразные сервисы работают на серверах, т. е. имеют некую ноду, которая имеет белый адрес в интернете (находится не за NAT). Все пользователи же подключаются к этому единому серверу. В таком случае проблема «невидимости» пользователей отпадает. Однако чисто серверное взаимодействие ограничивает скорость участников, так ещё и не отказоустойчиво. Если сервер упадёт, то все клиенты отправятся за ним (считаем, что это одноклеточный сервис не на всяких там kubernetes).
Как вы уже могли были догадаться, даже в реалиях, когда практически все устройства находятся за NATами, P2P реален. Когда вы являетесь участником bittorrent-раздачи, трансфер больших данных осуществляется напрямую. Как это работает? Поиск ответа на этот вопрос завёл меня в глубокие дебри, разгребая которые я написал оверлейную p2p-сеть, где трекерами являются сами её участники. Интересно? Тогда добро пожаловать под кат.Читать полностью »
По мере исчерпания адресов IPv4, многие операторы связи столкнулись с необходимостью организовывать доступ своих клиентов в сеть с помощью трансляции адресов. В этой статье я расскажу, как можно получить производительность уровня Carrier Grade NAT на commodity серверах. Читать полностью »