networkadm | Unsorted

Telegram-канал networkadm - Network Admin

12610

Обучающий канал по сетевому и системному администрированию. Сотрудничество: @dad_admin Биржа: https://telega.in/c/networkadm РКН: https://bit.ly/4ioc61C

Subscribe to a channel

Network Admin

Как организовать mesh-сеть на базе batman-adv и других Linux-протоколов

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

Они востребованы в IoT, удалённых офисах и местах с ограниченной инфраструктурой.

Что такое batman-adv?

batman-adv (Better Approach To Mobile Adhoc Networking — advanced) — это протокол маршрутизации на уровне канального слоя (L2), встроенный в ядро Linux. 


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

Главные преимущества batman-adv:
Прозрачная для верхних уровней сети — узлы видят mesh как единый логический Ethernet.
Самостоятельное обновление маршрутов при изменениях топологии.
Поддержка множества интерфейсов (Wi-Fi, Ethernet).

Основные шаги по настройке batman-adv

Подготовка интерфейсов

У каждого узла должна быть физическая сеть (обычно Wi-Fi или Ethernet), которую batman-adv обернёт в виртуальный интерфейс mesh.

ip link set wlan0 down
iw dev wlan0 set type adhoc
ip link set wlan0 up
iw dev wlan0 ibss join mesh-network 2412


Здесь создаётся IBSS (adhoc) режим с SSID mesh-network и частотой 2412 МГц.

Подключение batman-adv

modprobe batman-adv
ip link add bat0 type batadv
ip link set wlan0 master bat0
ip link set bat0 up


bat0 — виртуальный интерфейс mesh.

Настройка IP

Теперь назначьте IP адрес на bat0, он будет использоваться для общения внутри mesh.

ip addr add 192.168.50.1/24 dev bat0


Повторить на всех узлах

Каждый узел получает свой уникальный IP в той же подсети.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Летний лагерь по Ansible 📚

Мы научим вас работать с Ansible, чтобы вы смогли настроить автоматизацию, упростить командную работу, масштабировать в одно касание и экономить время.

Это не просто курс, а интерактивный летний лагерь. В нем вас ждет не только освоение Ansible, но и:

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

Доп. бонус к программе: мощный технический воркшоп «Использование ИИ в работе» с экспертом 🎁

Запускаем только один поток обучения в подобном формате. Старт 21 июля.
Успевайте! Все подробности тут ⬅️

Читать полностью…

Network Admin

L3 Anycast на базе Linux: отказоустойчивость и load-balancing без оборудования

Anycast — это метод маршрутизации, при котором один и тот же IP-адрес назначается на несколько узлов, и запросы от клиентов приходят к ближайшему (по маршрутам) экземпляру.

Используется в:
• DNS-серверах (Cloudflare, Google DNS)
• CDN
• отказоустойчивых API и ingress точках

Всё это можно реализовать на обычных Linux-серверах, если есть доступ к BGP или OSPF.

Как это работает
1️⃣Несколько серверов имеют одинаковый IP на loopback-интерфейсе
2️⃣С этого интерфейса идёт ответ — как будто IP “реально” принадлежит узлу
3️⃣Соседнее оборудование (роутеры) определяет ближайший путь до IP
4️⃣При падении узла маршрут до него пропадает — запросы идут к другим

Настройка Anycast с BGP + Linux

Настраиваем loopback-интерфейс:

ip addr add 203.0.113.100/32 dev lo
ip link set dev lo up


(Важный момент: маска /32 — чтобы Linux не пытался маршрутизировать через неё)

Устанавливаем FRR или BIRD (пример с FRR):

sudo apt install frr


Настройка FRR (например, BGP-сессия с провайдером или маршрутизатором):

vtysh

# Пример:
conf t
router bgp 65001
bgp router-id 1.1.1.1
neighbor 10.0.0.1 remote-as 65000
!
address-family ipv4 unicast
network 203.0.113.100/32
exit-address-family
exit


N.A. ℹ️ Help

Читать полностью…

Network Admin

VLAN через Wi-Fi: возможно ли и стоит ли

Использование VLAN поверх Wi-Fi кажется логичным — если на кабеле работает, почему бы не на радиоканале? 


Но в реальности всё сложнее: не все драйверы, прошивки и точки доступа это поддерживают, а настройки могут вести к нестабильной работе сети.

Теория

802.1Q (VLAN tagging) был изначально разработан для Ethernet. В беспроводных сетях он не предусмотрен напрямую: Wi-Fi кадры не содержат поля VLAN. Вместо этого используется одна из двух схем:
Multiple SSID + VLAN mapping — каждую VLAN привязываем к отдельному SSID. Это работает стабильно, широко поддерживается и является лучшей практикой.
802.1Q tagging на клиенте — клиент формирует трафик с VLAN-тегами сам, как на Ethernet. Это редко нужно и нестабильно.

На стороне точки доступа

Большинство бизнес-уровня точек (UniFi, MikroTik, Aruba, Cisco) умеют:
• Создавать несколько SSID (до 4–8)
• Назначать каждому SSID VLAN ID
• Прокидывать теги на uplink-порт

Это транк-сценарий, и он хорошо работает с коммутаторами.

На стороне клиента

