Admin Guides | Сисадмин
11.4K subscribers
1.22K photos
19 videos
34 files
555 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
NAT64 и DNS64: доступ IPv6-only клиентов к IPv4 ресурсам

В сетях, где используется только IPv6, часто возникает проблема: клиентам нужно обращаться к сервисам, которые ещё доступны только по IPv4. Решение — комбинация NAT64 и DNS64.

DNS64 преобразует A-записи IPv4 в синтетические AAAA-записи IPv6. 


Когда клиент делает запрос к IPv4-хосту, он получает IPv6-адрес, который указывает на NAT64-шлюз.

NAT64 на маршрутизаторе или сервере превращает этот IPv6-трафик обратно в IPv4 и перенаправляет его к целевому серверу. Ответ идёт обратно по тому же пути.

Где применяют:
IPv6-only датацентры или филиалы, где внутренние клиенты не имеют IPv4.
Переходные сценарии при массовой миграции на IPv6.
Обеспечение совместимости с внешними сервисами, которые не поддерживают IPv6.

Пример конфигурации на Cisco IOS:

! Создание NAT64-пула
ipv6 nat64 v6v4-pool POOL1 192.0.2.0 192.0.2.255 prefix-length 96
! Включение NAT64 на интерфейсе
interface GigabitEthernet0/1
ipv6 nat64 enable
! Включение DNS64 на Cisco IOS XE
ipv6 dns64 64:ff9b::/96


На Juniper JunOS это выглядит так:

set security nat64 pool NAT64-POOL address 192.0.2.0/24
set security nat64 interface fe-0/0/0.0
set system services dns dns64 prefix 64:ff9b::/96


И еще советы:
Проверяйте, что префикс NAT64 корректно согласован с DNS64.
Не все приложения корректно работают через NAT64 (например, некоторые старые FTP-клиенты).
Мониторьте нагрузку на NAT64-шлюз, он становится точкой концентрации трафика.

Используя NAT64/DNS64, можно постепенно убирать IPv4 из инфраструктуры без потери совместимости с внешними сервисами.
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🤔1
Какой параметр df показывает размеры файловых систем в человекочитаемом формате (GB/MB)?
Anonymous Quiz
87%
-h
4%
-k
8%
-m
2%
-t
😁12🤡6👏3💯1😈1
Хочешь ворваться в DevOps и наконец понять, как работают Kubernetes, Docker и CI/CD?

Ребята из Merion Academy (того самого Youtube-канала про IT), создали курс, который помогает не просто смотреть уроки, а реально учиться:

✔️ Грамотно подобранная программа курса.
✔️ Много практики.
✔️ Помогают разобраться с затыками.
✔️ Отдельно помогут с карьерой: как составить резюме, пройти собеседования и найти работу.

Что интересного в программе:
1. Построение CI/CD пайплайнов в GitLabCI и Jenkins
2. Настройка мониторинга с Zabbix, Prometheus и Grafana
3. Понимание DevSecOps, ZTNA, SASE, Defense in Depth
4. Работа с Docker, включая Docker Compose и Multistaging
5. Infrastructure-as-Code: Terraform и Ansible
5. Работа с хранилищем данных Redis

Какие технологии освоишь: Docker, Ansible, Grafana, Kubernetes, Terraform, Zabbix, ELK, Jenkins, Prometheus

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

❇️ Первые 2 урока бесплатные — попробуй и реши, твое ли это.
Подробнее о курсе
🤡4🔥2👍1👏1💊1
TCP Tuning для высокой нагрузки

В больших сервисах стандартные сетевые настройки ядра Linux иногда становятся узким местом.

Например, при сотнях тысяч одновременных соединений сервер может «терять» пакеты SYN, а TCP-сессии застревать в TIME_WAIT. Чтобы этого избежать, настраивают несколько параметров через sysctl.

Основные параметры

1️⃣net.core.somaxconn
Определяет максимальное количество ожидающих соединений в очереди listen().

# посмотреть текущее значение
sysctl net.core.somaxconn
# увеличить до 65535
sudo sysctl -w net.core.somaxconn=65535


2️⃣ tcp_max_syn_backlog
Размер очереди незавершённых TCP-соединений (SYN). Важно при пиковых нагрузках.

sudo sysctl -w net.ipv4.tcp_max_syn_backlog=4096


3️⃣ tcp_fin_timeout
Время удержания соединений в FIN_WAIT2, которое может «засорять» сервер.

sudo sysctl -w net.ipv4.tcp_fin_timeout=15


4️⃣ tcp_tw_reuse и tcp_tw_recycle (внимание: tcp_tw_recycle устарел и опасен для NAT)
Позволяет повторно использовать TIME_WAIT-сессии для новых соединений.

sudo sysctl -w net.ipv4.tcp_tw_reuse=1


Проверка эффекта

Посмотреть количество TIME_WAIT-соединений:

ss -s | grep timewait


Нагрузить сервер с помощью ab или wrk и сравнить, сколько соединений сервер держит без потерь.

Автоматизация

