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

Сотрудничество: @stein_media
Download Telegram
🌐 Знакомство с LAN и WAN: главное отличие сетей.

Local Area Network (LAN) - локальная вычислительная сеть (ЛВС) компьютерная сеть, покрывающая обычно относительно небольшую территорию или небольшую группу зданий (дом, офис, фирму, институт).

Wide area network (WAN) - это телекоммуникационная сеть, которая простирается на большую географическую область. Широкополосные сети часто устанавливаются с арендованными телекоммуникационными схемами.

Главное отличие сети WAN от локальных сетей LAN состоит в том, что они географически не ограничены, в то время как сети LAN ограничены небольшой областью. WAN-сети могут охватывать города, страны и многочисленные населенные пункты, в то время как LAN-сети ограничены отдельным зданием или школьной территорией.

#LAN #WAN | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡12👍5🤔3🔥1🤨1
⚡️ Проксируем OpenVPN с помощью Cloak

В данной статье рассматривается способ установки и настройки прокси Cloak из репозитория автора проекта на Github. Уже несколько лет существует коробочное решение от Amnezia VPN c клиентами для Windows, Mac, Linux, Android и iOS (iOS поддерживает Cloak начиная с версии 3.08).

Здесь мы рассмотрим установку чистого Cloak для существующего сервера OpenVPN.

Эта статья результат ознакомления с инструментом Cloak и рабочий гайд по настройке работы OpenVPN на OpenWRT через него.

💬 Ссылка на статью

#Cloak | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🫡2
💻 Сетевая модель OSI. Уровни.

Состоит она из 7 уровней и каждый уровень выполняет определенную ему роль и задачи. Разберем, что делает каждый уровень снизу вверх:

1) Физический уровень:
определяет метод передачи данных, какая среда используется (передача электрических сигналов, световых импульсов или радиоэфир), уровень напряжения, метод кодирования двоичных сигналов.

2) Канальный уровень:
он берет на себя задачу адресации в пределах локальной сети, обнаруживает ошибки, проверяет целостность данных. Если слышали про MAC-адреса и протокол «Ethernet», то они располагаются на этом уровне.

3) Сетевой уровень:
этот уровень берет на себя объединения участков сети и выбор оптимального пути (т.е. маршрутизация). Каждое сетевое устройство должно иметь уникальный сетевой адрес в сети. Думаю, многие слышали про протоколы IPv4 и IPv6. Эти протоколы работают на данном уровне.

4) Транспортный уровень:
Этот уровень берет на себя функцию транспорта. К примеру, когда вы скачиваете файл с Интернета, файл в виде сегментов отправляется на Ваш компьютер. Также здесь вводятся понятия портов, которые нужны для указания назначения к конкретной службе. На этом уровне работают протоколы TCP (с установлением соединения) и UDP (без установления соединения).

5) Сеансовый уровень:
Роль этого уровня в установлении, управлении и разрыве соединения между двумя хостами. К примеру, когда открываете страницу на веб-сервере, то Вы не единственный посетитель на нем. И вот для того, чтобы поддерживать сеансы со всеми пользователями, нужен сеансовый уровень.

6) Уровень представления:
Он структурирует информацию в читабельный вид для прикладного уровня. Например, многие компьютеры используют таблицу кодировки ASCII для вывода текстовой информации или формат jpeg для вывода графического изображения.

7) Прикладной уровень:
Наверное, это самый понятный для всех уровень. Как раз на этом уроне работают привычные для нас приложения — e-mail, браузеры по протоколу HTTP, FTP и остальное.

#OSI | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3🫡2
🌐 Будущее интернета: как работают протоколы HTTP/3, QUIC и зачем они нужны?

Рассказываем об эволюции протокола HTTP, транспортном протоколе QUIC, преимуществах и недостатках HTTP/3 и, наконец, делимся мнением о будущем интернета благодаря HTTP/3.