Работа с VLAN на клиенте через Wi-Fi — почти всегда ненадёжна.
Linux: можно создать VLAN-интерфейс поверх wlan0 — ip link add link wlan0 name wlan0.10 type vlan id 10, но это не работает с большинством драйверов, особенно iwlwifi.
Windows/macOS: официально не поддерживают VLAN поверх Wi-Fi вообще.
Android/iOS: не поддерживают.

Причина — аппаратная и программная реализация Wi-Fi стеков не рассчитана на VLAN’ы.

Альтернатива

Если нужно VLAN-поддержка на уровне клиента:
• Используй Ethernet-адаптер через USB или док-станцию.
• Если обязательно Wi-Fi — настрой VLAN на точке доступа, а клиент пусть подключается по SSID (VLAN mapping).

WPA2 и VLAN

В целом, WPA2 нормально работает с VLAN-ами через SSID mapping — каждый SSID получает своё шифрование, отдельную сессию и ключи. Главное — не пытаться тянуть теги внутри радиотрафика вручную.

N.A. ℹ️ Help

Читать полностью…

Network Admin

🚀 Станьте C++ разработчиком и откройте для себя новые возможности в IT.

Актуальное обучение от OTUS — это ваш старт в масштабную разработку на современном подмножестве C++!

👨‍💻 На курсе вы освоите все ключевые аспекты разработки на C++от основ синтаксиса до идиом и паттернов языка, продвинутой многопоточности и работы с базами данных Мы подготовим вас для работы с высоконагруженными приложениями, IoT-устройствами и сложными проектами.

⚡️ Изучите C++ с нуля и пройдите два этапа обучения: от Junior до Middle Developer. Реальные кейсы, лучшие практики и советы экспертов помогут вам освоить язык и уверенно претендовать на востребованные позиции.

❗️ Запись на курс закрывается! Оставьте заявку и получите скидку на обучение по промокоду CPPspec_6: https://otus.pw/aqGL/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Network Admin

❓Стек сетевых протоколов кажется лабиринтом, а при первой проблеме вы теряетесь в утилитах?

👉 На открытом вебинаре «Стек сетевых протоколов и с чем его едят. На примере TCP/IP.» 2 июля в 20:00 МСК мы разберём:

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

⭐️ Урок проходит в преддверии старта курса «Network engineer. Basic».

👉 Регистрируйтесь для участия: https://otus.pw/lUpHu/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Network Admin

Настройка DHCP Snooping и Dynamic ARP Inspection на Cisco

DHCP Snooping и Dynamic ARP Inspection (DAI) — это функции безопасности, которые защищают вашу сеть от атак, таких как подмена DHCP-сервера и Man-in-The-Middle атаки.

Кратко о том, что используем:

DHCP Snooping защищает от подмены DHCP-сервера, разрешая только доверенным портам передавать DHCP-ответы.
DAI предотвращает атаки, где злоумышленник подделывает ARP-запросы и может перенаправлять трафик через своё устройство.

Настройка DHCP Snooping и DAI:

1️⃣Настройка интерфейсов с ограничением скорости пакетов: Устанавливаем лимиты пакетов для недоверенных интерфейсов:

AccSwitch#conf t
AccSwitch(config)#int ra gi1/0/1-46
AccSwitch(config-if-range)#ip dhcp snooping limit rate 15
AccSwitch(config-if-range)#ip arp inspection limit rate 100


2️⃣ Настройка доверенных интерфейсов:
Указываем интерфейсы, которые будут доверенными, например, порты, подключенные к маршрутизатору или DHCP серверу:

AccSwitch(config)#int ra gi1/0/47-48
AccSwitch(config-if-range)#ip dhcp snooping trust
AccSwitch(config-if-range)#ip arp inspection trust


3️⃣ Включаем DHCP Snooping для VLAN:
Включаем функцию DHCP Snooping и задаем VLAN для мониторинга:

AccSwitch(config)#ip dhcp snooping
AccSwitch(config)#ip dhcp snooping vlan 200
AccSwitch(config)#no ip dhcp snooping information option


4️⃣ Настройка ARP Access List для статических IP:
Для устройств с статическими IP необходимо создать ARP списки доступа:

AccSwitch(config)# arp access-list DAI
AccSwitch(config-arp-nacl)# permit ip host 192.168.200.25 mac host 0017.6111.a309


5️⃣ Настройка Source Guard для привязки устройства к порту:
Чтобы гарантировать, что только определённое устройство может работать на конкретном порту:

AccSwitch(config)#ip source binding 0017.6111.a309 vlan 200 192.168.200.14 interface Gi1/0/5


6️⃣ Проверка исходных запросов на недоверенных интерфейсах: Включаем проверку источника на портах с недоверенными устройствами:

AccSwitch(config)#ip verify source


7️⃣ Включение ARP Inspection после заполнения таблицы: После того как таблица DHCP Snooping будет заполнена (приблизительно через 1-2 дня), включаем ARP Inspection:

AccSwitch(config)#ip arp inspection vlan 200


N.A. ℹ️ Help

Читать полностью…

Network Admin

Используем ipset для управления большими списками IP

В Linux iptables — стандарт для фильтрации трафика. Но когда нужно работать с очень большими списками IP (например, блокировать тысячи адресов), простое добавление правил в iptables становится неэффективным: таблицы растут, производительность падает, администрирование усложняется.

