Сетевик Джонни // Network Admin
5.96K subscribers
517 photos
61 videos
390 links
Я Сетевик Джонни, моя цель в телеграме рассказать все о сетях в доступной форме!

Сотрудничество: @stein_media
Download Telegram
Как часто вы делаете code-review в своих проектах? 

Проверка кода – важная часть функционала разработчика, этот процесс помогает выявить ошибки, пропуски, уязвимости и стилистические недочеты. 

Хотите научиться правильно проводить ревью, чтобы повысить качество своих конечных результатов? 

Приходите на бесплатный открытый урок «Code-review онлайн» от OTUS.

Преподаватель курса «С# Developer Professional» Антон Герасименко, .net developer + lead с опытом в разработке более 10 лет:
— проведет code-review нескольких учебных проектов;
— расскажет о сode-review в целом: стоит ли его проводить, кому и когда он полезен.

🔥Во второй части урока у вас будет возможность отправить свой код и разобрать его вместе с преподавателем прямо на вебинаре!

📆 Занятие пройдёт 5 октября в 20:00 мск в рамках курса «C# Developer. Professional». После открытого урока вы сможете поступить на курс на специальных условиях.

➡️Регистрируйтесь на вебинар https://otus.pw/wUJO/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, ERID: LjN8K7MGv, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🌐 Протоколы семейства TCP/IP. Теория и практика

Выделим базовые понятия из модели TCP/IP:

▫️хост (host);
▫️сообщение;
▫️IP-датаграмма;
▫️пакет;
▫️фрейм;
▫️IP-адрес;
▫️MAC-адрес;
▫️TCP-сегмент;
▫️UDP-датаграмма;
▫️MTU.

IP-сеть представляет собой множество связанных между собой хостов. Хосты связаны непосредственно или косвенно при помощи ретранслирующих устройств (маршрутизаторов и коммутаторов).

Адресация позволяет указать источника и получателя данных. Для слоя L2 получатель и отправитель идентифицируются MAC-адресами, для L3 — IP-адресами, для L4 — портами.

Сетевое устройство или хост могут иметь следующие типы адресов:

▫️индивидуальный адрес (unicast address);
▫️широковещательный адрес (broadcast address);
▫️групповой адрес (multicast address).

Существует ряд протоколов, на которых всё основывается:

▫️Ethernet II;
▫️IP — Internet Protocol;
▫️ICMP — Internet Control Management Protocol;
▫️UDP — User Datagram Protocol;
▫️TCP — Transmission Control Protocol;
▫️DHCP — Dynamic Host Configuration Protocol;
▫️DNS — Domain Name Service.

Рассмотрим их поподробнее. Данные передаются порциями, которые называются Protocol Data Unit (PDU). PDU состоит из заголовка (header) и полезных данных (payload). PDU одного протокола в полезных данных могут содержать PDU другого протокола. Это называется инкапсуляцией.
В зависимости от уровня, на котором работает сетевой протокол, PDU могут называться по-разному:

▫️на канальном уровне — фрейм;
▫️на сетевом уровне — пакет (IP, ICMP);
▫️на транспортном уровне — сегмент или датаграмма (TCP, UDP);
▫️на прикладном уровне — сообщение (DNS, DHCP).

💬 Подробнее в статье

#TCP #IP | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥1
P2P-форум с нуля | от NAT hole punching до автономной и полностью децентрализованной сети

NAT
(от англ. Network Address Translation — «преобразование сетевых адресов») — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов

В нашем примере Google имел статичный белый адрес с заранее проброшенным портом. Но как заставить таким образом соединиться два устройства за NATами?

