Network Admin
Обучающий канал по сетевому и системному администрированию. Сотрудничество: @dad_admin Биржа: https://telega.in/c/networkadm РКН: https://bit.ly/4ioc61C
Больше📈 Аналитический обзор Telegram-канала Network Admin
Канал Network Admin (@networkadm) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 12 464 подписчиков, занимая 10 178 место в категории Технологии и приложения и 53 129 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 12 464 подписчиков.
Согласно последним данным от 04 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -36, а за последние 24 часа — -1, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 17.15%. В первые 24 часа после публикации контент обычно набирает 8.06% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 2 137 просмотров. В течение первых суток публикация набирает 1 004 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 13.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как vlan, arp, интерфейс, ping, dhcp.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Обучающий канал по сетевому и системному администрированию.
Сотрудничество: @dad_admin
Биржа: https://telega.in/c/networkadm
РКН: https://bit.ly/4ioc61C”
Благодаря высокой частоте обновлений (последние данные получены 05 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
read() работает так: ядро копирует данные из page cache в буфер в user space.Два адресных пространства, одна лишняя копия на каждый вызов. При больших файлах это накапливается. mmap отображает файл прямо в виртуальное адресное пространство процесса. Никакой копии, процесс читает данные напрямую из page cache через указатель. Первое обращение к странице вызывает page fault, ядро подгружает её с диска, дальше доступ как к обычной памяти.
На больших файлах с последовательным чтением разница заметна: меньше syscall-ов, меньше копирований, меньше переключений контекста.Именно поэтому базы данных, поисковые движки и компиляторы используют mmap для работы с большими структурами данных. Когда mmap медленнее При случайном доступе к очень большому файлу mmap генерирует много мелких page fault-ов. Каждый fault это обращение к ядру, TLB miss, возможно диск. read() с большим буфером читает последовательно и prefetch работает лучше.
На NUMA-системах mmap может давать неожиданные результаты: страницы аллоцируются на одном узле, процесс работает на другом, латентность растёт.⏺При записи mmap требует явного msync() чтобы гарантировать сброс на диск. Легко забыть, данные теряются при падении процесса. Смотрим page fault-ы конкретного процесса:
/usr/bin/time -v ./myprogram 2>&1 | grep "Page faults"
perf stat -e page-faults ./myprogram
N.A.# /etc/systemd/network/vlan10.netdev
[NetDev]
Name=eth0.10
Kind=vlan
[VLAN]
Id=10
# /etc/systemd/network/vlan10.network
[Match]
Name=eth0.10
[Network]
Address=192.168.10.1/24
Gateway=192.168.10.254
VLAN 20 аналогично, меняем Id и адреса.
Привязываем физический интерфейс
Физический интерфейс должен знать что он trunk и какие VLAN на нём живут:
# /etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
VLAN=eth0.10
VLAN=eth0.20
Применяем:
systemctl restart systemd-networkd
Проверка
ip -d link show eth0.10
ip addr show eth0.10
networkctl status eth0.10
networkctl status покажет состояние интерфейса, привязанные адреса и есть ли carrier.
N.A.sysctl net.ipv4.conf.all.accept_redirects
sysctl net.ipv4.conf.all.send_redirects
1 означает включено. Отключаем:
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
echo "net.ipv4.conf.all.accept_redirects=0" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects=0" >> /etc/sysctl.conf
На Cisco роутер по умолчанию отправляет redirects. Отключаем на интерфейсе:
interface Gi0/0 no ip redirects⏺Отдельная история с secure_redirects: Linux по умолчанию принимает redirects только от шлюзов из своей таблицы маршрутизации. Это частичная защита, но не полная: если атакующий находится на том же сегменте что и шлюз, ограничение не помогает.
sysctl net.ipv4.conf.all.secure_redirects
N.A.wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
Конфиг сервера /etc/wireguard/wg0.conf:
[Interface] PrivateKey = <server_private_key> Address = 10.0.0.1/24 ListenPort = 51820 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] PublicKey = <client_public_key> AllowedIPs = 10.0.0.2/32Включаем форвардинг и поднимаем интерфейс:
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
wg-quick up wg0
systemctl enable wg-quick@wg0
Клиент
wg genkey | tee /etc/wireguard/client_private.key | wg pubkey > /etc/wireguard/client_public.key
Конфиг клиента:
[Interface] PrivateKey = <client_private_key> Address = 10.0.0.2/24 DNS = 1.1.1.1 [Peer] PublicKey = <server_public_key> Endpoint = <server_ip>:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
wg-quick up wg0Проверка
wg show
ping 10.0.0.1
curl ifconfig.me
wg show покажет активные peer-ы, последнее рукопожатие и переданный трафик. Если handshake давно не было, туннель не установлен.
N.A.Или часть хопов показывает латентность выше чем финальный хост. Выглядит как проблема, но чаще всего это просто нормальная работа интернета.⏺IP-маршрутизация не гарантирует симметрию. Пакет от тебя до хоста и пакет обратно идут независимо, каждый по своей таблице маршрутизации на каждом хопе. BGP на разных AS выбирает пути по своим политикам, и нет никакого механизма который бы согласовывал прямой и обратный путь. Латентность растёт а потом падает к финальному хопу, это тоже не аномалия. Промежуточные роутеры отвечают на TTL exceeded с низким приоритетом, часто через менее оптимальный интерфейс. Финальный хост отвечает нормально. Цифры на хопах показывают не задержку пути а задержку до конкретного роутера с его стороны. Смотрим путь в обе стороны:
traceroute 8.8.8.8
mtr --report 8.8.8.8
mtr показывает потери и латентность в реальном времени по каждому хопу, намного информативнее одного traceroute.
Когда асимметрия это реальная проблема: stateful firewall или NAT на пути видит только половину сессии. Пакеты в одну сторону проходят, в другую дропаются потому что состояние соединения не было установлено через этот узел.
mtr --report --report-cycles 20 <IP>
Если конкретный хоп показывает стабильные потери только в одну сторону, вот где проблема.
N.A.Если area 0 разваливается на части, OSPF не пересчитывает маршруты в обход, он просто перестаёт видеть часть сети.Два роутера в area 0 потеряли связь между собой. Каждый считает что его кусок backbone и есть вся сеть. Area которые висят за каждым из них становятся недостижимы с другой стороны. Никаких fallback, никакого альтернативного пути если он не был настроен заранее. Смотрим что происходит с соседями и LSA:
show ip ospf neighbor show ip ospf database show ip ospf database summaryЕсли в базе данных пропали LSA от роутеров на другой стороне разрыва, связность потеряна. Маршруты до их сетей исчезнут из таблицы маршрутизации.
show ip route ospfВременное решение пока чинится физика: virtual-link через транзитную area. Натягиваем логический туннель между двумя ABR через area которая ещё жива:
router ospf 1 area 1 virtual-link <router-id соседнего ABR>На обоих ABR с обеих сторон разрыва. Virtual-link восстанавливает связность area 0 поверх transit area. N.A.
➖Вспомним теорию — зачем вообще нужен MPLS и почему его называют «L2.5» ➖L2VPN Martini mode ➖L2VPN Kompella mode🎙 Спикер: Алексей Листаров — инженер с многолетним опытом работы в крупном операторе связи. Сертифицированный преподаватель нашего авторизованного учебного центра Академии Eltex. 🔗 Регистрация Готовьте свои вопросы по конфигурации, будем разбираться вместе! #eltex #eltexcm #webinar #вебинар #esr #mpls #kompella #martini #mode @eltexcm #реклама О рекламодателе
show vlan brief show interfaces trunkЕсли VLANы не созданы или транк не поднят, вот оно. STP выбрал новый коммутатор Root Bridge потому что у него меньший MAC или приоритет не был выставлен. Топология пересчиталась, часть портов ушла в blocking. Хосты за этими портами недоступны.
show spanning-tree show spanning-tree detail | include rootСмотрим кто стал Root и почему. Если новый коммутатор, выставляем приоритет обратно на нужное железо:
spanning-tree vlan 1 priority 4096Старый коммутатор работал с negotiated duplex или speed, новый договорился иначе. Часть портов поднялась в half-duplex, отсюда коллизии и потери.
show interfaces Gi0/1 | include duplexЕсли видим half-duplex там где не должно быть, фиксим явно:
interface Gi0/1 duplex full speed 1000N.A.
Оба держат один виртуальный IP, оба отвечают на ARP-запросы своим MAC.Клиенты в этот момент делятся на два лагеря в зависимости от того чей ARP-ответ пришёл последним. Половина трафика идёт через один роутер, половина через другой. Если маршруты на них разные, часть сессий рвётся, часть работает. Отлаживать это неприятно потому что проблема плавающая и воспроизводится через раз. Смотрим состояние HSRP и кто сейчас Active:
show standby brief show standbyЕсли оба показывают Active, split-brain в действии. Проверяем доступность между роутерами:
ping <IP соседнего роутера> source <интерфейс HSRP>Чаще всего причина не в роутерах а в коммутаторе между ними: упал транк, слетел VLAN, сработал STP. Hello-пакеты не проходят, оба уходят в Active.
show interfaces trunk show spanning-tree vlan <ID>N.A.
Подключил кто-то в офисе домашний роутер к корпоративной сети, или подняли новый DHCP и старый не выключили. Оба слышат broadcast, оба отвечают.Клиент берёт первый пришедший offer. Не правильный, а именно первый. Если левый сервер ответил быстрее, клиент получает адрес из чужого пула, чужой шлюз, чужой DNS. Настроен, но в сеть не ходит или ходит куда не надо. Хуже когда пулы пересекаются: два клиента получают одинаковый IP и оба теряют связь. Без каких-либо ошибок на их стороне. Смотрим кто вообще отвечает на DHCP в сегменте:
sudo tcpdump -i eth0 port 67 or port 68 -n
nmap --script broadcast-dhcp-discover
Если в выводе несколько Server Identifier, проблема подтверждена.
Лечится DHCP Snooping на коммутаторе: офферы разрешены только с доверенных портов, со всех остальных дропаются:
ip dhcp snooping ip dhcp snooping vlan 10 interface Gi0/1 ip dhcp snooping trust interface range Gi0/2 - 24 no ip dhcp snooping trustN.A.
# Проверка доступности линка между хостами через CFM Continuity Check
eth-oam-ccm -i eth0 -m 1 -t 10
Где -i — интерфейс, -m — Maintenance Association ID, -t — интервал в секундах.
Для интеграции с FRRouting можно настроить уведомления о недоступности линка и динамически изменять маршруты.
Например, при падении линка BGP-сессия будет разорвана и маршруты уйдут на резервный путь.
Дополнительно можно использовать Loopback и Link Trace для диагностики проблем:
# Loopback запрос к соседнему устройству
eth-oam-lb -i eth0 -m 1
# Trace путь до узла через L2
eth-oam-lt -i eth0 -m 1 -d <MAC-адрес-соседа>
N.A.Крупнейшие точки обмена: DE-CIX во Франкфурте, AMS-IX в Амстердаме, MSK-IX в Москве. Через DE-CIX проходит больше 10 Тбит/с в пике.Как устроено внутри Физически IX это один большой коммутатор (или несколько связанных), к которому все участники подключают свои роутеры. Эта общая среда называется IXP fabric. Каждый участник получает порт и IP-адрес в общей подсети IX. Дальше всё через BGP. Каждый участник поднимает BGP-сессии с теми с кем хочет обмениваться трафиком, анонсирует свои префиксы и получает чужие. Никакой автоматики, только явные пиринговые договорённости. Route Server Чтобы не поднимать сотни BGP-сессий с каждым участником отдельно, большинство IX предоставляют Route Server. Подключаешься к одному RS, получаешь маршруты от всех участников кто тоже подключён к RS. Можно фильтровать что принимать и что анонсировать.
router bgp 65001 neighbor 193.178.185.1 remote-as 65000 neighbor 193.178.185.1 description MSK-IX Route ServerКак трафик идёт внутри Пакет от пользователя провайдера А до сервера в сети провайдера Б: роутер А смотрит BGP-таблицу, видит что префикс Б получен через IX, отправляет пакет напрямую на роутер Б через IXP fabric. Транзитный провайдер не участвует, задержка меньше, стоимость ниже. N.A.
Отправитель получает сообщение, уменьшает размер сегмента и пробует снова. Это называется Path MTU Discovery и работает хорошо в теории.На практике многие сети и файерволы блокируют ICMP полностью. Сообщение Fragmentation Needed не доходит, отправитель продолжает слать большие пакеты, они дропаются без каких-либо уведомлений. Симптом характерный: мелкие запросы проходят нормально, крупные зависают или обрываются. Проверяем реальный Path MTU до хоста и тестируем конкретный размер пакета:
tracepath 8.8.8.8
ping -M do -s 1400 8.8.8.8
Если ping с -M do (don’t fragment) падает на определённом размере, MTU на пути именно там.
Как фиксить
Выставляем MTU вручную на туннельном интерфейсе:
ip link set dev tun0 mtu 1420
Для PPPoE на Cisco MSS clamp ограничивает размер TCP-сегментов на уровне роутера, не давая клиентам использовать значения выше допустимого:
interface Dialer0 ip tcp adjust-mss 1452N.A.
Благодаря этому коммутатор находит совпадение для любого пакета за одну операцию, независимо от размера таблицы. Именно поэтому железо форвардит трафик на линейной скорости.Почему TCAM дорогой и ограниченный TCAM потребляет в 5-10 раз больше энергии и площади чристалла чем обычная SRAM. Поэтому его мало: на типичном enterprise-коммутаторе несколько десятков тысяч записей, и они делятся между маршрутами, ACL, QoS и MAC-таблицей. Посмотреть сколько TCAM осталось на Cisco:
show platform tcam utilization show sdm preferКак ACL влияют на TCAM Каждая строка ACL это одна или несколько записей в TCAM. Правило с диапазоном портов разбивается на несколько записей потому что TCAM не умеет в диапазоны нативно. Правило permit tcp any any gt 1024 может развернуться в десятки записей. На больших ACL это незаметно, но на коммутаторах с маленьким TCAM таблица заканчивается и новые правила просто не применяются.
show ip access-lists show platform hardware capacityЧто делать при нехватке Меняем SDM profile чтобы перераспределить TCAM между функциями. Например отдать больше под ACL за счёт MAC-таблицы:
sdm prefer acl reloadN.A.
Иногда немного, иногда достаточно чтобы сломать крупные передачи.Туннели Любой туннель оборачивает оригинальный пакет в новый и добавляет свои заголовки. GRE забирает 24 байта, IPsec в tunnel mode от 50 до 70 байт в зависимости от алгоритмов шифрования, WireGuard 60 байт, VXLAN 50 байт. Если на пути несколько туннелей, байты суммируются. Итоговый MTU внутри может оказаться 1400 и ниже, при этом интерфейс снаружи честно показывает 1500. PPPoE
PPPoE используют большинство провайдеров на последней миле. Протокол добавляет 8 байт заголовка к каждому фрейму, реальный MTU на интерфейсе становится 1492.Если роутер не учитывает это и анонсирует клиентам MSS под 1500, крупные TCP-сегменты начинают фрагментироваться или молча дропаться на пути. Делаем вторую часть с более подробным разбором на практике? N.A.
show mac address-table show mac address-table aging-timeЧто происходит при переполнении CAM хранится в аппаратной памяти фиксированного размера. Когда таблица полна, новые записи не добавляются и любой фрейм с неизвестным MAC уходит флудом. Коммутатор деградирует до хаба. На этом построена атака MAC flooding: генерируются фреймы с тысячами случайных source MAC, таблица забивается, и весь трафик начинает идти на порт атакующего тоже. Защита Port Security ограничивает количество MAC на порту:
interface Gi0/1 switchport port-security switchport port-security maximum 2 switchport port-security violation restrict show port-security interface Gi0/1N.A.
192.168.1.50?” отвечает сам хост с этим IP. Proxy ARP меняет это поведение: роутер перехватывает запрос и отвечает своим MAC-адресом, как будто этот IP находится на нём. Хост отправляет трафик на роутер, роутер форвардит дальше.
Изначально это придумали для соединения подсетей без настройки маршрутов на конечных устройствах. Актуально было в эпоху когда маски подсетей на хостах не совпадали с реальной топологией.Где это реально используется сейчас В облаках и гипервизорах Proxy ARP используется постоянно. Когда виртуальная машина получает IP из одной подсети, а физически находится на хосте в другой, гипервизор отвечает на ARP-запросы за неё. VMware, KVM с определёнными сетевыми конфигурациями, AWS при определённых настройках VPC, всё это Proxy ARP под капотом. Когда это ломает сеть Если Proxy ARP включён на роутере по умолчанию (на Cisco он включён), а в сети несколько роутеров, начинается хаос. Несколько устройств отвечают на один ARP-запрос разными MAC-адресами, трафик уходит не туда, сессии рвутся. Вторая проблема: хосты кешируют ARP-ответы. Если роутер ответил за чужой IP, хост будет слать трафик через него даже когда прямой маршрут появился. Проверяем на Cisco:
show ip interface Gi0/0 | include proxyОтключаем если не нужен:
interface Gi0/0 no ip proxy-arpНа Linux:
cat /proc/sys/net/ipv4/conf/eth0/proxy_arp
echo 0 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
N.A.
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