Решение — ipset: это специальный механизм ядра Linux для хранения наборов IP-адресов, сетей, портов и прочих объектов. iptables может ссылаться на ipset, и проверка происходит на уровне ядра очень быстро.

Создаём ipset для хранения IP-адресов

ipset create blacklist hash:ip hashsize 4096


• blacklist — имя набора.
• hash:ip — тип набора (хэш-таблица для IP).
• hashsize — размер хэш-таблицы (лучше сделать больше, если много IP).

Добавляем IP в набор

ipset add blacklist 203.0.113.10
ipset add blacklist 198.51.100.0/24


Можно добавлять как отдельные IP, так и сети.

Интегрируем ipset с iptables

Добавляем правило, которое блокирует весь трафик с IP из набора blacklist:

iptables -I INPUT -m set --match-set blacklist src -j DROP


Проверяем содержимое набора

ipset list blacklist


Выведет все IP, которые в наборе.

5. Удаляем IP из набора


ipset del blacklist 203.0.113.10


Изменения происходят без необходимости трогать iptables.

6. Сохраняем и восстанавливаем наборы ipset


Для сохранения:

ipset save > /etc/ipset.conf


Для восстановления (например, при загрузке системы):

ipset restore < /etc/ipset.conf


Расширенные возможности
Типы наборов:
 hash:net, hash:ip,port, bitmap:ip, list:set (вложенные наборы) и др.
Использование с nftables:
 ipset можно использовать и там
Динамическое обновление списков:
 можно писать скрипты, которые регулярно подтягивают списки IP из внешних источников и обновляют ipset.
Списки с TTL:
 можно создавать наборы с временем жизни IP.

Пример: блокировка спам-ботов из внешнего списка

Получаем список IP из внешнего файла:

wget -O spamlist.txt https://example.com/spam-ips.txt


Очистим старый набор и создадим новый:

ipset destroy blacklist
ipset create blacklist hash:ip hashsize 4096


Загружаем IP из файла:

for ip in $(cat spamlist.txt); do
ipset add blacklist $ip
done


Правило в iptables (если ещё не добавлено):

iptables -I INPUT -m set --match-set blacklist src -j DROP


N.A. ℹ️ Help

Читать полностью…

Network Admin

Что происходит при ping 127.0.0.1: путь ICMP-пакета в loopback

ping 127.0.0.1 кажется банальной вещью, но под капотом — полноценный сетевой стек. Вот что происходит по шагам:

Сначала утилита ping создает RAW-сокет и формирует ICMP Echo Request. Пакет получает IP-адрес источника 127.0.0.1 и тот же адрес в качестве получателя.


Пакет проходит через iptables/netfilter и может быть отброшен или модифицирован (например, логгирован или помечен). Если политика DROP — ICMP даже на localhost не дойдет.

Ядро направляет пакет в loopback-интерфейс lo, где он сразу попадает обратно в приемный путь — физически никуда не выходит.

Приемный стек получает ICMP Echo Request и отправляет в ответ Echo Reply — снова через loopback.

Утилита ping ловит Echo Reply и выводит строку с временем RTT, даже если интерфейс lo отключен — это чисто внутренняя маршрутизация.


Как можно сломать

Отключен интерфейс lo: ifconfig lo down — ping не будет работать, хотя кажется, что это локальный вызов.

ICMP фильтруется iptables -A INPUT -p icmp -j DROP — даже пинг 127.0.0.1 будет теряться.

Сломана маршрутизация: удалена запись 127.0.0.0/8 dev lo — пакеты просто не найдут путь.


Полезные команды для диагностики

ip route get 127.0.0.1 — какая таблица маршрутов применяется
iptables -L -v -n — проверка, не режется ли ICMP
tcpdump -i lo icmp — убедиться, что пакеты доходят
ss -npi — посмотреть, что происходит с сокетом

N.A. ℹ️ Help

Читать полностью…

Network Admin

ICMP redirects и безопасность: что они делают и почему их стоит отключить

ICMP Redirect — это механизм, при котором маршрутизатор может сообщить хосту, что есть более короткий маршрут до назначения через другой шлюз.

Казалось бы — удобно. Но на практике чаще всего это:


• Лишнее изменение маршрутов без контроля
• Потенциальная уязвимость (перехват трафика, MITM)
• Источник багов и неожиданного поведения сетевых приложений

Пример: Хост отправляет пакеты на шлюз A, а тот видит, что правильнее идти через B. A посылает ICMP Redirect, и хост меняет маршрут — в обход системной таблицы.

Как отключить ICMP Redirect в Linux:

# Отключить приём и отправку redirect'ов:
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.default.accept_redirects=0
sysctl -w net.ipv4.conf.default.send_redirects=0


Постоянно (в /etc/sysctl.conf или отдельном файле в /etc/sysctl.d/):

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0


N.A. ℹ️ Help

Читать полностью…

Network Admin

Прозрачный прокси без редиректов: как работает TPROXY и policy routing

Когда хочется завернуть весь трафик через локальный прокси — но без изменения приложений и без NAT’а, обычный iptables REDIRECT не подходит: он меняет адрес назначения, и приложение (например, mitmproxy, squid) теряет оригинальный IP и порт.