▫️Ты отправляешь пакет на 1.2.3.4, создавая тем самым сессию, открытую на внешнем порту X
▫️1.2.3.4 видит твой внешний порт X, когда принимает пакет (друг не видел, ведь пакет не дошёл)
▫️Владелец 1.2.3.4 неким образом сообщает тебе твой внешний порт данной сессии X
▫️Ты отправляешь пакет на адрес друга, используя тот же локальный порт на ПК, что и для пакета к 1.2.3.4. Это заставляет пакет идти через уже имеющуюся сессию NAT
▫️Твоя сессия NAT теперь будет принимать пакеты не от 1.2.3.4, а от твоего друга
▫️Пакет разбивается о железный файрвол роутера друга снаружи
▫️Кажется, что всё как в прошлой попытке, однако сейчас мы знаем X за счёт помощи от 1.2.3.4
▫️Друг делает эти же шаги, но уже обращаясь к нашему адресу в порт X, который будет открыт вместе с сессией NAT ещё несколько секунд и настроен на приём пакетов от друга
▫️Пакет друга доходит до нашего локального компьютера
▫️Мы видим внешний порт друга Y (аналогично X) в заголовке полученного пакета и теперь можем общаться в обе стороны сквозь трансляторы

STUN-сервер - это сервер, который отвечает на все входящие пакеты адресом и портом X, из которого они были отправлены. Это позволяет определить свой внешний IP-адрес и внешний порт X своей сессии NAT

Наша оверлейная сеть будет представлять из себя неограниченное количество нод, соединённых друг с другом посредством udp-туннелей, созданных между их NAT

Мы получили теоретически рабочую оверлейную сеть, где устройства могут общаться друг с другом без каких-либо препятствий, как если бы они находились в одной LAN (за исключением свободы выбора порта)

💬 Подробнее в статье

#P2P #NAT | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🙉1
⚙️ Reticulum — радиопротокол для mesh-сети. Зашифрованная пиринговая связь без интернета

RNS работает на основе совершенно нового протокола, у которого ряд преимуществ перед IP-протоколом (хотя IP тоже поддерживается).

Главные преимущества Reticulum перед традиционными сетевыми стеками — поддержка очень низкого битрейта и очень больших задержек. То есть можно передавать пакеты по самым простым радиоканалам во время краткосрочных сеансов связи. При этом сохраняется сквозное шифрование и полная анонимность.

Особенности стека:

Бескоординатная глобальная адресация и идентификация.
Полностью самоконфигурирующаяся многоцелевая маршрутизация (multi-hop).
Асимметричное шифрование X25519 и подписи Ed25519.
Спецификация шифрования Fernet:
▫️AES-128 в режиме CBC с набивкой PKCS7;
▫️HMAC с аутентификацией SHA256;
▫️генерация векторов инициализации с помощью os.urandom();
▫️прямая секретность с эфемерными ключами по протоколу
Диффи — Хеллмана на эллиптических кривых (ECDH), набор Curve25519.
Защищённые от подделки подтверждения доставки пакетов.
Разнообразие типов интерфейсов.
Интуитивно понятный и простой в использовании API.
Надёжная и эффективная передача произвольных объёмов данных.
▫️поддержка многогигабайтных файлов;
▫️автоматический подсчёт контрольных сумм, координация и восстановление последовательности пакетов;
▫️расширяемый механизм запросов/ответов.
Эффективное установление соединения: три пакета общим размером 237 байт, далее расход поддержания коннекта 0,62 бита в секунду.

#Reticulum | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21
Что такое Web 3.0, и почему он всем стал нужен

Web 3.0
- Идея новой итерации Всемирной паутины на основе блокчейна, которая включает в себя такие концепции, как децентрализация и экономика на основе токенов

Определяющие характеристики Web 3.0:

▫️Децентрализация: данные больше не будут храниться на единых серверах, а распределятся между пользователями. Необходимые вычисления переедут из датацентров на ноутбуки, смартфоны и «умные» гаджеты пользователей

▫️ИИ и машинное обучение: интеллектуальные алгоритмы не исчезнут из Сети и все также будут продолжать помогать пользователям искать необходимый контент

▫️Открытость: ПО будет преимущественно с открытым исходным кодом, что позволит досконально понимать, как устроены инструменты и каким образом они взаимодействуют с юзером

▫️Свобода: ожидается, что цензура в Сети будет упразднена, и у каждого будет возможность публиковать любой контент, роль модерации на себя возьмет сообщество, а не корпорации

▫️Вездесущность: специалисты предполагают, что в эпоху Web 3.0 Интернет будет практически в любом месте, а распространителями станут IoT-устройства и «умные» гаджеты