Новый стандарт протокола HTTP (обозначенный как HTTP/3), на базе которого работает всемирная паутина, находится в разработке с 2018 года и в настоящее время проходит этап рассмотрения интернет-проекта. Одни браузеры уже поддерживают новый стандарт неофициально, другие официально, но при этом он отключен по умолчанию (Chrome/Firefox).

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

💬 Ссылка на статью

#HTTP #QUIC | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4
⚠️ Функционал SSH, позволяющий осуществлять головоломные операции по туннелированию TCP «из сервера» и «на сервер»

Для понимания ситуации все примеры ниже будут ссылаться на схему.

Комментарий: Две серые сети. Первая сеть напоминает типичную офисную сеть (NAT), вторая — «гейтвей», то есть сервер с белым интерфейсом и серым, смотрящим в свою собственную приватную сеть. В дальнейших рассуждениях мы полагаем, что «наш» ноутбук — А, а «сервер» — Б.

Задача: у нас локально запущено приложение, нам нужно дать возможность другому пользователю (за пределами нашей сети) посмотреть на него.

Решение: проброс локального порта (127.0.0.1:80) на публично доступный адрес. Допустим, наш «публично доступный» Б занял 80ый порт чем-то полезным, так что пробрасывать мы будем на нестандартный порт (8080).

Итоговая конфигурация: запросы на 8.8.8.8:8080 будут попадать на localhost ноутбука А.

ssh -R 127.1:80:8.8.8.8:8080 user@8.8.8.8

Опция -R позволяет перенаправлять с удалённого (Remote) сервера порт на свой (локальный).
Важно: если мы хотим использовать адрес 8.8.8.8, то нам нужно разрешить GatewayPorts в настройках сервера Б.
Задача. На сервере «Б» слушает некий демон (допустим, sql-сервер). Наше приложение не совместимо с сервером (другая битность, ОС, злой админ, запрещающий и накладывающий лимиты и т.д.). Мы хотим локально получить доступ к удалённому localhost'у.

Итоговая конфигурация: запросы на localhost:3333 на 'A' должны обслуживаться демоном на localhost:3128 'Б'.

ssh -L 127.1:3333:127.1:3128 user@8.8.8.8

Опция -L позволяет локальные обращения (Local) направлять на удалённый сервер.

Задача: На сервере «Б» на сером интерфейсе слушает некий сервис и мы хотим дать возможность коллеге (192.168.0.3) посмотреть на это приложение.

Итоговая конфигурация: запросы на наш серый IP-адрес (192.168.0.2) попадают на серый интерфейс сервера Б.

ssh -L 192.168.0.2:8080:10.1.1.1:80 user@8.8.8.8

#SSH | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
📌 Что такое API и CRUD простыми словами

API (Application Programming Interface) – это программный интерфейс. Он обеспечивает взаимодействие двух программ между собой и позволяет без особых усилий встраивать контент с любого сайта. Основной задачей API является создание связи между двумя приложениями. API позволяет отправлять запросы на передачу или получение информации. Взаимодействие осуществляется через JSON, а данные получаем в приложениях с помощью API-запросов. API-запрос включает в себя 4 компонента: endpoint (точка приема запроса), header (заголовок), method (метод) и data (данные). После вызова всех компонентов мы можем построить API-запрос.

CRUD-операции
CRUD-операции включают в себя 4 функции: Create (создание), Read (чтение), Update (редактирование) и Delete (удаление). Это основные методы работы с базами данных. Операции CRUD предназначены для редактирования данных программы. Давайте рассмотрим подробнее, что означает каждая операция:

GET – метод GET позволяет получить информацию из источника/базы данных.
POST – метод POST позволяет вносить информацию в источник/базу данных.
PUT – метод PUT позволяет обновлять существующую информацию в источнике/базе данных
DELETE – метод DELETE удалять существующую информацию из источника/базы данных

JSON
JSON (JavaScript Object Notation) используется для представления данных на сервере в текстовом формате. Он легко читается как людьми, так и машинами. Вот как выглядят данные в JSON: картинка ☝️