Для полноценной прозрачной проксизации с сохранением IP-адресов нужна связка:
• iptables mangle + TPROXY
• ip rule + policy routing
• SO_MARK и SO_BINDTODEVICE — чтобы приложение могло принимать такой трафик

Зачем вообще TPROXY

Классические REDIRECT’ы:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080


Приложение видит источник, но теряет оригинальный адрес назначения.

А с TPROXY:

iptables -t mangle -A PREROUTING -p tcp --dport 80 \
-j TPROXY --on-port 8080 --tproxy-mark 1


Пакет остаётся направленным на свой IP/порт, и сокет может принять его как будто он “не к нему”.

Пример настройки: проксируем весь HTTP трафик

Допустим, у вас локальный HTTP-прокси на 127.0.0.1:8080.

1️⃣Включаем маршрутизацию

sysctl -w net.ipv4.ip_forward=1


2️⃣Создаём таблицу маршрутов

Добавим таблицу:

echo "100 tproxy" >> /etc/iproute2/rt_tables


И маршрут:

ip route add local 0.0.0.0/0 dev lo table tproxy


3️⃣Добавим policy rule для mark’а

ip rule add fwmark 1 lookup tproxy


4️⃣IPTables: перенаправляем трафик на TPROXY

iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT

iptables -t mangle -A PREROUTING -p tcp --dport 80 \
-j TPROXY --on-port 8080 --tproxy-mark 1


5️⃣Прокси-сервер

Важно, чтобы ваше приложение:
• работало на SO_REUSEADDR, IP_TRANSPARENT
• было привязано к 0.0.0.0 (или нужному интерфейсу)
• имело CAP_NET_ADMIN и CAP_NET_RAW

Например, запуск mitmproxy:

setcap cap_net_bind_service,cap_net_admin=eip $(which mitmproxy)


или через systemd:

[Service]
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE


Проверка

Запустите любое приложение без настройки прокси — оно будет направляться через mitmproxy, а тот будет видеть оригинальные адреса получателей. Это важно для логов, блокировок и трассировки.

N.A. ℹ️ Help

Читать полностью…

Network Admin

SLAAC + RDNSS — автоматическая настройка IPv6 и DNS без DHCP

IPv6 позволяет полностью обойтись без DHCP-сервера — благодаря механизму SLAAC (Stateless Address Autoconfiguration).

Роутер рассылает объявления (Router Advertisement, RA) с сетевым префиксом, а устройства сами на его основе формируют свои IPv6-адреса. 


Это упрощает настройку и уменьшает количество сервисов в сети.

Но как клиенту узнать, куда отправлять DNS-запросы?

Для этого существует расширение RA — опция RDNSS (Recursive DNS Server Option).

Она позволяет в том же RA указать адреса DNS-серверов, которые клиенты будут использовать для разрешения имён. 


Таким образом, IP-адрес и DNS-серверы передаются одновременно и без дополнительного DHCPv6.

Особенности и преимущества:
Клиенты получают IP и DNS без лишних сервисов и протоколов.
Поддерживается большинством Linux-дистрибутивов, Android, macOS и некоторыми IoT-устройствами.
Windows пока не поддерживает RDNSS, там нужен DHCPv6.
Отличное решение для лёгких сетей, IoT, mesh-сетей и быстро меняющихся окружений.

Это простой и элегантный способ сделать сеть автономной и менее зависимой от сложных конфигураций.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Ethernet OAM: Инструменты управления сетью

Что такое Ethernet OAM?
Ethernet Operations, Administration, and Maintenance (OAM) — это набор механизмов, позволяющих отслеживать состояние сети, управлять соединениями и устранять неисправности. Ethernet OAM используется провайдерами и корпоративными сетями для обеспечения стабильности и высокого качества связи.

Типы OAM в Ethernet-сетях
1️⃣Link OAM (IEEE 802.3ah):
• Отслеживает состояние физического канала связи между двумя устройствами.
• Помогает обнаруживать разрывы, деградацию линка и другие аппаратные проблемы.
2️⃣ Service OAM (IEEE 802.1ag, ITU-T Y.1731):
• Управляет соединениями на уровне сервисов.
• Обеспечивает мониторинг целостности, производительности и диагностику проблем на уровне сети.

Функции Ethernet OAM

Loopback: Удаленный узел отправляет ответ на тестовые пакеты, позволяя проверить доступность соединения.
Continuity Check Messages (CCM): Периодические пакеты, проверяющие целостность связи между двумя точками.
Performance Monitoring: Измеряет параметры качества сервиса (например, задержку, потерю пакетов, вариацию задержки).
Fault Management: Выявляет и сигнализирует об ошибках в сети.
Link Monitoring: Проверяет физическое состояние соединений (например, уровень сигнала или ошибки в кадрах).

Использование Service OAM

Допустим, клиент провайдера жалуется на низкую скорость соединения. С помощью OAM:
• Провайдер запускает тесты CCM, чтобы проверить доступность сети.
• Использует Delay Measurement для проверки задержки между узлами.
• Анализирует отчеты о потерях пакетов для выявления проблемных участков.

Результат: быстрое устранение проблемы с минимальным воздействием на других пользователей.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Группы номеров портов

Разработка стандартов адресации, включая нумерацию портов, осуществляется Администрацией адресного пространства Интернета (IANA).