▫️Семантическая паутина: машина плохо понимает запросы на естественном языке и все еще часто ошибается. Для улучшения этого процесса планируют использовать технологию семантической паутины, когда из Сети можно получать информацию вида «предмет — вид взаимосвязи — другой предмет» и уже по этим данным строить логические связи

Может поменяться способ авторизации в сервисах на единую прослойку, которая будет ключом ко всем ресурсам в Сети. С помощью аккаунта Google или Facebook можно войти на практически любой сайт, но в случае Web 3.0 единый аккаунт может стать и кошельком, и банковским приложением

Интернет станет более демократизированным и полезность контента будут определять Децентрализованные автономные организации (ДАО), которыми станут крупные компании и сервисы, а участники ДАО будут иметь право голоса и принимать важные для контента и самих организаций решения

#Web | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍31🤔1
☄️ SQL и NoSQL: разбираемся в основных моделях баз данных

СУБД — это общий термин, относящийся ко всем видам абсолютно разных инструментов, от компьютерных программ до встроенных библиотек. Эти приложения управляют или помогают управлять наборами данных. Так как эти данные могут быть разного формата и размера, были созданы разные виды СУБД.

NoSQL-способ структуризации данных заключается в избавлении от ограничений при хранении и использовании информации. Базы данных NoSQL, используя неструктуризированный подход, предлагают много эффективных способов обработки данных в отдельных случаях (например, при работе с хранилищем текстовых документов).

Реляционные системы управления базами данных (РСУБД) берут своё название от реализуемой модели — реляционной. Сейчас они остаются, да и ещё какое-то время будут, самым популярным выбором для надёжного, безопасного и производительного хранения данных.

Самыми популярными РСУБД сейчас являются:

▫️SQLite: очень мощная встраиваемая РСУБД.
▫️MySQL: самая популярная и часто используемая РСУБД.
▫️PostgreSQL: самая продвинутая и гибкая РСУБД.

Сравнение SQL и NoSQL:

▫️Структура и тип хранящихся данных: SQL/реляционные базы данных требуют наличия однозначно определённой структуры хранения данных, а NoSQL базы данных таких ограничений не ставят.

▫️Запросы: вне зависимости от лицензии, РСУБД реализуют SQL-стандарты, поэтому из них можно получать данные при помощи языка SQL.

▫️Масштабируемость: оба решения легко растягиваются вертикально (например, путём увеличения системных ресурсов).

▫️Надёжность: когда речь заходит о надёжности, SQL базы данных однозначно впереди.

▫️Поддержка: РСУБД имеют очень долгую историю. Они очень популярны, и поэтому получить поддержку, платную или нет, очень легко. Поэтому, при необходимости, решить проблемы с ними гораздо проще, чем с NoSQL, особенно если проблема сложна по своей природе (например, при работе с MongoDB).

#SQL #NoSQL | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1
🛜 Wi-Fi Mesh сети для самых маленьких
(На фото сравнительная таблица Mesh протоколов)

Mesh сеть — это распределенная, одноранговая, ячеистая сеть.
Каждый узел в ней обладает такими же полномочиями как и все остальные, грубо говоря — все узлы в сети равны.

Сети бывают самоорганизующиеся и настраиваемые, первый тип сетей при включении оборудования, которое его поддерживает, автоматически подключаются к существующим участникам, выбирают оптимальные маршруты и самонастраиваются внутри сети.

Данная технология решает следующие проблемы:

▫️Позволяет быть независимыми от провайдеров
▫️Вы можете сами построить свою сеть с шлю... Wi-Fi роутерами и маршрутизацией
▫️Для подключения к сети вам не нужно производить никаких сложных действий (при условии, если сеть самонастраиваемая)
▫️Каждый новый клиент, который подключился к сети, увеличивает ёмкость сети
▫️Понятие «бесплатный Wi-Fi дома» меняется на «бесплатный Wi-Fi везде»
▫️Если произошло стихийное бедствие, то с помощью Mesh сети можно быстро построить сеть на месте пришествия для связи, при поддержке из вне — соединить её с глобальной сетью

Полноценная Mesh Wi-Fi сеть - это такая сеть, для подключения к которой не требуется никакого дополнительного ПО кроме dhcp-клиента и поддержки ipv6 системой