Типы API
Open API – означает, что API находится в свободном доступе и открыт для всех.
Partner API – в данном случае происходит взаимодействие между сервером и клиентами.
Private API – защищенный API, может использоваться только для внутренних операций, например, платежей.

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

#API #CRUD | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI пассивный и активный:

Пассивный DPI —DPI подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта

Активный DPI —DPI подключенный в сеть провайдера привычным образом, как и любое другое сетевое устройство. Провайдер настраивает маршрутизацию так, чтобы DPI получал трафик от пользователей к заблокированным IP-адресам или доменам, а DPI уже принимает решение о пропуске или блокировке трафика. Активный DPI может проверять как исходящий, так и входящий трафик, однако, если провайдер применяет DPI только для блокирования сайтов из реестра, чаще всего его настраивают на проверку только исходящего трафика

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

#DPI | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5👍3
Почему ваш веб-сайт должен быть меньше 14 КБ

Чем меньше веб-сайт, тем быстрее он грузится, и это неудивительно.

Удивительно то, что страница на 14 КБ может грузиться гораздо быстрее, чем страница на 15 КБ, даже на 612 мс быстрее, хотя разница между страницами на 15 КБ и 16 КБ минимальна.

Так происходит из-за алгоритма медленного старта TCP.

Transmission Control Protocol (TCP) — это способ использования Internet Protocol (IP) для надёжной передачи пакетов данных; иногда его также называют TCP/IP.

Медленный старт TCP (TCP slow start) — это алгоритм, используемый серверами для определения того, сколько пакетов можно отправить за раз.

В каждом пакете TCP 40 байтов используются под заголовок — 16 байтов для IP и дополнительные 24 байта для TCP.

То есть на каждый пакет TCP остаётся 1460 байтов. 10 x 1460 = 14600 байтов, или приблизительно 14 КБ!

То есть если вы сможете уместить свой веб-сайт (или хотя бы его критически важные части) в 14 КБ, то сэкономите посетителям кучу времени, необходимого для передачи данных туда и обратно между ними и сервером веб-сайта.

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

#tcp | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥21👎1🖕1
💻 JavaScript. WebRTC. Соединение браузеров напрямую без сервера, peer-to-peer

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

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

Обмен требованиями к соединению: SDPOffer, SDPAnswer
Требования к соединению зависят от задачи. Например, для видеосвязи браузеры должны выбрать кодек, который оба поддерживают. В браузерах есть API для формирования SDP.
См. Рис. “Session descriptors exchange”.
• Алиса формирует SDPOffer с указанием поддерживаемых кодеков. Отправляет Бобу.
• Боб получает SDPOffer и на его основе формирует SDPAnswer: выбирает кодек который есть у него и в SDPOffer. Нельзя сформировать SDPAnswer без SDPOffer. Боб отправляет SDPAnswer Алисе.
• Алиса устанавливает SDPAnswer: для трансляции будет использоваться кодек из SDPAnswer.

Обмен адресами: ICECandidate-ами
ICECandidate-ов может быть несколько. Например, один адрес в локальной сети, другой - во внешней. Чтобы узнать свой адрес нужен STUN сервер.

См. Рис. “Address exchange”.
Алиса узнает свои адреса, по которым она может получать пакеты. И отправляет их Бобу. Боб выбирает из полученных адресов-кандидатов.

У Алисы может быть несколько адресов. Например, один адрес в локальной сети, другой - во внешней. Если Боб в той же локальной сети, Алиса и Боб соединятся по локальному адресу.

Браузер не знает свой адрес. Чтобы узнать свой адрес браузер делает запрос к специальному STUN серверу. STUN сервер сообщает браузеру его (браузера) внешний адрес. Есть публичные STUN сервера, например у Google.

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

#WebRTC | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🌐 Best Practice по правильному агрегированию.