Порты идентифицируются 16-битными числами, что дает диапазон от 0 до 65535. IANA разделила эти порты на три группы:

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

2️⃣ Зарегистрированные порты (1024–49151):
Эти номера присваиваются IANA для конкретных приложений или процессов. Например, порт 1812 зарегистрирован за Cisco для использования с RADIUS-сервером.

3️⃣ Частные и динамические порты (49152–65535):
Также известные как временные порты, они назначаются клиентской ОС динамически при инициировании подключения к сервису. Эти порты используются для идентификации клиентского приложения во время обмена данными.

Общеизвестные порты и их приложения

• 20 TCP: Протокол передачи файлов (FTP) - Передача данных
• 21 TCP: Протокол передачи файлов (FTP) - Управление передачей
• 22 TCP: Secure Shell (SSH)
• 23 TCP: Telnet
• 25 TCP: Простой протокол передачи почты (SMTP)
• 53 UDP, TCP: Служба доменных имен (DNS)
• 67 UDP: Dynamic Host Configuration Protocol (DHCP) - Сервер
• 68 UDP: DHCP - Клиент
• 69 UDP: Простейший протокол передачи файлов (TFTP)
• 80 TCP: Протокол передачи гипертекста (HTTP)
• 110 TCP: Протокол почтового отделения (POP3)
• 143 TCP: Протокол доступа к сообщениям Интернета (IMAP)
• 161 UDP: Простой протокол управления сетью (SNMP)
• 443 TCP: Защищенный протокол передачи гипертекста (HTTPS)

⚡️Некоторые приложения используют как TCP, так и UDP, например, DNS. Для полного списка номеров портов и их приложений можно обратиться на веб-сайт IANA.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Скрытая маршрутизация через lo: зачем отправлять трафик в себя

Интерфейс lo (loopback) — это не только 127.0.0.1 и localhost. 


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

Зачем вообще направлять трафик в lo?
• Тестировать поведение роутинга без выхода в сеть
• Маскировать сервисы: они слушают lo, а доступ к ним — через DNAT
• Использовать как «черную дыру» с возможностью логирования
• Делать локальный hairpin NAT для контейнеров и VM
• Собирать трафик для анализа, не выпуская его наружу

Маршрут через lo, но не в 127.0.0.1

Допустим, у нас есть внутренний IP: 10.10.10.10, который нигде не настроен на интерфейсе. Добавим маршрут:

ip route add 10.10.10.10 dev lo


Теперь любой пакет к 10.10.10.10 пойдёт в loopback. Если вы запустите сервер, слушающий этот IP, он будет получать такие пакеты:

ip addr add 10.10.10.10/32 dev lo
nc -l 10.10.10.10 1234


DNAT + lo = локальный сервис, доступный извне

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 \
-j DNAT --to-destination 10.10.10.10:1234


Приложение всё ещё слушает lo:1234, но доступно на внешнем порту eth0:8080.

Blackhole с логами

Вместо ip route add blackhole — направим всё на lo и логируем:

ip route add 198.51.100.0/24 dev lo
iptables -A INPUT -d 198.51.100.0/24 -j LOG --log-prefix "lo-drop: "
iptables -A INPUT -d 198.51.100.0/24 -j DROP


Обработка трафика через lo + NFQUEUE

Нужен перехват в userspace? Пропустим пакеты через lo, даже если они не для 127.0.0.1:

ip route add 172.16.99.99 dev lo
iptables -A INPUT -d 172.16.99.99 -j NFQUEUE --queue-num 0


Теперь можно обрабатывать их в своём скрипте через nfqueue.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Локальный DNS-кеш и зеркала пакетов: быстрая настройка и практика

Начнём с простого — настройка локального кеширующего DNS-сервера на базе dnsmasq. Он лёгкий и быстро настраивается.

Устанавливаем dnsmasq (пример для Debian/Ubuntu):

sudo apt update
sudo apt install dnsmasq


Настраиваем кеширование в /etc/dnsmasq.conf. Для начала можно оставить стандартные параметры, но важно задать upstream DNS-серверы (например, Google DNS):

server=8.8.8.8
server=8.8.4.4
cache-size=1000


Запускаем и проверяем статус:

sudo systemctl restart dnsmasq
sudo systemctl status dnsmasq


Настраиваем клиентов использовать ваш сервер с dnsmasq как основной DNS (например, указываем IP локального сервера в настройках DHCP).

Пример зеркала apt с apt-cacher-ng:

Устанавливаем:

sudo apt install apt-cacher-ng


По умолчанию он слушает порт 3142. Настроим клиентов:

В файле /etc/apt/apt.conf.d/01proxy на клиенте пишем:

Acquire::http::Proxy "http://<IP_сервера>:3142";


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

Зеркало Docker registry:

Для ускорения загрузки образов внутри сети удобно поднять локальный прокси реестр — например, используя registry:2 и docker registry mirror.

Запускаем registry mirror:

docker run -d -p 5000:5000 --restart=always --name registry-mirror \
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
registry:2


В настройках Docker-клиента указываем mirror:

{
"registry-mirrors": ["http://<IP_сервера>:5000"]
}


Теперь образы кешируются локально, экономя трафик.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Быстрый DNS внутри сети: зачем нужен локальный кеш и как он помогает

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