Чтобы настройки сохранялись после перезагрузки, добавьте их в /etc/sysctl.conf:

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_tw_reuse = 1


и примените:

sudo sysctl -p
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍8
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое CPU isolcpus и как это влияет на производительность Linux-систем?

Ответ: Параметр isolcpus ядра Linux позволяет изолировать один или несколько процессоров от планировщика задач общего назначения. Это значит, что ядро не будет автоматически распределять на них обычные процессы, оставляя их “чистыми” для определённых критичных задач, например, для real-time приложений или высокопроизводительных сервисов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥3👎1
Secure Copy больших файлов: rsync vs scp

При работе с десятками гигабайт через SSH обычный scp начинает тормозить.

Почему?

Потому что он копирует файл целиком, без возможности возобновления, и каждый раз создаёт новое TCP-соединение.

Rsync через SSH решает это:
Передача только изменений (--partial и --inplace)
Можно включить сжатие (-z)
Поддерживает батчевую передачу и возобновление

Примеры:

Копирование одного большого файла с rsync:

rsync -avz --progress /local/largefile user@remote:/backup/


Если соединение обрывается, можно повторно выполнить команду — rsync продолжит с места прерывания.

Копирование каталога с контрольным мультиплексированием SSH:

Host remote
HostName 203.0.113.10
User admin
ControlMaster auto
ControlPath ~/.ssh/cm-%r@%h:%p
ControlPersist 10m


А затем:

rsync -avz /local/dir remote:/backup/dir


Все повторные подключения будут идти через уже открытое TCP-соединение, экономя время.

scp с мультиплексом и сжатием:

scp -o ControlMaster=auto -o ControlPath=~/.ssh/cm-%r@%h:%p -C /local/largefile remote:/backup/


Но для больших директорий rsync остаётся более гибким и надёжным, особенно если нужно резервное копирование или синхронизация.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍83
🥴20👍14😐72😁1
Sysctl для серверов с большим числом подключений

Когда сервер обслуживает сотни тысяч TCP-сессий, стандартные настройки ядра Linux могут стать узким местом.

TIME_WAIT, переполнение очередей сокетов и медленный отклик — типичные признаки. Тут на помощь приходят параметры sysctl.

Основные настройки

net.ipv4.ip_local_port_range — диапазон локальных портов для исходящих соединений. Увеличение диапазона помогает избежать исчерпания портов при массовых подключениях.
net.ipv4.tcp_tw_reuse — разрешает повторное использование сокетов в состоянии TIME_WAIT для новых исходящих соединений.
net.ipv4.tcp_tw_recycle — ускоряет очистку TIME_WAIT (не рекомендуется для NAT).
net.core.netdev_max_backlog — размер очереди пакетов в драйвере сети. Увеличение помогает при пиках входящего трафика.

Измеряем эффект

До изменений:

ss -s | grep TIME-WAIT
cat /proc/sys/net/core/netdev_max_backlog


Применяем sysctl:

sudo sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
sudo sysctl -w net.core.netdev_max_backlog=5000


После изменений: повторяем измерения TPS (запросов в секунду) и TIME_WAIT.

Вывод: больше соединений проходит без ошибок, очередь пакетов меньше переполняется, нагрузка на сервер равномернее.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
Bcachefs теперь «внешне поддерживаемая»

28 августа 2025 года Линус Торвальдс перевёл файловую систему Bcachefs в режим Externally maintained. 


Это значит, что ядро больше не принимает её изменения, а дальнейшая разработка ведётся вне основной кодовой базы.

Причина — конфликты с автором проекта Кентом Оверстритом: он присылает крупные изменения в неподходящее время, нарушая процесс ядра.

Торвальдс считает, что поздние релизы должны лишь исправлять ошибки, а Оверстрит настаивает на срочном исправлении багов для сохранности данных. Bcachefs остаётся экспериментальной ФС.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🤔1
Logrotate для нестандартных приложений

Стандартные сервисы вроде Nginx или syslog ротируются автоматически, а вот для нестандартных daemon или собственных приложений нужно использовать postrotate, sharedscripts и правильно обрабатывать сигнал HUP.

postrotate — команды после ротации (например, сигнал процессу перечитать лог).
sharedscripts — если несколько файлов ротируются, скрипт выполняется один раз.
HUP — заставляет daemon перечитать файл без перезапуска.

Пример для PostgreSQL:

/var/log/postgresql/*.log {
daily
rotate 7
compress
delaycompress
notifempty
missingok
sharedscripts
postrotate
systemctl reload postgresql > /dev/null 2>/dev/null || true
endscript
}


Здесь логи сжимаются и хранятся неделю, пустые файлы не ротируются, а PostgreSQL после ротации продолжает писать в новый файл.

Пример для Nginx:

/var/log/nginx/*.log {
daily
rotate 14
missingok
notifempty
sharedscripts
postrotate
[ -f /run/nginx.pid ] && kill -HUP `cat /run/nginx.pid`
endscript
}


Можно добавить уведомление админа через mail или Slack.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93