Во всех лабораторках для агрегирования использовались 2 кабеля. На самом деле можно использовать и 3, и 4 (вплоть до 8 интерфейсов в один port-channel). Но лучше использовать 2, 4 или 8 интерфейсов. А все из-за алгоритма хеширования, который придумала Cisco. Алгоритм высчитывает значения хэша от 0 до 7.

Данная таблица отображает 8 значений в двоичном и десятичном виде.

На основании этой величины выбирается порт Etherchannel и присваивается значение. После этого порт получает некую «маску», которая отображает величины, за которые тот порт отвечает. Вот пример. У нас есть 2 физических интерфейса, которые мы объединяем в один port-channel.

Значения раскидаются следующим образом:

1) 0x0 — fa0/1
2) 0x1 — fa0/2
3) 0x2 — fa0/1
4) 0x3 — fa0/2
5) 0x4 — fa0/1
6) 0x5 — fa0/2
7) 0x6 — fa0/1
8) 0x7 — fa0/2

В результате получим, что половину значений или паттернов возьмет на себя fa0/1, а вторую половину fa0/2. То есть получаем 4:4. В таком случае балансировка будет работать правильно (50/50).

Теперь двинемся дальше и объясню, почему не рекомендуется использовать, к примеру 3 интерфейса. Составляем аналогичное сопоставление:

1) 0x0 — fa0/1
2) 0x1 — fa0/2
3) 0x2 — fa0/3
4) 0x3 — fa0/1
5) 0x4 — fa0/2
6) 0x5 — fa0/3
7) 0x6 — fa0/1
8) 0x7 — fa0/2

Здесь получаем, что fa0/1 возьмет на себя 3 паттерна, fa0/2 тоже 3 паттерна, а fa0/3 2 паттерна. Соответственно нагрузка будет распределена не равномерно. Получим 3:3:2. То есть первые два линка будут всегда загруженные, чем третий.

#агрегирование | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🫡2
Экосистема Hyper. Полный пиринг и шифрование

В настоящее время резко выросла потребность людей в защищённых коммуникациях. А с ней и популярность сервисов для защиты связи и шифрования. Это VPN, mesh-сети и пиринговые приложения для прямого обмена зашифрованными сообщениями, файлами и т. д. Один из самых продвинутых наборов такого рода — экосистема Hyper. Есть и другие (о них ниже).

Hyper — это набор маленьких JavaScript-модулей, которые можно комбинировать для создания неограниченного количества P2P-приложений, от VPN до коммуникационных инструментов типа P2P-мессенджера Keet. На сегодняшний день Keet — это практически единственное реальное приложение, построенное на Hyper, своего рода демонстрация возможностей платформы.

В набор Hyper входят следующие основные компоненты:

Hypercore — защищённый распределённый журнал. Создан для обмена большими массивами данных и потоками данных в реальном времени. Из особенностей — разреженная репликация, простая плоская файловая структура для максимальной производительности ввода-вывода, безопасность (подписанные деревья Меркла для проверки целостности журнала в реальном времени), модульность.
Hyperdrive — безопасная распределённая файловая система, работающая в реальном времени. Другие модели для работы с файлами: Localdrive и Mirrordrive.
Hyperswarm — распределённый сетевой стек для P2P-коммуникации.
Hyperbeam — сквозное шифрование в канале между двумя пирами на основе Hyperswarm.
HyperDHT — Hyperswarm с поддержкой DHT (распределённое обнаружение пиров — distributed holepunching, как в торрентах).
• Hyperbee — B-дерево на базе Hypercore. Позволяет выполнять итерации с сортировкой и многое другое.
Hypershell — спаунит терминал (оболочку) в любом месте. Полностью одноранговый, аутентифицированный и зашифрованный.

💬 Ссылка на чтение

#Hyper || 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
☄️ WebSocket. Краткий экскурс в пентест ping-pong протокола

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

Протокол имеет две схемы URI:

1️⃣ws: / host [: port] path [? query] для обычных соединений.
2️⃣wss: / host [: port] path [? query] для туннельных соединений TLS.