Это увеличивает время ожидания и нагрузку на сеть.


Распределённое кеширование DNS позволяет уменьшить эти задержки, локализуя ответы на DNS-запросы внутри разных сегментов сети.

Кеширующие DNS-серверы, расположенные ближе к конечным пользователям, сохраняют популярные записи и быстро отвечают на повторные запросы.

Преимущества распределённого DNS-кеша:

• Уменьшение времени отклика при резолвинге имен.
• Снижение нагрузки на внешние каналы связи и первичные DNS-серверы.
• Повышение отказоустойчивости — при проблемах с основным DNS, кеш способен обслуживать запросы.

Для реализации можно использовать dnsmasq или unbound, которые легко конфигурируются и позволяют задавать правила кэширования, ограничивать время жизни записей (TTL) и фильтровать запросы.


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

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

N.A. ℹ️ Help

Читать полностью…

Network Admin

Использование BPF/XDP для фильтрации и обработки пакетов на уровне ядра

eBPF (Extended Berkeley Packet Filter) — мощный механизм в Linux, позволяющий запускать пользовательский код прямо в ядре.

XDP (eXpress Data Path) — это технология на базе eBPF, которая даёт возможность перехватывать и обрабатывать сетевые пакеты максимально рано — ещё на этапе драйвера сетевой карты, обеспечивая минимальную задержку.

Что даёт eBPF/XDP?
Фильтрация и блокировка пакетов с высокой производительностью, без перехода в пространство пользователя
Возможность создавать сложные алгоритмы обработки пакетов (например, DDoS mitigation, load balancing)
Сбор статистики и мониторинг сетевого трафика без значительной нагрузки

1️⃣ Проверяем поддержку ядром:

uname -r  
grep CONFIG_BPF /boot/config-$(uname -r)


Нужны опции CONFIG_BPF=y и CONFIG_XDP_SOCKETS=y (в идеале).

2️⃣ Устанавливаем инструменты:

sudo apt install clang llvm libbpfcc-dev linux-headers-$(uname -r)  


3️⃣ Пишем простой eBPF-программу на C для XDP (например, фильтрация пакетов по IP):

#include <linux/bpf.h>  
#include <bpf/bpf_helpers.h>

SEC("xdp")
int xdp_prog_simple(struct xdp_md *ctx) {
// Логика фильтрации, например, блокируем пакеты с определённым IP
// Возвращаем XDP_DROP или XDP_PASS
return XDP_PASS;
}

char _license[] SEC("license") = "GPL";


4️⃣ Компилируем и загружаем программу с помощью ip или утилит из пакета bpftool.

Пример запуска и проверки:

sudo ip link set dev eth0 xdp obj xdp_prog_simple.o sec xdp  
sudo bpftool net show


N.A. ℹ️ Help

Читать полностью…

Network Admin

Диагностика нестабильного BGP: flap dampening, дебаг и симуляция через ExaBGP

BGP-сессия держится, но маршруты “прыгают” — то есть появляются, исчезают, снова появляются. Такое называют route flapping.

Причины:
– нестабильный апстрим
– неправильная redistrib
– ошибки конфигурации
– нестабильный маршрут через динамику IGP под BGP

1️⃣Проверяем статус соседства

vtysh -c "show ip bgp summary"


— Счётчики “PfxRcd” и “Up/Down” подсказывают: есть ли frequent resets.

2️⃣ Flap dampening: отключено по умолчанию, но может помочь

Dampening — это механизм подавления “шумных” маршрутов.

Пример в FRRouting:

router bgp 65001
bgp dampening 15 750 2000 30


Здесь:
• полное подавление на 30 мин
• маршрут считается флапающим при 750 penalty
• decay каждые 15 сек до 2000

3️⃣ Подробный дебаг

debug bgp updates
debug bgp neighbor-events


— Можно увидеть, кто отсылает withdraws и какие маршруты именно флапают.

Не забудьте отключать:

undebug all


4️⃣ Симуляция поведения с ExaBGP

Если хотите локально проверить, как сосед реагирует на флап — используйте ExaBGP:

announce route 192.0.2.1/32 next-hop 10.0.0.1
withdraw route 192.0.2.1/32 next-hop 10.0.0.1


Через cron или loop можно повторять с паузами и отслеживать реакцию BGP-пира.

5️⃣ Где искать root cause
• Нестабильный маршрут в IGP? → traceroute и ping с мониторингом
• Проблема на пограничном оборудовании? → SNMP, show interfaces, dmesg
• Баги в прошивке или переполнения RIB? → show bgp memory, show bgp с фильтрами

N.A. ℹ️ Help

Читать полностью…

Network Admin

Split-horizon DNS: одна зона, разные ответы

Пример: api.example.com
• во внутренней сети → 10.0.0.10
• извне через интернет → 195.13.24.52

Применяется:
— в DMZ и корпоративных VPN
— в Kubernetes, когда нужен ingress снаружи и кластерный IP внутри
— в локальных тестовых сетях, чтобы не гонять трафик наружу

Вариант 1: dnsmasq с разными адресами для одной зоны

# /etc/dnsmasq.conf
interface=eth0
local=/example.com/
address=/api.example.com/10.0.0.10

interface=eth1
address=/api.example.com/195.13.24.52


