Лента постов канала Network Admin (@networkadm) https://t.me/networkadm Обучающий канал по сетевому и системному администрированию. Сотрудничество: @dad_admin Биржа: https://telega.in/c/networkadm ru https://linkbaza.com/catalog/-1001898919043 Tue, 19 Aug 2025 14:41:14 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Tue, 19 Aug 2025 12:40:08 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Mon, 18 Aug 2025 18:02:38 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Fri, 15 Aug 2025 14:35:56 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Thu, 14 Aug 2025 18:50:49 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Wed, 13 Aug 2025 14:41:11 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Wed, 13 Aug 2025 12:40:09 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Tue, 12 Aug 2025 14:01:28 +0300
NAT Hairpinning — что это и зачем нужно?

NAT Hairpinning (или loopback NAT) — это способ доступа к своим локальным сервисам по их внешнему (публичному) IP адресу изнутри локальной сети.

Например, у вас есть сервер в локальной сети с внутренним IP 192.168.1.100, и у него проброшен внешний IP (скажем, 203.0.113.10) через NAT на роутере.


Если вы с другого устройства в той же локальной сети попытаетесь подключиться к 203.0.113.10 (например, к веб-серверу на порту 80), то без настройки hairpinning это, как правило, не сработает — трафик не “заходит обратно” в локальную сеть.

Как это работает?

Роутер смотрит на пакеты, которые пришли с локального интерфейса, направленные на его же внешний IP, и перенаправляет их обратно во внутреннюю сеть, применяя DNAT к локальному IP сервера.

Пример настройки iptables для NAT Hairpinning

Предположим:
⏺Внешний IP роутера: 203.0.113.10
⏺Локальный сервер: 192.168.1.100
⏺Сервис на порту 80 (HTTP)

Выполните такие правила (от имени root):

# Проброс порта с внешнего IP на локальный сервер
iptables -t nat -A PREROUTING -d 203.0.113.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80

# Разрешаем возвратный трафик
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.100 -p tcp --dport 80 -j MASQUERADE


Объяснение:
• Правило в PREROUTING меняет адрес назначения с внешнего IP на внутренний.
• Правило в POSTROUTING маскирует исходящий трафик, чтобы сервер видел запросы как от роутера, и мог отправить ответ обратно корректно.

N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Mon, 11 Aug 2025 14:50:54 +0300
Топ-5 ошибок при настройке EtherChannel (LACP/PAgP)

+ как быстро диагностировать

EtherChannel — мощный инструмент агрегации каналов, но одна мелочь в конфиге может убить весь бандл или снизить производительность.

1️⃣Разные настройки на портах

Разные speed/duplex или MTU ломают агрегацию. Разное VLAN-назначение (trunk/access) приводит к непредсказуемым сбоям.

Пример ошибки:

switchport mode trunk
switchport trunk allowed vlan 10,20


…на одном порту, а на другом 10,30.

2️⃣ Смешивание режимов LACP/PAgP

LACP (active/passive) и PAgP (desirable/auto) несовместимы. Если на одном конце LACP, а на другом PAgP — бандл не поднимется.

3️⃣ Использование “on” без протокола

Режим on игнорирует LACP/PAgP и форсит агрегацию. Если на другом конце LACP — возникнет misconfiguration.

4️⃣ Разные load-balancing алгоритмы

На разных устройствах балансировка (src-mac, src-dst-ip и т.д.) может распределять трафик неравномерно. Результат тут — недозагрузка линков.

5️⃣ Игнорирование диагностики

Многие настраивают, но не проверяют. Результат — «висячие» линков в состоянии standby.

Быстрая диагностика

show etherchannel summary       ! Статус каналов
show running-config interface ! Проверить одинаковость настроек
show lacp neighbor ! Состояние LACP


N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Fri, 08 Aug 2025 15:01:38 +0300
Когда ICMP нужен: как его отсутствие ломает MSS и PMTU discovery

Во многих инфраструктурах ICMP считают «ненужным» и отрубaют его на периметре — мол, безопасность, чтобы никто не пинговал.

В результате получаем баги, которые тяжело отлаживать: от медленного SSH до обрыва TLS.