Вот основные характеристики и особенности WebSocket:

Установка соединения: WebSocket начинается с установки соединения через HTTP (обычно используется стандартный порт 80 или защищенный порт 443). После успешной установки соединения клиент и сервер могут обмениваться данными в реальном времени;

Двусторонняя связь: WebSocket поддерживает как отправку данных от клиента к серверу, так и от сервера к клиенту. Это позволяет строить интерактивные веб-приложения, где клиент и сервер могут обмениваться информацией без задержек;

Низкая задержка: WebSocket обеспечивает низкую задержку (лаг) по сравнению с традиционными методами долгого опроса (long polling) или периодическими запросами;

Протокол на основе кадров (frame-based protocol): Данные в WebSocket упаковываются в кадры (frames), что делает их эффективными для передачи и обработки;

Поддержка защиты (Security): WebSocket может использовать шифрование для обеспечения безопасности передаваемых данных, используя wss:// вместо ws:// в URL;

Поддержка разных типов данных: WebSocket позволяет передавать различные типы данных, включая текст, бинарные данные и даже произвольные объекты;

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

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

#WebSocket | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
☄️ Актуальные методы проверки работоспособности больших и высоконагруженных сетей. Протоколы мониторинга

Мы видим стандартный цикл PDCA с учетом сетевой специфики. Первым элементом системы является источник правды (source of truth), это в каком-то формате ipam- система, мы тут храним полный перечень сетевого оборудования (не обязательно только сетевого, но в нашем контексте важно именно сетевое), подсети, актуальные используемые ip адреса, vlan и тд., все что нам необходимо для описания текущего состояния сетевой инфраструктуры. Важное условие – данные в нашей системе должны быть актуальными и консистентными, то есть мы должны опираться на эти данные и не сомневаться в них (поэтому мы называем его источником правды).

На основании вносимых изменений в эти данные мы производим изменения в сети вручную или с помощью различных инструментов автоматизации, Ansible, Nornir, Netbrain, кому что больше нравится и подходит для решения конкретной задачи.

Хорошо, мы раскатили изменения в сети. Что происходит дальше? Дальше мы как-то должны понять, что все раскатилось хорошо и сеть работает. Сеть работает так, как мы и запланировали, в соответствии с источником правды.

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

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

#PDCA | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🕸️ Raspberry Pi в роли шпиона: Создание Wi-Fi моста для доступа к корпоративной сети

Ethernet/Wi-Fi мост (Ethernet-to-Wi-Fi bridge или Wi-Fi-to-Ethernet bridge) - это устройство или программное решение, которое позволяет соединять две разные сети: проводную сеть Ethernet и беспроводную сеть Wi-Fi, обеспечивая обмен данными между ними.

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

Raspberry Pi - это мини-компьютер, разработанный и производимый британской фирмой Raspberry Pi Foundation.

Для начала, вам потребуется Raspberry Pi и карта Micro SD с установленной операционной системой Raspberry Pi OS. Для установки ОС, используйте Raspberry Pi Imager, который можно скачать и установить на вашем устройстве. После установки, выберите необходимую версию ОС и карту памяти, а затем выполните запись.

Теперь можем перейти непосредственно к настройке и автоматизации работы самого моста.  Есть несколько способов сделать это, но сначала нам необходимо обновить ОС нашей «Малины», делается это в терминале,  с помощью команд :

sudo apt-get update
sudo apt-get full-upgrade
sudo reboot

RaspAP - это проект с открытым исходным кодом, который позволяет создавать беспроводные маршрутизаторы из различных популярных устройств, работающих на операционной системе Debian, включая Raspberry Pi.

Устанавливается RaspAP из командной строки, командой:

curl -sL https://install.raspap.com | bash

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

#Raspberry | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🔺 Почему данные в интернете не идут по самому короткому пути или как на самом деле работает CDN?

Из этой статьи узнаете, как выглядит интернет изнутри, какие существуют топологии сетей и почему одни среды передачи приоритетнее других.