eth0 — внутренняя сеть, eth1 — внешняя

Вариант 2: bind9 с view

# /etc/bind/named.conf

acl "internal" {
10.0.0.0/8;
192.168.0.0/16;
};

view "internal" {
match-clients { internal; };
zone "example.com" {
type master;
file "/etc/bind/zones/internal.zone";
};
};

view "external" {
match-clients { any; };
zone "example.com" {
type master;
file "/etc/bind/zones/external.zone";
};
};


Создаём два файла зоны с разными A-записями для одного имени.

Проверяем

dig @127.0.0.1 api.example.com


Тестируем с разных IP, смотрим, какой ответ вернётся.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Минимальное PXE-развёртывание Linux без Ansible и Kickstart

Когда нужно развернуть десятки машин в изолированной сети, но без тяжёлых систем — можно обойтись одним HTTP-сервером и iPXE.

Что потребуется:

– DHCP-сервер с опцией загрузки iPXE
– HTTP-сервер (nginx или простой python3 -m http.server)
– initrd, kernel и preseed.cfg

iPXE: запуск через BIOS/UEFI

DHCP-сервер (например, dnsmasq) должен выдавать клиентам undionly.kpxe или ipxe.efi в зависимости от режима загрузки.

# Пример для dnsmasq
dhcp-boot=undionly.kpxe
enable-tftp
tftp-root=/srv/tftp


HTTP-меню iPXE

Создаём boot.ipxe:

#!ipxe
kernel http://192.168.0.1/boot/vmlinuz
initrd http://192.168.0.1/boot/initrd.gz
imgargs vmlinuz auto=true priority=critical preseed/url=http://192.168.0.1/preseed.cfg
boot


Preseed

Создаём preseed.cfg, чтобы всё происходило без ввода руками:

d-i debian-installer/locale string en_US
d-i netcfg/get_hostname string host-auto
d-i partman-auto/method string lvm
d-i passwd/root-password password toor
d-i passwd/root-password-again password toor
d-i pkgsel/include string openssh-server


Можно тонко настроить — от разделов до запуска postinst-скриптов.

Структура HTTP-сервера

/var/www/html/
├── boot/
│ ├── vmlinuz
│ └── initrd.gz
├── preseed.cfg
└── boot.ipxe


N.A. ℹ️ Help

Читать полностью…

Network Admin

🖥 Станьте профессионалом в администрировании Windows с OTUS!

Хотите уверенно управлять инфраструктурой на базе Windows, автоматизировать рутинные задачи и повышать безопасность?

🔥Курс «Администратор Windows» поможет системным администраторам освоить на профессиональном уровне работу с Windows Server, Active Directory, PowerShell и многим другим.

Что вас ждёт:

▪️Глубокое понимание архитектуры Windows и Active Directory, включая настройку DNS, DHCP и групповых политик.

▪️Освоение PowerShell для автоматизации задач и управления инфраструктурой.

▪️Навыки настройки и управления средствами безопасности Windows, включая Windows Defender и брандмауэр.

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

❗️Не пропустите:

В группу обучения набирается ограниченное количество мест. Оставьте заявку прямо сейчас и успейте занять место в группе по спеццене. Предварительно ознакомьтесь с программой курса.

👉Оставить заявку https://otus.pw/DHfb/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Network Admin

🎥 Приглашаем на вебинар: Как учиться Linux: пошаговый план для будущего администратора

Вы узнаете:
— Как устроена типичная траектория освоения Linux для администратора
— Какие навыки нужно освоить в первую очередь, а что может подождать
— Где и как практиковаться, чтобы получить реальные навыки
— Какие инструменты, подходы и привычки помогают быстрее разобраться в системе

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

Этот урок проходит в преддверии старта курса «Administrator Linux. Basic». На курсе вас ждет: плавное погружение в Bash, настройка Nginx/Apache, Docker, MySQL, системы мониторинга Grafana и Prometheus.

👉 Успейте занять своё место: https://otus.pw/fErT/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Network Admin

🔄 Обновления Windows: что должен знать администратор?

🔥 23 июня в 20:00 мск приглашаем на бесплатный вебинар «Обновления Windows: что должен знать администратор?»


Управление обновлениями — это не только про загрузку новых версий, но и про стабильность инфраструктуры.

Что вас ждёт:


– как устроен механизм обновлений в Windows 10/11 и Server,
– какие средства Windows можно использовать для настройки обновлений,
– как тестировать и откладывать обновления в корпоративной среде,
– какие риски возникают после обновлений и как их минимизировать.

📌 Убедитесь, что обновления работают на пользу инфраструктуре, а не наоборот.

👉 Регистрируйтесь по ссылке: https://otus.pw/uiyy/

Занятие приурочено к старту курса «Администратор Windows», где вы получите полные знания для управления инфраструктурой, настройкой обновлений и повышением безопасности рабочих станций и серверов.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Network Admin

Микросервисы и VIP: как реализовать HA с использованием ipvs

Когда вам нужно распределение трафика, отказоустойчивость и стабильный VIP (Virtual IP) — не обязательно тянуть полноценный балансировщик вроде HAProxy или Keepalived.

Можно использовать встроенный в ядро Linux IPVS (IP Virtual Server) — мощный L4-балансировщик.

