В сети начали массово сливать курсы и книги известных онлайн школ по айти
Вот отсортированная база с тонной материала (постепенно пополняется):
(363 видео, 87 книги) — Python
(415 видео, 68 книги) — Frontend
(143 видео, 33 книги) — ИБ/Хакинг
(352 видео, 89 книги) — С/С++/C#
(343 видео, 87 книги) — Java/QA
(176 видео, 32 книги) — Git/Linux
(174 видео, 91 книги) — DevOps
(167 видео, 53 книги) — PHP/1С
(227 видео, 83 книги) — SQL/БД
(114 видео, 77 книги) — Сисадмин
(107 видео, 43 книги) — BA/SA
(181 видео, 32 книги) — Go/Rust
(167 видео, 43 книги) — Kotlin/Swift
(112 видео, 24 книги) — Flutter
(137 видео, 93 книги) — DS/ML
(113 видео, 82 книги) — GameDev
(183 видео, 37 книги) — Дизайн
(136 видео, 33 книги) — PM/HR
Скачивать ничего не нужно — все выложили в Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁1💊1
Проверка бинарей: как убедиться, что твой ls — не троян
Когда сервер скомпрометирован, особенно root-доступом, не факт, что top, ps, ss и другие привычные утилиты — настоящие. Их могли подменить.
Вот как проверить целостность системных бинарей:
Для RPM-систем (CentOS, RHEL, Fedora):
Символ 5 означает: контрольная сумма не совпадает.
Для DEB-систем (Debian, Ubuntu): Установи debsums:
Проверка:
-s показывает только несовпадения.
AIDE (Advanced Intrusion Detection Environment)
Установка:
Инициализация:
Проверка:
Можно запускать через cron и мониторить системные изменения, даже если debsums и rpm -V не используются.
Когда сервер скомпрометирован, особенно root-доступом, не факт, что top, ps, ss и другие привычные утилиты — настоящие. Их могли подменить.
Вот как проверить целостность системных бинарей:
Для RPM-систем (CentOS, RHEL, Fedora):
sudo rpm -Va | grep '^..5'
Символ 5 означает: контрольная сумма не совпадает.
Для DEB-систем (Debian, Ubuntu): Установи debsums:
sudo apt install debsums
Проверка:
sudo debsums -s
-s показывает только несовпадения.
AIDE (Advanced Intrusion Detection Environment)
Установка:
sudo apt install aide
Инициализация:
sudo aideinit
Проверка:
sudo aide --check
Можно запускать через cron и мониторить системные изменения, даже если debsums и rpm -V не используются.
🔥10👍5❤2
Что произойдёт, если у сервиса systemd указать одновременно Restart=on-failure и SuccessExitStatus=1 2?
Anonymous Quiz
18%
Сервис перезапустится при коде выхода 1 или 2
40%
Коды 1 и 2 будут считаться успешными, перезапуска не будет
21%
systemd проигнорирует SuccessExitStatus
20%
Сервис всегда будет перезапускаться, независимо от кода
❤5🔥3
Microsoft выпустила WSL 2.6.0
Microsoft выпустила обновление Windows Subsystem for Linux — версию 2.6.0, первый релиз после открытия исходного кода утилит и сервисов WSL под лицензией MIT.
В этой версии основной упор на исправления и повышение стабильности.
WSL запускает полноценное ядро Linux 6.6 в виртуальной машине с ext4 и виртуальным сетевым адаптером.
⏺ С открытием кода в мае 2025 года сторонние разработчики могут участвовать в развитии подсистемы, собирая и улучшая инструментарий из исходников.
Microsoft выпустила обновление Windows Subsystem for Linux — версию 2.6.0, первый релиз после открытия исходного кода утилит и сервисов WSL под лицензией MIT.
Ранее были открыты только ядро Linux и графический стек wslg, а инструменты оставались проприетарными.
В этой версии основной упор на исправления и повышение стабильности.
WSL запускает полноценное ядро Linux 6.6 в виртуальной машине с ext4 и виртуальным сетевым адаптером.
Некоторые драйверы Windows остаются закрытыми, например, Lxcore.sys и компоненты для перенаправления файловой системы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4
Обнаружение забытых cron-заданий: где искать и как логировать
Система что-то делает по расписанию, но где — непонятно. Cron-логика может быть разбросана по разным местам. Как навести порядок и отследить всё?
1️⃣ Проверяем пользовательские crontab-и
Смотрим задания конкретного пользователя:
А чтобы просканировать всех — используем:
2️⃣ Проверяем системные каталоги: /etc/cron.*
Скрипты могут лежать в:
• /etc/cron.daily/
• /etc/cron.hourly/
• /etc/cron.weekly/
• /etc/cron.monthly/
• /etc/cron.d/
Также посмотри сам файл /etc/crontab, там может быть явная привязка скриптов к пользователям.
3️⃣ Проверяем systemd timers
В новых дистрибутивах cron заменяют systemd-timer-ы.
Показываем активные:
Смотрим, откуда запускается таймер:
4️⃣ Проверка логов выполнения
Если cron активен, то результат выполнения должен быть в:
Или в старых системах:
Если используется systemd-timer:
5️⃣ Аудит на будущее: log + mail
Добавляй в задания cron явный вывод:
Или настраивай почту через MAILTO=user.
Система что-то делает по расписанию, но где — непонятно. Cron-логика может быть разбросана по разным местам. Как навести порядок и отследить всё?
Смотрим задания конкретного пользователя:
crontab -l -u user
А чтобы просканировать всех — используем:
for u in $(cut -f1 -d: /etc/passwd); do crontab -l -u "$u" 2>/dev/null; done
Скрипты могут лежать в:
• /etc/cron.daily/
• /etc/cron.hourly/
• /etc/cron.weekly/
• /etc/cron.monthly/
• /etc/cron.d/
Также посмотри сам файл /etc/crontab, там может быть явная привязка скриптов к пользователям.
В новых дистрибутивах cron заменяют systemd-timer-ы.
Показываем активные:
systemctl list-timers
Смотрим, откуда запускается таймер:
systemctl cat имя.timer
Если cron активен, то результат выполнения должен быть в:
journalctl -u cron
Или в старых системах:
grep CRON /var/log/syslog
Если используется systemd-timer:
journalctl -u имя.service
Добавляй в задания cron явный вывод:
*/5 * * * * /opt/script.sh >> /var/log/myscript.log 2>&1
Или настраивай почту через MAILTO=user.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5🔥2
🚀 Тренды в Kubernetes и DevOps 2025
26 июня в 19:00 приглашаем на прямой эфир в Telegram-канале «Кубернетика». Вас ждет экспертная оценка ключевых трендов Kubernetes и DevOps: определим, какие из них реально ждут нас в будущем, а какие — просто хайп.
CTO, инженеры DevOps-практик и архитекторы — приходите узнать о практиках, которые скоро станут повседневностью.
Разберём:
• AI/ML в DevOps становится стратегическим преимуществом, а не просто инструментом?
• DevSecOps — это опция или необходимость?
• GitOps — стандарт управления инфраструктурой?
• Роль платформ разработки (IDP) в создании эффективной DevOps-культуры.
• Устойчивые (sustainable) практики DevOps.
• Будущее виртуализации в Kubernetes.
20 минут полезного контента + 10 минут ответов на вопросы.
🔹 Подписывайтесь и ставьте напоминание о трансляции, чтобы не пропустить!
26 июня в 19:00 приглашаем на прямой эфир в Telegram-канале «Кубернетика». Вас ждет экспертная оценка ключевых трендов Kubernetes и DevOps: определим, какие из них реально ждут нас в будущем, а какие — просто хайп.
CTO, инженеры DevOps-практик и архитекторы — приходите узнать о практиках, которые скоро станут повседневностью.
Разберём:
• AI/ML в DevOps становится стратегическим преимуществом, а не просто инструментом?
• DevSecOps — это опция или необходимость?
• GitOps — стандарт управления инфраструктурой?
• Роль платформ разработки (IDP) в создании эффективной DevOps-культуры.
• Устойчивые (sustainable) практики DevOps.
• Будущее виртуализации в Kubernetes.
20 минут полезного контента + 10 минут ответов на вопросы.
🔹 Подписывайтесь и ставьте напоминание о трансляции, чтобы не пропустить!
❤2
Динамическая маршрутизация через FRRouting: OSPF за 5 минут
FRRouting (FRR) — это современная реализация протоколов динамической маршрутизации (OSPF, BGP, RIP и др.), основанная на Quagga.
Разберем базовую настройку OSPF на двух хостах.
Установка
На Debian/Ubuntu:
Убедитесь, что ospfd включён:
Запускаем и включаем автозапуск:
Настройка OSPF через vtysh
Открываем интерактивную оболочку:
Настраиваем маршрутизатор:
Аналогично делаем на втором хосте, где IP-сети пересекаются.
Проверка состояния
Проверить, с кем установлен OSPF-соседство:
Посмотреть маршруты, принятые через OSPF:
Диагностика
Если соседей не видно — проверьте MTU, firewall (UDP 89), и включен ли ospfd. Для отладки:
FRRouting (FRR) — это современная реализация протоколов динамической маршрутизации (OSPF, BGP, RIP и др.), основанная на Quagga.
Разберем базовую настройку OSPF на двух хостах.
Установка
На Debian/Ubuntu:
apt install frr frr-pythontools
Убедитесь, что ospfd включён:
nano /etc/frr/daemons
# включаем
ospfd=yes
Запускаем и включаем автозапуск:
systemctl enable --now frr
Настройка OSPF через vtysh
Открываем интерактивную оболочку:
vtysh
Настраиваем маршрутизатор:
conf t
hostname r1
router ospf
network 10.0.0.0/24 area 0
network 192.168.1.0/24 area 0
exit
interface eth0
ip ospf area 0
exit
write
Аналогично делаем на втором хосте, где IP-сети пересекаются.
Проверка состояния
Проверить, с кем установлен OSPF-соседство:
show ip ospf neighbor
Посмотреть маршруты, принятые через OSPF:
show ip route ospf
Диагностика
Если соседей не видно — проверьте MTU, firewall (UDP 89), и включен ли ospfd. Для отладки:
tail -f /var/log/frr/ospfd.log
❤9
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
При fork дочерний процесс получает копию страниц памяти родительского, но фактически обе копии указывают на одни и те же физические адреса. Только если один из процессов пытается записать в память, ядро создает новую копию изменяемой страницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7
Media is too big
VIEW IN TELEGRAM
🔧 Выполняю задачи на PHP 8.2 / Laravel 12 — быстро и по делу
Работаю с реальными проектами — без воды и затягиваний. Берусь за:
💡 Задачи средней сложности
— Доработка существующего кода
— Создание новых модулей и API
— Интеграции со сторонними сервисами
— Рефакторинг, багфиксы
💰 Стоимость: от 2000 до 5000₽ за коммит (в зависимости от объёма)
🧱 Сложные задачи
— Полная переработка архитектуры
— Разработка проекта с нуля
— Развёртывание и настройка инфраструктуры в Kubernetes, CI/CD
💬 Оценивается по договорённости — в процессе обсуждения и выполнения
📈 Работаю быстро, аккуратно, с прицелом на масштабируемость и поддержку. Без лишней бюрократии — только результат.
📩 Пиши в личку — обсудим твою задачу.
@frenziedlord
Работаю с реальными проектами — без воды и затягиваний. Берусь за:
💡 Задачи средней сложности
— Доработка существующего кода
— Создание новых модулей и API
— Интеграции со сторонними сервисами
— Рефакторинг, багфиксы
💰 Стоимость: от 2000 до 5000₽ за коммит (в зависимости от объёма)
🧱 Сложные задачи
— Полная переработка архитектуры
— Разработка проекта с нуля
— Развёртывание и настройка инфраструктуры в Kubernetes, CI/CD
💬 Оценивается по договорённости — в процессе обсуждения и выполнения
📈 Работаю быстро, аккуратно, с прицелом на масштабируемость и поддержку. Без лишней бюрократии — только результат.
📩 Пиши в личку — обсудим твою задачу.
@frenziedlord
❤4🔥1
Горячая подмена бинарников без перезапуска демона (LD_PRELOAD)
Иногда нужно “вшить” патч в работающий процесс, не пересобирая и не перезапуская его. Это может быть:
• баг в библиотеке,
• временный хак,
• отладка поведения без доступа к исходникам.
Решение — LD_PRELOAD. Он позволяет подменять функции в загружаемых библиотеках, подсовывая свои реализации.
Пример: подмена getenv
Пишем свою версию функции:
Компилируем:
Запускаем приложение с подменой:
Теперь getenv("SECRET") в app вернёт "patched", даже если сам бинарник этого не знает.
Как это применимо в live-системе
Если демон уже запущен, можно:
– перезапустить его с LD_PRELOAD через systemctl edit и override-окружение,
– или, если нужен runtime-хук — использовать gdb, ptrace или написать shim с подменой через execve.
Иногда нужно “вшить” патч в работающий процесс, не пересобирая и не перезапуская его. Это может быть:
• баг в библиотеке,
• временный хак,
• отладка поведения без доступа к исходникам.
Решение — LD_PRELOAD. Он позволяет подменять функции в загружаемых библиотеках, подсовывая свои реализации.
Пример: подмена getenv
Пишем свою версию функции:
// preload.c
#define _GNU_SOURCE
#include <stdio.h>
#include <string.h>
char *getenv(const char *name) {
if (strcmp(name, "SECRET") == 0) return "patched";
return NULL;
}
Компилируем:
gcc -shared -fPIC -o preload.so preload.c
Запускаем приложение с подменой:
LD_PRELOAD=./preload.so ./app
Теперь getenv("SECRET") в app вернёт "patched", даже если сам бинарник этого не знает.
Как это применимо в live-системе
Если демон уже запущен, можно:
– перезапустить его с LD_PRELOAD через systemctl edit и override-окружение,
– или, если нужен runtime-хук — использовать gdb, ptrace или написать shim с подменой через execve.
❤7🤔2👍1👏1
Что произойдёт, если на LVM-пуле не хватает места при записи в том, смонтированный с ext4?
Anonymous Quiz
11%
Ядро автоматически расширит том
29%
Процессы начнут получать ENOSPC, система продолжит работу
48%
Файловая система переключится в read-only
12%
Система зависнет
❤7🔥2
Динамическое управление swap без перезагрузки
Swap — это область на диске, которую система использует как дополнительную виртуальную память, когда оперативная память заканчивается.
Правильное управление swap помогает избежать “тормозов” и падений приложений при высокой нагрузке на память.
1️⃣ Проверяем текущее состояние swap
Узнаём, какие swap-устройства или файлы активны.
2️⃣ Добавляем swap-файл на лету
Swap-файл — простой способ добавить swap, не создавая раздел на диске. Такой swap доступен сразу после включения.
3️⃣ Отключаем и удаляем swap
Так можно быстро освободить дисковое пространство или уменьшить swap.
4️⃣ Меняем swappiness без перезагрузки
Параметр vm.swappiness регулирует, как активно ядро использует swap: от 0 (почти не использует) до 100 (активно использует).
Для постоянного изменения редактируем /etc/sysctl.conf.
5️⃣ Автоматизация загрузки swap
Добавляем в /etc/fstab строку, чтобы swap-файл подключался при загрузке:
Swap — это область на диске, которую система использует как дополнительную виртуальную память, когда оперативная память заканчивается.
Правильное управление swap помогает избежать “тормозов” и падений приложений при высокой нагрузке на память.
swapon --show
free -h
Узнаём, какие swap-устройства или файлы активны.
fallocate -l 2G /swapfile2
chmod 600 /swapfile2
mkswap /swapfile2
swapon /swapfile2
Swap-файл — простой способ добавить swap, не создавая раздел на диске. Такой swap доступен сразу после включения.
swapoff /swapfile2
rm /swapfile2
Так можно быстро освободить дисковое пространство или уменьшить swap.
Параметр vm.swappiness регулирует, как активно ядро использует swap: от 0 (почти не использует) до 100 (активно использует).
sysctl vm.swappiness=10
Для постоянного изменения редактируем /etc/sysctl.conf.
Добавляем в /etc/fstab строку, чтобы swap-файл подключался при загрузке:
/swapfile2 none swap sw 0 0
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Например, модуль для работы с определённой файловой системой или сетевым протоколом может быть не загружен при старте, но автоматически подгрузится при монтировании соответствующего диска или при попытке использования нужного сетевого стека.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
Мониторинг и отладка проблем с задержками дисковых операций через iostat, blktrace и perf
Почему важно следить за задержками на дисках?
Высокие задержки на диске вызывают «лаг» приложений, рост времени отклика и даже сбои сервисов.
Особенно критично для баз данных и систем с интенсивным вводом-выводом.
1️⃣ iostat — базовый инструмент мониторинга
- Показывает загрузку устройств, время ожидания (await), скорость операций.
- Если await слишком высокое — проблема с диском или нагрузкой.
2️⃣ blktrace — глубокий анализ блокирующих операций
Позволяет отследить операции чтения/записи на уровне блока:
- Выводит детальные события, задержки и очереди.
- Помогает найти, что именно тормозит — очередь, железо, драйвер.
3️⃣ perf и tracepoints для дисков
С помощью perf можно собирать статистику по block-layer:
• Анализирует время между отправкой запроса и завершением.
• Помогает выявить узкие места на уровне ядра.
4️⃣ Анализ и оптимизация
• Если очередь в blktrace растёт — нужно проверить параметры драйвера, scheduler (cfq, noop, deadline).
• Возможно стоит переключиться на более подходящий I/O scheduler:
• Увеличить размер очереди или оптимизировать параметры RAID.
Почему важно следить за задержками на дисках?
Высокие задержки на диске вызывают «лаг» приложений, рост времени отклика и даже сбои сервисов.
Особенно критично для баз данных и систем с интенсивным вводом-выводом.
iostat -x 1
- Показывает загрузку устройств, время ожидания (await), скорость операций.
- Если await слишком высокое — проблема с диском или нагрузкой.
Позволяет отследить операции чтения/записи на уровне блока:
sudo blktrace -d /dev/sda -o - | blkparse -i -
- Выводит детальные события, задержки и очереди.
- Помогает найти, что именно тормозит — очередь, железо, драйвер.
С помощью perf можно собирать статистику по block-layer:
sudo perf trace -e block:block_rq_issue,block:block_rq_complete -a
• Анализирует время между отправкой запроса и завершением.
• Помогает выявить узкие места на уровне ядра.
• Если очередь в blktrace растёт — нужно проверить параметры драйвера, scheduler (cfq, noop, deadline).
• Возможно стоит переключиться на более подходящий I/O scheduler:
cat /sys/block/sda/queue/scheduler
echo noop > /sys/block/sda/queue/scheduler
• Увеличить размер очереди или оптимизировать параметры RAID.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤2👍1
Как детально проверить загрузку ЦП в Linux
Для профессионального анализа загрузки процессора в Linux можно использовать продвинутые инструменты и методы.
Это поможет глубже понять, какие процессы или службы перегружают систему, и оптимизировать её производительность.
1️⃣ Детальная проверка с top и iotop
top с фильтрацией
Запустите top и используйте команды:
• Нажмите P, чтобы отсортировать процессы по использованию ЦП.
• Нажмите I, чтобы скрыть неактивные процессы.
• Нажмите 1, чтобы отобразить загрузку по каждому ядру.
Добавление iotop для анализа ввода-вывода
Высокая загрузка процессора может быть связана с активными операциями ввода-вывода. Установите iotop:
Запустите:
Это покажет, какие процессы активно работают с диском.
2️⃣ Использование pidstat
pidstat позволяет отслеживать загрузку процессора на уровне отдельных процессов. Это полезно для определения проблемных приложений.
Установите инструмент:
Чтобы узнать, какой процесс занимает процессор:
Параметр 1 задаёт интервал обновления в 1 секунду.
Для анализа системных вызовов используйте:
3️⃣ Анализ c perf
perf — мощный инструмент для профилирования производительности процессора.
Установите:
Запустите краткий отчёт:
Для глубокого анализа:
После завершения работы команды используйте:
Это покажет статистику использования процессора и узкие места.
Для профессионального анализа загрузки процессора в Linux можно использовать продвинутые инструменты и методы.
Это поможет глубже понять, какие процессы или службы перегружают систему, и оптимизировать её производительность.
top с фильтрацией
Запустите top и используйте команды:
• Нажмите P, чтобы отсортировать процессы по использованию ЦП.
• Нажмите I, чтобы скрыть неактивные процессы.
• Нажмите 1, чтобы отобразить загрузку по каждому ядру.
Добавление iotop для анализа ввода-вывода
Высокая загрузка процессора может быть связана с активными операциями ввода-вывода. Установите iotop:
sudo apt install iotop
Запустите:
sudo iotop
Это покажет, какие процессы активно работают с диском.
pidstat позволяет отслеживать загрузку процессора на уровне отдельных процессов. Это полезно для определения проблемных приложений.
Установите инструмент:
sudo apt install sysstat
Чтобы узнать, какой процесс занимает процессор:
pidstat -u 1
Параметр 1 задаёт интервал обновления в 1 секунду.
Для анализа системных вызовов используйте:
pidstat -w 1
perf — мощный инструмент для профилирования производительности процессора.
Установите:
sudo apt install linux-tools-$(uname -r)
Запустите краткий отчёт:
sudo perf stat -a
Для глубокого анализа:
sudo perf record -a
После завершения работы команды используйте:
sudo perf report
Это покажет статистику использования процессора и узкие места.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍6
Как настроить Fail2Ban для защиты от атак в Linux
Fail2Ban — это инструмент для защиты серверов от брутфорс-атак, который блокирует IP-адреса после нескольких неудачных попыток входа.
В этом посте рассмотрим, как установить и настроить Fail2Ban.
1️⃣ Установка Fail2Ban
Для установки используйте следующую команду:
• Debian/Ubuntu:
• CentOS/RHEL:
Запустите и включите службу:
2️⃣ Настройка Fail2Ban
Настройки Fail2Ban хранятся в файле /etc/fail2ban/jail.local. Создайте его, если его нет:
Откройте файл для редактирования:
Настройте секцию для SSH:
• maxretry — количество неудачных попыток.
• bantime — время блокировки в секундах.
• findtime — время, за которое нужно зафиксировать ошибки.
Перезапустите Fail2Ban:
3️⃣ Проверка статуса
Для проверки статуса Fail2Ban:
Для проверки статуса SSH:
4️⃣ Разблокировка IP-адреса
Для разблокировки IP-адреса используйте:
Fail2Ban — это инструмент для защиты серверов от брутфорс-атак, который блокирует IP-адреса после нескольких неудачных попыток входа.
В этом посте рассмотрим, как установить и настроить Fail2Ban.
Для установки используйте следующую команду:
• Debian/Ubuntu:
sudo apt install fail2ban
• CentOS/RHEL:
sudo yum install fail2ban
Запустите и включите службу:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Настройки Fail2Ban хранятся в файле /etc/fail2ban/jail.local. Создайте его, если его нет:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Откройте файл для редактирования:
sudo nano /etc/fail2ban/jail.local
Настройте секцию для SSH:
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
• maxretry — количество неудачных попыток.
• bantime — время блокировки в секундах.
• findtime — время, за которое нужно зафиксировать ошибки.
Перезапустите Fail2Ban:
sudo systemctl restart fail2ban
Для проверки статуса Fail2Ban:
sudo systemctl status fail2ban
Для проверки статуса SSH:
sudo fail2ban-client status sshd
Для разблокировки IP-адреса используйте:
sudo fail2ban-client set sshd unbanip <IP-адрес>
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤8
Почему использование bridged сети в KVM может быть предпочтительнее NAT?
Anonymous Quiz
9%
Упрощает настройку iptables
65%
Даёт прямой доступ ВМ в подсеть хоста
5%
Лучше поддерживает IPv6
21%
Всегда быстрее по производительности
❤7
PPPoE и IPv6 — несовместимы?
Но как только появляется требование получить IPv6, ситуация усложняется: адрес не приходит, маршруты пустые, пинг до google.com по v6 — ноль реакции. Разбираемся, в чём дело.
Что происходит при PPPoE?
1️⃣ Вы поднимаете pppoe0 (например, через pppd, rp-pppoe, NetworkManager, systemd-networkd) — и получаете IPv4-адрес.
2️⃣ А где IPv6? Он не приходит в самом PPP-сессии.
3️⃣ Вместо этого провайдер часто делегирует префикс через DHCPv6-PD (Prefix Delegation) уже после установления PPPoE.
Как получить IPv6 в Linux?
Способ 1 — через dhclient и DHCPv6-PD:
• -6 — использовать IPv6
• -P — запросить префикс (PD)
• Если всё настроено правильно, вы получите /56 или /64 префикс
Но dhclient работает не везде стабильно — многие переходят на dhcpcd или systemd-networkd.
Способ 2 — systemd-networkd (современно и удобно):
Сделает всё сам: RA, DHCPv6, установка маршрутов.
Классическое подключение к интернету через PPPoE и так не самое простое.
Но как только появляется требование получить IPv6, ситуация усложняется: адрес не приходит, маршруты пустые, пинг до google.com по v6 — ноль реакции. Разбираемся, в чём дело.
Что происходит при PPPoE?
Как получить IPv6 в Linux?
Способ 1 — через dhclient и DHCPv6-PD:
dhclient -6 -P ppp0
• -6 — использовать IPv6
• -P — запросить префикс (PD)
• Если всё настроено правильно, вы получите /56 или /64 префикс
Но dhclient работает не везде стабильно — многие переходят на dhcpcd или systemd-networkd.
Способ 2 — systemd-networkd (современно и удобно):
[Match]
Name=ppp0
[Network]
DHCP=ipv6
IPv6AcceptRA=true
[DHCPv6]
PrefixDelegation=yes
Сделает всё сам: RA, DHCPv6, установка маршрутов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤3
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Ключевая идея: при обновлении структуры данных не изменяется оригинал напрямую. Вместо этого создается копия, изменяется, а затем «публикуется» как новая версия. Старую версию продолжат читать те, кто начал до обновления. Когда все старые читатели завершат доступ, старая версия удаляется.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3