В книге Ильи Григорика «Высокопроизводительные браузерные сети» содержатся базовые знания о сетях и оптимизации передачи данных. В этой книге автор пишет о CDN следующее:

Услуги доставки и дистрибуции содержимого (CDN) предоставляют множество преимуществ, но главным из них является то, что распределение контента по всему миру и предоставление его клиенту из ближайшего местоположения позволяет нам значительно сократить время распространения всех пакетов данных. Возможно, мы не сможем ускорить передачу пакетов, но расположив наши сервера ближе к пользователям, мы сможем сократить расстояние между пользователем и сервером.
Из цитаты выше следует, что CDN ускоряет загрузку сайта. Разберемся, как это работает.

Когда компьютер A хочет отправить сообщение компьютеру B, данные передаются через порт, к которому подключен кабель. При наличии только 2-х пользователей нет проблем определить загруженность канала. Проблем с адресацией нет по той же причине.

В коммуникационных сетях топология – это расположение элементов. Различают физическую и логическую топологию. Физическая топология – расположение элементов сети, а логическая топология – то, как данные передаются в пределах сети. В случае, описанном выше устройства соединены друг с другом и такая сеть называется полносвязной физически и логически. Для экономии количества кабелей выберем другую топологию. Например, каждый компьютер будет соединен с соседями только слева и справа. Такая сеть называется «кольцом»

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

#CDN | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
📚 Профильная литература — книги про сети, алгоритмы и разработку

На Hacker News предложили поделиться профильной литературой, которую можно назвать «алмазом» в своей области знаний. Участники дискуссии обсудили книги по стандартизации систем и продуктов, управлении персоналом и даже нейробиологии. Мы выделим несколько избранных материалов о сетях, алгоритмах, разработке и системном администрировании.

Concrete Mathematics
Это — классика из 90-х, посвященная математическим основам информатики. Несмотря на возраст, Concrete Mathematics до сих пор попадает в подборки лучшей литературы на профильных площадках. В списке авторов числятся такие знаковые имена, как Дональд Кнут и Роналд Грэм.

Practical Packet Analysis: Using Wireshark
Перехватить пакеты с помощью Wireshark несложно. Но как проанализировать собранную информацию и понять, что на самом деле происходит в сети? С этим поможет другой частый гость тематических подборок — Practical Packet Analysis. Книга стала одной из самых упоминаемых изданий по компьютерным сетям на Reddit.

The Linux Programming Interface
Это — настольный справочник, посвященный API в пользовательском пространстве Linux. В нем Майкл Керриск, который остается мейнтейнером справочного ресурса man-pages, описал библиотечные функции для системного программирования. По словам читателей, книга значительно сокращает время, проводимое в поисковиках.

Feedback Control for Computer Systems
Книга издательства O’Reilly о том, как использовать техники feedback control при разработке и администрировании приложений в корпоративной среде. На примере кейсов и симуляций автор делится подходами к управлению серверным и сетевым оборудованием в дата-центрах — например, при неожиданных скачках трафика.

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

#books | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
8
📣 DN42 — большая BGP-песочница

DN42 - это сеть из VPN-туннелей с маршрутизацией по протоколу BGP. Участники устанавливают между собой соединения, используя различные туннельные технологии (Wireguard, OpenVPN, GRE, Tinc, ZeroTier и другие).

DN42 использует адреса в диапазоне 172.20.0.0/14 (для IPv4), fd00::/8 (для IPv6), а также номера автономных систем (AS) из приватного диапазона 4242420000-4242429999.

В настоящий момент (сентябрь 2023го) для аллокации свободно 314 IPv4-блоков (15% диапазона), ~72058 миллиардов /64-сетей (0.00006% диапазона), 1404 ASN (65% диапазона). ASN можно получить в диапазоне 4242420000-AS4242423999 (остальные блоки пока закрыты для регистрации).

В отличие от Интернет, в DN42 минимальный маршрутизируемый блок - это /29 (IPv4) и /64 (IPv6). Что позволяет делать dual-stack системы.