Какие технологии и протоколы используются:

▫️CJDNS
▫️B.A.T.M.A.N.
▫️DTN
▫️Netsukuku
▫️OSPF

#Mesh | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
📌Книга «Децентрализованные приложения. Технология Blockchain в действии»

Технология Bitcoin показала, как можно использовать криптографически сохраненные записи, модель с ограниченными ресурсами, открытый исходный код и пиринговые сети для создания нового типа успешных приложений.

Децентрализованные приложения гибче, прозрачнее и надежнее, чем современное программное обеспечение, созданное с применением традиционных моделей. Эта книга знакомит вас с основами создания децентрализованных приложений и принципами их разработки на примере нескольких доходных приложений. Причина такого коммерческого уклона объясняется тем, что прибыль (выгода) является основой успешного, надежного и перспективного децентрализованного приложения. Воспользуйтесь ими как трамплином к созданию вашего собственного приложения.

💬 Читать подробнее

📖 Ссылка на издательство

#books | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
⚡️ Что такое BitTorrent v2, и что с ним произошло?

Наверное вы слышали о новом протоколе BitTorrent v2, работа над которым велась с 2008-го года, и наделала шума с выходом второй версии популярной торрент-библиотеки Libtorrent, которой пользуются знакомые вам торрент-клиенты, такие как qBittorrent, Deluge и многие другие

Релиз BitTorrent v2 по большому обусловил тот факт, что каждая скачанная вами раздача имела уникальный info хеш, и эту раздачу могли поддерживать только те, кто общался именно по этому хешу. При переименовании файла в раздаче или перемещении его из одной папки в другую, полностью менялся хеш раздачи и терялась возможность найти предыдущих сидов скачавших раздачу

Merkle хеш полезен тем, что если вы скачиваете единственный файл размером в 1 мб, при размере части в 8мб в раздаче, вам не придётся скачивать и хранить остальные 7, чтобы убедиться, что кусок не битый или что пир не шлёт нам ложные данные, скачать придётся только 16кб. Торрент файлы только v2 формата могут весить меньше чем v1, раньше в торрент файле к каждому файлу присоединялось его местоположение, как к примеру folder1/folder2/file, и так для каждого файла, теперь же формат позволяет нам единожды указывать расположение в виде ключа массива со всеми вложенными файлами

Для сосуществования двух стандартов были созданы гибридные .torrent файлы, которые имеют в составе старый v1 и новый v2 формат, которые поддерживаются всеми старыми торрент клиентами

Пример гибридной магнит ссылки:

magnet:?xt=urn:btih:ХЕШ_v1&xt=urn:btmh:ХЕШ_V2

Смущает факт существования папки .pad в гибрид раздаче в новых торрент клиентах она не показывается и не занимает места, в старых её скачивать необязательно, это был необходимый шаг для сосуществования форматов эта папка легко идентифицируется (в секции files она и файлы имеют ключ "attribute", который равен "p") и необходимо её скрыть

Разрабатывается также движок торрент трекера TorrentPier (на котором основан Rutracker, NNMClub и т.п.) с нативной поддержкой BitTorrent v2

#BitTorrent | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍1
🌐 Личный сайт — на каждом телефоне

На любой современный (даже старенький) смартфон можно поставить веб-сервер, если проделать некоторые манипуляции, то есть рутануть телефон или установить Termux.

Всё, что нам нужно — это повсеместное подключение по протоколу IPv6 и операционные системы телефонов, оптимизированные для работы с веб-серверами.

Для подобной инфраструктуры можно задействовать технологию некоего распределённого хостинга. Примерно нечто подобное предлагает Peergos: пиринговый хостинг с шифрованием плюс социальная сеть и хостинг приложений.

Для работы на собственном сервере/смартфоне/децентрализованном хостинге идеально подходят приложения вроде LibrePhotos — альтернатива Google Photos на своём хостинге (аналогичные опенсорсные проекты Photoprism и Pixelfed — тоже для самохостинга фотографий). Такие же альтернативы существуют и для других облачных сервисов, нужно их только приспособить к децентрализованной файловой системе, потому что по умолчанию все рассчитаны на работу с сервера.