Path MTU Discovery (PMTUD) в TCP/IP полагается на ICMP Type 3 Code 4 (Fragmentation Needed).

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

Признаки в продакшене:
• SSH или HTTPS зависает сразу после подключения
• TLS соединение срывается без ошибки
• ping до узла работает, но curl или scp — нет
• MTU выше по цепочке (например, GRE или IPsec) не согласуется

Как диагностировать
⏺Проверка MTU:

ip link | grep mtu  
ip route get
ping -M do -s 1472 # для MTU 1500 с учетом IP+ICMP


⏺Анализ через tcpdump:

tcpdump -i eth0 icmp or tcp port 443


Если нет ICMP Fragmentation Needed — значит, он кем-то фильтруется.

⏺Проверка firewall’ов:
Убедитесь, что правила (например, в iptables или cloud security group) не блокируют ICMP Type 3.

Как лечить
Пропустить ICMP Type 3 на периметре (или хотя бы Code 4):

iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT


Уменьшить MSS вручную на туннелях или при NAT:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu


Проверить, не отключен ли PMTU discovery в системе:

sysctl net.ipv4.ip_no_pmtu_disc


N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Thu, 07 Aug 2025 15:10:51 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Wed, 06 Aug 2025 14:11:11 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Tue, 05 Aug 2025 13:08:11 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Mon, 04 Aug 2025 14:35:56 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Fri, 01 Aug 2025 14:21:18 +0300
Протокол BFD - быстрая детекция отказов

BFD — лёгкий протокол для быстрого обнаружения недоступности соседних маршрутизаторов или линков.

Работает поверх UDP и значительно сокращает время реакции сетевого оборудования при сбоях.


Как работает BFD?

Два узла устанавливают BFD-сессию и обмениваются маленькими пакетами «heartbeat» с частотой до нескольких десятков миллисекунд.

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

Интеграция с BGP и OSPF
• В BGP использование BFD сокращает время обнаружения падения соседа с десятков секунд до сотен миллисекунд.
• В OSPF можно включить BFD для всех интерфейсов, чтобы повысить отказоустойчивость.

Пример настройки в FRRouting (FRR)

router bgp 65001
neighbor 192.0.2.2 remote-as 65002
neighbor 192.0.2.2 bfd
!
bfd
interval 50 min_rx 50 multiplier 3


• interval 50 — отправка пакетов каждые 50 мс
• multiplier 3 — считаем сессию упавшей, если три пакета подряд не получены (примерно 150 мс)

Для OSPF:

router ospf
bfd all-interfaces


Проверка статуса

Команда в FRR:

show bfd peers


Показывает состояние BFD сессий и статистику.

N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Thu, 31 Jul 2025 14:51:30 +0300
Overlay‑сети без Kubernetes: VXLAN для микросервисов и VM вручную

Не всегда для микросервисов нужен Kubernetes или OpenStack. Иногда достаточно пары серверов и лёгкой overlay‑сети, чтобы изолировать сервисы и связать их в едином L2 поверх L3‑инфраструктуры.

Для этого отлично подходит VXLAN (Virtual eXtensible LAN).


Как работает VXLAN

VXLAN инкапсулирует Ethernet‑кадры в UDP‑пакеты (порт 4789).
Это позволяет создать виртуальную L2‑сеть поверх обычной IP‑маршрутизации.

Каждая VXLAN‑сеть идентифицируется VNI (VXLAN Network Identifier) — 24‑битное поле, что даёт до 16 миллионов сегментов.

По сути, у вас появляется свой виртуальный коммутатор, распределённый между хостами.

Настройка вручную

1️⃣На обоих хостах создаём VXLAN‑интерфейс

ip link add vxlan10 type vxlan id 10 \
dev eth0 remote 203.0.113.2 dstport 4789
ip addr add 10.10.10.1/24 dev vxlan10
ip link set vxlan10 up


На втором хосте:

ip link add vxlan10 type vxlan id 10 \
dev eth0 remote 203.0.113.1 dstport 4789
ip addr add 10.10.10.2/24 dev vxlan10
ip link set vxlan10 up