Зачем оно нужно?

Можно поэкспериментировать и изучить технологии маршрутизации.

Основная польза от DN42 - это возможность получить опыт настройки туннелей и BGP-соединений. Именно так работает маршрутизация в Интернет.

Можно узнать как устроен Интернет и почувствовать себя провайдером.

В DN42 есть регистр (registry), который очень схож с той же RIPE Database, набор внутренних сервисов и свой корневой домен .dn42 и корневые DNS-сервера.

Для сравнения, в Интернет минимальный маршрутизируемый IPv4-блок - это /24, который стоит ~11000 EUR (покупка), ~200 EUR/месяц(аренда).

SSH

Скорее всего у Вас уже есть SSH ключи, но если нет, то генерируем их командой ssh-keygen:

ssh-keygen -t ecdsa -b 521

Она создаст пару ключей ~/.ssh/id_ecdsa (закрытый ключ) и /home/asm/.ssh/id_ecdsa.pub (публичный ключ).

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

#DN42 | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🙉2
💻 Ping пакеты как временное хранилище данных на python raw socket

Когда неподкованные пользователи (пенсионеры, школьники, офисный планктон) первый раз сталкиваются с чёрным окошком, именуемым "Командной строкой" они зачастую хотят с профессиональным видом проверить интернет соединение.

ping 8.8.8.8

Магический C:

\Windows\System32\PING.EXE
выполняет вполне интуитивно понятные действия: отправляет запрос на указанный адрес (в данном случае 8.8.8.8 - dns google), и если адрес отвечает, то выводит задержку ответа, по которой можно косвенно судить о скорости интернет соединения...
Если же вы имеете начальное представление о принципе работы интернетов этих ваших и примерно понимаете сетевую модель, то вам до следующего заголовка)

База базовая

Сидели умные люди такие в восьмидесятых и думали, как бы интернет сделать общий. Сидели они, будучи соединёнными сотнями Ethernet кабелей и разрабатывали иерархическую модель интернета, дабы каждый был соединён с каждым, и было всё стильно, да без централизации...

Зелёные (верхние) уровни нас не интересуют, их реализовывают конкретные приложения и сервисы, их зоопарк мы трогать не будем. Нужно идти с низов.

Второй уровень добавляет понятие MAC адресов. Теперь тот, кто отправляет данные, идентифицирует того, кто на другом конце провода. Каждому устройству в сети даётся уникальный шестибайтный адрес, и появляется возможность маршрутизировать данные к конкретному абоненту (в зоне действия провода).

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

#Ping | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Установка и настройка сервера Matrix Synapse + PostgreSQL + Admin UI + Element WEB. Ubuntu 20 LTS / Ubuntu 22 LTS

Matrix Synapse - это серверная реализация протокола Matrix. Он представляет собой программный сервер, который обеспечивает коммуникацию и синхронизацию данных в сети Matrix.

Matrix Synapse используется для следующих задач:

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

Голосовые и видеозвонки: Matrix Synapse поддерживает голосовые и видеозвонки, что позволяет пользователям общаться в режиме реального времени, используя аудио и видео связь.

Синхронизация данных: Сервер Matrix Synapse синхронизирует данные между пользователями и их устройствами. Это позволяет пользователям получать свои сообщения и данные на всех устройствах, которые они используют для доступа к Matrix.

Децентрализация: Matrix Synapse поддерживает децентрализованную архитектуру, что означает, что каждый пользователь может иметь свой собственный сервер Matrix Synapse. Это дает пользователям контроль над своими данными и коммуникациями, так как они не зависят от централизованного сервера.

Защита и приватность: Matrix Synapse обеспечивает шифрование end-to-end для обмена сообщениями, что гарантирует безопасность и приватность коммуникаций. Это означает, что только отправитель и получатель могут прочитать содержимое сообщения.

Установка

Прежде всего обновим нашу систему:

apt update
apt upgrade