💬 Подробнее в статье

#Termux | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
💖 EVM — определение масштаба

Ethereum - это вычислительный механизм и программная платформа, функционирующая как децентрализованный компьютер. Разработчики используют виртуальную машину Ethereum для создания DApps на базе Ethereum и совместимого с EVM языка программирования Solidity - от криптоприложений DeFi и EVM до игр и торговых площадок, таких как OpenSea.


Основные идеи, лежащие в основе EVM:

▫️Хранит данные на блокчейне и выполняет код в смарт-контрактах в сети Ethereum.
▫️Запускать любые криптоконтракты, которые могут быть построены на блокчейне Ethereum, с помощью языка программирования Solidity, который компилируется в EVM для исполнения.

Виртуальная машина Ethereum (EVM) - это полная программируемая машина Тьюринга, которая может выполнять сценарии для получения произвольных результатов. Она была создана с целью стать "мировым компьютером" и обладает огромной мощностью.


Данный рисунок описывает весь процесс совершения сделки. По шагам:

▫️Первоначально мы имеем состояние мира t, а в некоторых блоках - транзакцию.
▫️EVM обрабатывает это выполнение и выдает мировое состояние t+1.
▫️Этот переход изменяет хранение некоторых счетов по транзакциям.

#EVM | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
TON Storage – прорыв в Web3 или провал?

TON Storage - это часть экосистемы TON, изначально спроектированной командой Telegram, во главе с Павлом Дуровым. Она предоставляет возможность хранить, скачивать и делиться файлами децентрализованным способом.

Из чего состоит TON Storage?

На данный момент TON Storage не сильно связан с блокчейном TON. Чтобы начать использование Storage не нужно покупать криптовалюту и проводить какие-то транзакции. Несмотря на это, все компоненты экосистемы построены на одних и тех же технологиях. Например, для передачи данных используется собственная разработка – ADNL. А для поиска нод и информации о файлах – TON DHT.

На какой машине будет работать TON Storage?

Для того, чтобы нода могла работать понадобится как минимум 1GHz и 2 ядра CPU, 2GB RAM, 2 GB SSD без учета размера скачиваемых/раздаваемых файлов и сеть 10 Mb/s со статическим IP адресом.

TON Storage Daemon

Именно через Daemon происходит раздача и скачивание файлов. Чтобы запустить его нужно выполнить команду:

storage-daemon -v 3 -C global.config.json -I <ip>:3333 -p 5555 -D storage-db

💬 Подробнее тут

#TONStorage | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🖕1
🌐 Как за 3 простых шага создать свой VPN и прокси-сервер

Даже если вам не нужно обходить блокировки, виртуальная частная сеть и прокси-сервер могут потребоваться для доступа к неработающим в России сервисам или для защиты данных от злоумышленников. Рассказываем, как настроить и раздать OpenVPN через Pritunl и прокси Shadowsocks с помощью Outline.

Крупные VPN-сервисы первыми попадают под блокировку. Поэтому, у нас два варианта:

▫️Пользоваться услугами компаний-середнячков.
▫️Научиться ставить VPN и прокси самостоятельно.

Первый вариант удобнее: можно выбрать разные локации, есть подписки для нескольких устройств и удобные приложения для смартфонов. Но вместо VPN могут подсунуть обычный прокси и слить персональные данные. Второй вариант безопаснее и дешевле, но требует технических навыков (совсем небольших).

Искать зарубежные VPN-сервисы на сайтах-агрегаторах VPN:

▫️vpnpro.com
▫️vpnreports.com
▫️vpnmentor.com
▫️vpntesting.com с таблицей ТОП-50 VPN.

Искать зарубежные серверы на сайтах-агрегаторах VPS/VDS:

▫️serverhunter.com
▫️exoticvm.com
▫️vpschecker.com
▫️vpsbenchmarks.com/screener
▫️en.metadedi.net

Когда сервер куплен, можно приступать к установке VPN/прокси.

В этой статье мы научитесь:

▫️создавать VPN-соединение с помощью Pritunl;
▫️создавать прокси-сервер, используя Outline;
▫️раздавать VPN и прокси другим пользователям.

💬 Подробнее в статье