Работает в ядре, настраивается через ipvsadm или ipvsctl, и подходит для lightweight-сценариев с микросервисами или edge-нодами.


Представим, у нас есть 3 бэкенда (на localhost:8001, 8002, 8003) и мы хотим выдать один VIP на 10.10.10.100:80, который будет балансировать между ними.

Включаем ipvs-модуль и ip forwarding

modprobe ip_vs_rr
sysctl -w net.ipv4.ip_forward=1


Добавляем виртуальный IP

ip addr add 10.10.10.100/32 dev lo


Важно: lo — чтобы VIP считался локальным, но не анонсировался.

Создаём IPVS-службу

ipvsadm -A -t 10.10.10.100:80 -s rr


• -A — добавить сервис
• -t — TCP
• -s rr — алгоритм Round-Robin (можно lc, dh, wlc и т.д.)

Добавляем real-серверы

ipvsadm -a -t 10.10.10.100:80 -r 127.0.0.1:8001 -m
ipvsadm -a -t 10.10.10.100:80 -r 127.0.0.1:8002 -m
ipvsadm -a -t 10.10.10.100:80 -r 127.0.0.1:8003 -m


-m — NAT-режим (можно использовать -g — Direct Routing)

Проверяем

ipvsadm -L -n


И отправляем запрос:

curl http://10.10.10.100


Вы будете получать ответы по очереди от всех трёх сервисов.

Дополнительно: Health-check и failover

Для проверки живости бэкендов:
• Используйте keepalived с vrrp_instance и встроенными health-check’ами.
• Или скрипты, которые динамически обновляют ipvsadm на основе мониторинга (через cron или systemd timer).
• Альтернатива — ipvsadm-save и ipvsadm-restore для быстрой смены конфигурации.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Настроим RDNSS в radvd для автоматической раздачи DNS по IPv6

Продолжаем тему SLAAC и RDNSS. Теперь — конкретный пример настройки на Linux-роутере с помощью демона radvd.

1. Установка radvd:

sudo apt install radvd


2. Конфигурация /etc/radvd.conf:

interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
RDNSS 2001:4860:4860::8888 {
AdvRDNSSLifetime 600;
};
};


Здесь 2001:db8:1::/64 — ваш IPv6-префикс.
2001:4860:4860::8888 — адрес публичного DNS Google.
AdvRDNSSLifetime — время жизни (в секундах) объявления DNS.

3. Включаем IPv6-форвардинг (если роутер):

sudo sysctl -w net.ipv6.conf.all.forwarding=1


Для постоянного включения добавьте в /etc/sysctl.conf:

net.ipv6.conf.all.forwarding=1


4. Запускаем или перезапускаем radvd:

sudo systemctl restart radvd


5. Проверяем на клиенте (Linux):

resolvectl status


В выводе вы увидите DNS-сервер 2001:4860:4860::8888, полученный через RDNSS.

Теперь у вас настроена сеть, где IP-адреса и DNS-серверы раздаются клиентам без DHCPv6, только с помощью Router Advertisement.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Нужно выкатить новую фичу, но нет уверенности, что всё пойдет как надо?

А еще…

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

Знакомо? Приглашаем на онлайн-интенсив по Service mesh от Слёрм, на котором вы:

👉 решите реальные бизнес-кейсы;
👉 поймёте принцип работы и в будущем сможете применить знания на любом решении;
👉 научитесь искать причины проблем.

Даты проведения: 27-29 июня.

Спикеры:
– Александр Лукьянченко, руководитель юнита PaaS в Авито
– Виталий Лихачев, SRE в крупном голландском тревелтехе
– Георг Гаал, CTO AEnix

Специальные условия группам от 3-х человек.

👉 Программа и запись на интенсив по ссылке.

Читать полностью…

Network Admin

Как повысить сетевую безопасность облака?

18 июня | 12:00

Приходите на вебинар от Selectel для системных администраторов, сетевых и DevOps- инженеров.

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

Посмотреть программу и зарегистрироваться: https://slc.tl/dty7u

Чтобы не пропустить вебинар и узнавать о других мероприятиях, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events

Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqvE9sjL

Читать полностью…

Network Admin

😒 ZeroDay — всё, что нужно хакеру

— Пентесты Wi-Fi, камер, сайтов
— OSINT и социальная инженерия
— Техники анонимности и обход слежки
— Сливы и разборы реальных утечек
— Инструменты: Metasploit, Nmap, Kali Linux

/channel/+HGYMHDvAef41YTAy

Читать полностью…

Network Admin

🔎 Ищете надёжное оборудование для мониторинга серверных комнат?

✔️ Обратите внимание на устройства NetPing

Компания с 2005 года разрабатывает и производит устройства для мониторинга и удаленного управления энергопитанием серверного оборудования.

🤝 Устройства NetPing будут полезны компаниям, которые используют IT-оборудование, инженерам и системным администраторам, сервисным компаниям и провайдерам, а также компаниям-интеграторам проектов IT-инфраструктуры.

Почему стоит обратить внимание на устройства NetPing?

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

⭐️ NetPing помогает IT-инфраструктуре работать стабильно и безопасно. 💪💻

#удаленноеуправление #серверныекомнаты #ITоборудование #системныеадминистраторы

Читать полностью…
Subscribe to a channel