2️⃣Проверяем связность

ping 10.10.10.2 -I vxlan10


Если всё ок — пакеты идут через VXLAN.

3️⃣ Добавляем бридж, если нужно несколько VM

brctl addbr br0
ip link set vxlan10 master br0
ip link set vnet0 master br0


Теперь VM, подключённые к br0, находятся в общей overlay‑сети.

N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Wed, 30 Jul 2025 14:51:13 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Wed, 30 Jul 2025 12:55:10 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Tue, 29 Jul 2025 14:50:33 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Tue, 29 Jul 2025 12:50:07 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Mon, 28 Jul 2025 14:37:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Fri, 25 Jul 2025 19:50:56 +0300
С днём сисадмина! 🍺

Предлагаю в очередной раз насладиться классикой :)

localhost › IT-юмор
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Fri, 25 Jul 2025 14:37:01 +0300
🎉 С днем системного администратора! 🎉

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

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

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

За вас, сисадмины! С праздником! 🎆

N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Fri, 25 Jul 2025 12:35:09 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Thu, 24 Jul 2025 14:41:20 +0300
Кэшируем APT, pip и Docker локально

Когда часто разворачиваешь новые среды или работаешь в команде, каждый apt install, pip install или docker pull превращается в гонку с интернетом.

Но можно всё кэшировать локально — и сэкономить десятки гигабайт трафика и часы ожидания.

APT: apt-cacher-ng

apt-cacher-ng — это прокси, который кэширует .deb-пакеты.

Установка (на сервере кэша):

sudo apt install apt-cacher-ng


По умолчанию он слушает на 3142. Теперь клиенты могут использовать его так:

echo 'Acquire::http { Proxy "http://IP_СЕРВЕРА:3142"; };' | sudo tee /etc/apt/apt.conf.d/01proxy


После этого всё, что тянется через apt, будет сохраняться в кэше и переиспользоваться другими машинами.

pip: кэш и локальный индекс

Способ 1: использовать локальный кэш

pip сам кэширует пакеты в ~/.cache/pip, но можно переиспользовать его для других машин.
Просто синхронизируй папку или вынеси её на общий диск.

Способ 2: поднять pypiserver

pip install pypiserver
pypi-server -p 8080 /path/to/packages


Теперь можно указать в pip.conf:

[global]
index-url = http://IP_СЕРВЕРА:8080/simple


Так ты избегаешь зависания при отключении от PyPI и получаешь повторно используемые пакеты.

Docker Registry локально

Если в команде все собирают одинаковые образы, локальный реестр — маст-хэв.

Запуск:

docker run -d -p 5000:5000 --restart=always --name registry registry:2


Теперь пушим образы так:

docker tag my-image localhost:5000/my-image
docker push localhost:5000/my-image


И на других машинах:

docker pull localhost:5000/my-image


N.A. ℹ️ Help
Подробнее
]]>
https://linkbaza.com/catalog/-1001898919043 Wed, 23 Jul 2025 14:25:36 +0300
WireGuard без лишнего: точка-точка VPN за 5 минут

WireGuard — один из самых простых и быстрых способов поднять VPN.

Особенно, если нужен канал между двумя точками: сервер ↔ клиент, без роутинга сетей и лишних параметров.

Базовая схема
⏺VPS с белым IP (сервер)
⏺Лаптоп/домашний ПК (клиент)

Сервер — 10.0.0.1/24
Клиент — 10.0.0.2/24

Сервер (wg0.conf):

[Interface]
Address = 10.0.0.1/24
PrivateKey = <серверный приватный ключ>
ListenPort = 51820

[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32


Клиент (wg0.conf):

[Interface]
Address = 10.0.0.2/24
PrivateKey = <клиентский приватный ключ>

[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = your-vps-ip:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25


Что можно не указывать:
✅DNS — не нужен, если не используешь этот VPN для выхода в интернет
✅AllowedIPs = 0.0.0.0/0 — тоже не нужен, если трафик не должен идти через туннель
✅Маршруты — WireGuard сам добавит маршрут к 10.0.0.0/24

N.A. ℹ️ Help
Подробнее
]]>