#VPN | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
📶 Точечный обход блокировок по доменам на роутере с OpenWrt

Статья о том, как настроить точечный обход блокировок по нужным доменам на роутере с OpenWrt. На мой взгляд, это самый удобный способ, который можно реализовать сейчас.

Зачем обходить блокировки точечно:

▫️Есть российские сайты, которые блокируют доступ с нероссийских IP-адресов.
▫️Высокий Latency, время ожидания открытия ресурса. Если вы, например, находитесь в Москве, а сервер с сайтом в Подмосковье, то у вас короткий маршрут. Через VPN делается петля через другую страну. Это влияет на скорость загрузки ресурса
▫️Сайты определяют вашу локацию по стране, где расположен VPN-сервер. Например, гугл вас будет приветствовать по-немецки. Нужно будет переключать локацию вручную, чтоб делать поиск по российским ресурсам

Проблемы готовых списков IP-адресов
Главная проблема - это отсутствие необходимого вам ресурса в подготовленных списках. Как это решать? Можно резолвить домены, получать IP-адреса ресурса и заносить их в свой ещё один список. Со временем эти IP-адреса меняются и придётся делать по новой.

Плюсы и минусы использования списков доменов
Плюсы:

▫️Вы оперируете доменами, не опускаетесь до резолвинга
▫️Универсальность: подходит для обхода блокировок в любой стране
▫️В sets не будет IP-адреса вашего VPN-сервера
▫️Помимо готового списка доменов, можно добавлять свои прям на роутере
▫️В маршрутизации участвуют только необходимые IP-адреса, полученные из доменов. Меньше IP-адресов в списках - меньше потребление памяти

Минусы:

▫️Механизм резолвинга не идеален. При первом обращении к сайту вам придётся немного подождать, чтоб dnsmasq добавил IP-адрес в sets. Но после добавления всё происходит моментально

▫️Существуют приложения, которые не используют DNS-сервер роутера, а используют свою встроенную реализацию резолвинга прям в приложении. Здесь просто требуется отключение этой функции, подробнее в конце статьи.

💬 Подробнее в статье

#OpenWrt | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Хотите стать Linux-администратором или DevOps-инженером?

🐧  Linux — одна из самых распространенных ОС в мире, поэтому знание ее основных принципов и умение работать с ней может значительно увеличить возможности карьерного роста.

OTUS запустил акцию на подготовительный курс «Linux для начинающих». Сейчас курс доступен всего за 10 рублей вместо обычных 7000 рублей!
 
👉 Записаться на курс — https://otus.pw/djsU/

✔️  На курсе мы:
— Детально разберем основные команды в Linux и научимся работать в консоли
— Познакомимся с зомби, сиротами и демонами
— Выясним, что такое ядро операционной системы и системные вызовы— Научимся работать со стандартными потоками ввода/вывода
— Разберем некоторые особенности файловой системы ext4
 
Спикер курса — Андрей Буранов, специалист по UNIX-системам в компании Mail.Ru Group. Входит в топ-3 лучших преподавателей образовательных порталов.

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KTUa8
🤔5
🕸 gRPC и все-все-все: Часть I. Введение

Для лучшего понимания gRPC стоит разобраться и с другими протоколами. В первой части цикла мы поговорим о REST, RPC и затронем одну из его реализаций – SOAP.

Форматы кодирования данных
Программы обычно имеют дело с данными в (как минимум) двух представлениях:

▫️В памяти данные хранятся в объектах, структурах, списках, массивах, хэш-таблицах, деревьях и т.д. Эти структуры данных оптимизированы так, чтобы CPU мог эффективно обращаться к ним и манипулировать ими.
▫️При необходимости записать данные в файлы или переслать их по сети необходимо кодировать их в некую самостоятельную последовательность байтов (например, документ в формате JSON).

Нам нужен способ преобразования между этими представлениями. Преобразование из представления в памяти последовательность байтов называется кодированием(encoding), или сериализацией(serialization), или маршалингом(marshalling), а обратная ему операция – декодированием (decoding), или парсингом(parsing), или десериализацией(deserialization), или демаршалингом(demarshalling).

Существует несколько различных способов организации взаимодействия процессов по сети:

REST – это не протокол, а скорее подход к проектированию, основанный на принципах HTTP

RPC (Remote Procedure Call) – класс технологий, позволяющих программам вызывать функции или процедуры в другом представлении или в адресном пространстве

gRPC – это новый и современный фреймворк для разработки масштабируемых, современных и быстрых API и дословно переводится как система удаленного вызова процедур, разработанный компанией Google еще в далеком 2015 году

💬 Подробнее в статье

#GRPC | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
💡 Памятка пользователям ssh

Структура ключа

▫️~/.ssh/id_rsa.pub — открытый ключ. Его копируют на сервера, куда нужно получить доступ.
▫️~/.ssh/id_rsa — закрытый ключ. Его нельзя никому показывать. Если вы в письмо/чат скопипастите его вместо pub, то нужно
генерировать новый ключ.

Копирование файлов

Передача файлов на сервер иногда может утомлять. Помимо возни с sftp и прочими странными вещами, ssh предоставляет нам команду scp, которая осуществляет копирование файла через ssh-сессию.

▫️scp path/myfile user@8.8.8.8:/full/path/to/new/location/

Обратно тоже можно:
▫️scp user@8.8.8.8:/full/path/to/file /path/to/put/here

Удалённое исполнение кода

ssh может выполнить команду на удалённом сервере и тут же закрыть соединение. Простейший пример:

▫️ssh user@server ls /etc/

Выведет нам содержимое /etc/ на server, при этом у нас будет локальная командная строка.
Некоторые приложения хотят иметь управляющий терминал. Их следует запускать с опцией -t:
▫️ssh user@server -t remove_command

Кстати, мы можем сделать что-то такого вида:
▫️ssh user@server cat /some/file|awk '{print $2}' |local_app

Опции по умолчанию

По подсказке UUSER: вы можете указать настройки соединения по умолчанию с помощью конструкции Host *, т.е., например:

▫️Host *
▫️User root
▫️Compression yes

То же самое можно сделать и в /etc/ssh/ssh_config (не путать с /etc/ssh/sshd_config), но это требует прав рута и распространяется на всех пользователей.

💬 Подробнее в статье

#ssh | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥1🖕1
📖Компьютерные сети: Принципы, технологии, протоколы

Авторы:

Виктор Олифер, Наталия Олифер

5-е издание отечественной классики по компьютерным сетям описывает технические новшества и прорывы, произошедшие в области компьютерных сетей и интернета. В ней вы по-прежнему прочтёте о важных основах, требуемых для развёртывания и администрирования локальных и крупных составных сетей. Также даны описания особенностей традиционных и перспективных технологий локальных и глобальных сетей. Книга наполнена полезными примерами и наглядными иллюстрациями.
Подойдёт для администратора с любым стажем.

В книге рассматриваются следующие темы:

▫️эволюция компьютерных сетей;
▫️общие принципы построения сетей;
▫️коммутация каналов и пакетов;
▫️архитектура и стандартизация сетей;
▫️примеры сетей;
▫️кодирование и мультиплексирование данных;
▫️беспроводная передача данных и многое другое.

Недостатки:

▫️написана сложным сухим языком.

#books | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
📶 Поднимаем на OpenWrt туннели и прокси устойчивые к блокировкам по протоколу. Настройка sing-box и tun2socks

tun2socks

Поддерживает следующие типы прокси:

▫️HTTP
▫️SOCKS4/SOCKS5
▫️Shadowsocks ("старая" версия)

Объем распакованного пакета 8.8M.

Он цепляется к сетевому интерфейсу tun и переводит трафик в прокси. Что только не сделаешь, чтобы обойти китайский firewall.

Пакета tun2socks нет в репозиториях OpenWrt, поэтому его нужно скачивать с гитхаба проекта. Благо он собирается под множество архитектур, в том числе MIPS и ARM.

Глянуть архитектуру процессора на вашем роутере:

opkg print-architecture

tun2socks не создаёт интерфейс сам, поэтому нужно самим создать интерфейс и присвоить ему ip.

Sing-box
В OpenWrt 23.05 добавлен пакет sing-box. Он умеет работать с tun интерфейсом.