Установим дополнительные зависимости

apt install net-tools python3-dev python3-pip libpq-dev mc aptitude htop apache2-utils lsb-release wget apt-transport-https
pip install psycopg2

Подключим matrix.org репозитории для Ubuntu/Debian x64 архитектуры доступные по адресу https://packages.matrix.org/debian/.

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

#Matrix | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍2
Как начать работать с IPv6 там, где его нет (часть 1)

Появлением на свет этот материал обязан переводу статьи IPv6 — это катастрофа (но поправимая) (автор Mathew Duggan) и является её логическим продолжением. Если вы живёте в небольшом городе, которого в том числе нет в этом списке, и ваш провайдер в него не входит, то велика вероятность, что просто так взять и начать по-настоящему (за пределами lan) работать с IPv6 не получится. Некоторых стран СНГ это касается в полной мере, где целые государства не имеют для этого необходимого интеллектуального и материального ресурса. Однако исследовательский интерес толкает человечество вперёд, поэтому в статье будут описаны стратегии, как получить и настроить IPv6 на различных, в том числе мобильных устройствах там, где его нет, используя возможности брокеров. В материале скомпилированы разные подходы, чтобы читатель мог реализовать подходящий вариант. Если у вас ещё имеются сомнения, нужно ли это вообще, то рекомендую почитать мотивационную статью, ссылка на которую приведена выше.

В настоящее время основным подходом к внедрению IPv6 является dual-stack, когда устройство одновременно настроено на функционирование обоих IP-протоколов. Это и понятно, ведь основная часть интернета работает на версии IPv4. Механизм 6to4 позволяет подключить ваше устройство IPv4 к брокеру, создав туннель в IPv6. И всё бы было легко и просто, но для такой схемы с вашей стороны необходим маршрутизируемый в wan адрес (белый IP), который в мире сarrier-grade nat провайдеры выдают только за дополнительную плату. Как с этим быть, подробно и рассмотрим в статье.

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

#IPv6 | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
SSU2 — транспортный протокол I2P нового поколения на базе UDP

SSU — протокол I2P, являющийся криптографической оберткой UDP из стека TCP/IP, то есть это низкоуровневый транспортный протокол наравне с NTCP2, который является аналогичной зашифрованной обёрткой TCP. Этот уровень логики I2P обеспечивает первый слой безопасности всей информации, передаваемой между участниками сети.

SSU является первым транспортным протоколом I2P в буквальном смысле, он был создан до NTCP и тем более до NTCP2. С бородатого 2003 года анонимусы гоняют по сети пакеты SSU! С тех пор появился транспорт NTCP и даже его вторая версия, а SSU в течение без малого двадцати лет не получал каких-либо обновлений кроме незначительных исправлений реализации и, как говорят разработчики, костылей вроде поддержки IPv6.

Без этого протокола невозможно полноценное функционирование сети, в особенности на устройствах без выделенного IP-адреса, поэтому, несмотря на оптимизированную работу по TCP (NTCP2), сети I2P был необходим SSU2 — новое поколение транспорта на базе UDP. Спустя девятнадцать лет существования Проекта невидимого интернета (полное название I2P) появилось официальное обсуждение второй версии протокола SSU.

Причины появления SSU2

Медленная криптография. SSU использует старый алгоритм Diffie-Hellman, который требует много вычислительных мощностей, что влечет дополнительные задержки и нагрузку на процессор;

Уязвимость для подмены адреса. Протокол UDP не подразумевает контроль сессий, вся входящая информация валится в один сетевой сокет и принимается без полноценной проверки валидности;

Архитектурные недостатки. Навряд ли первый разработчик (jrandom) видел сразу всю картину протокола целиком, поэтому писал код как есть, уже тогда начав вставлять в SSU костыли по мере необходимости. Накопившиеся нагромождения не позволяют совершенствовать протокол и программировать работу с ним на современном уровне.

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

#SSU | 🌐 Сетевик Джонни
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2