Поддерживает кучу протоколов:


▫️SOCKS5 proxy
▫️HTTP proxy
▫️Shadowsocks версии 2022-* и старые aes-*
▫️VMess и VLESS
▫️Trojan И другие

Объем распакованного пакета 21.5MB.

💬 Подробнее в статье

#OpenWrt | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Что такое HTTP и HTTPS?

HTTP – широко распространённый протокол передачи данных, изначально предназначенный для гипертекстовых документов, то есть документов, которые могут содержать ссылки, позволяющие организовать переход к другим документам.

Метод представляет собой последовательность из любых символов, кроме управляющих и разделителей, и определяет операцию, которую нужно осуществить с указанным ресурсом. Спецификация HTTP 1.1 не ограничивает количество разных методов, которые могут быть использованы, однако в целях соответствия общим стандартам и сохранения совместимости с максимально широким спектром программного обеспечения как правило используются лишь некоторые, наиболее стандартные методы, смысл которых однозначно раскрыт в спецификации протокола.

▫️GET – получение ресурса;
▫️POST – создание ресурса;
▫️PUT – обновление ресурса;
▫️DELETE – удаление ресурса.

HTTPS (Hypertext Transport Protocol Secure) – это протокол, который обеспечивает конфиденциальность обмена данными между сайтом и пользовательским устройством. Безопасность информации обеспечивается за счет использования криптографических протоколов SSL/TLS, имеющих 3 уровня защиты:

▫️Шифрование данных позволяет избежать их перехвата;
▫️Сохранность данных – любое изменение данных фиксируется;
▫️Аутентификация защищает от перенаправления пользователя.

Обязательное использование защищенного протокола передачи данных требует вся информация, касающаяся проведения платежей в интернете: оплата товаров в интернет-магазинах любым способом (индивидуальная платежная карта, онлайн системы платежей и пр.), оплата услуг через интернет-банкинг, совершение платежей в онлайн сервисах (казино, online-курсы и т.п.) и многое другое.

#HTTP #HTTPS | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
🌐 Как работает прокси-сервер: максимально простое объяснение

Прокси-сервер, или просто прокси – это компьютер, выполняющий роль посредника между пользователем и целевым сервером. Сначала клиент подключается к прокси-серверу и запрашивает необходимый ресурс, расположенный на другом сервере. Например, почту или html-страницу. Затем прокси либо подключается к указанному серверу и получает у него ресурс, либо возвращает ресурс из собственного кэша.

Распространенные варианты использования прокси:

▫️повышение безопасности сети с помощью шифрования запросов;
▫️предотвращение перехвата конфиденциальной информации;
▫️блокировка вредоносных сайтов и рекламы;
▫️кэширование сайтов для экономии трафика;
▫️контроль использования сетевого канала;
▫️блокировка доменов;
▫️мониторинг и регистрация веб-запросов;
▫️тестирование веб-ресурсов при заходе с различных IP.

Какие бывают типы прокси-серверов:

▫️Прозрачный прокси
▫️Анонимный прокси
▫️Искажающий (distorting) прокси
▫️Резидентный (residential) прокси
▫️Публичный (public) прокси
▫️Частный (private) прокси
▫️Общий (shared) прокси
▫️Ротационный (rotating) прокси
▫️SSL-прокси
▫️Обратный (reverse) прокси

Где искать прокси

Большинство сервисов прокси предлагают комбинации вышеописанных типов. Можно обнаружить, что резидентные, высоко анонимные и SSL-прокси объединены в один сервис. Список сервисов, на которых можно выбрать подходящий вариант:

▫️https://smartproxy.com/
▫️https://www.megaproxy.com/
▫️https://whoer.net/webproxy
▫️https://www.proxysite.com/
▫️https://hide.me/en/proxy
▫️https://www.kproxy.com/
▫️https://www.vpnbook.com/webproxy

В чем разница между прокси и VPN:

Главное отличие прокси от VPN заключается в том, что VPN защищает весь сетевой трафик, а прокси – только интернет-трафик. Прокси передает запросы, действуя как посредник, а VPN туннелирует всю сетевую активность до уровня операционной системы.

#Proxy #VPN | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1