Серверная Админа | Компьютерные сети


Гео и язык канала: Россия, Русский
Категория: Технологии


Я действующий сетевой инженер, расскажу вам о сетях в доступной форме.
Реклама - @bashmak_media
Мы на бирже: https://telega.in/c/school_network
РКН: https://vk.cc/cHYqt5

Связанные каналы  |  Похожие каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


Как устроен современный антивирус: поведенческий анализ, драйверы, архитектура

Современный антивирус уже не ищет только знакомые сигнатуры. Он смотрит, что делает процесс: прописался в автозагрузку, создал файл, полез в другой процесс и открыл соединение наружу. Отдельно это может быть нормой, но вместе уже подозрительная цепочка. За этим следят драйверы ядра, файловые и сетевые фильтры, ETW, AMSI и другие механизмы.

Серверная Админа | Zeroday | #Статья


Какой протокол используется для управления подписками на IPv6 multicast-группы?
Опрос
  •   IGMP
  •   MLD
  •   PIM-SM
  •   RSVP
448 голосов


Привет. Вот тебе самые топовые каналы по IT!

⚙️ Dev Boost — Самая огромная коллекция платных курсов, которые можно скачать бесплатно;

👩‍💻 IT Books — Самая огромная библиотека книг;

💻 Hacking & InfoSec Base — Крутой блог белого хакера;

🤔 ИБ Вакансии — Всё, чтобы найти работу в ИБ;

👩‍💻 linux administration — Всё про Линукс;
📲 В Max тоже есть место для линуксоидов;

👩‍💻 Программистика — Python, python и ещё раз python;

👩‍💻 GameDev Base — Всё про GameDev;

😆 //code — Самые топовые мемы по IT:
📲 Мы в Max;

Подпишись, чтобы не потерять!


Что произойдёт с iBGP без Route Reflector?
Опрос
  •   Все маршруты станут eBGP
  •   Потребуется full mesh
  •   OSPF создаст соседства
  •   MED станет обязательным
95 голосов


👋 Привет, сетевой друг!

Сегодня разберём CFM (Connectivity Fault Management, IEEE 802.1ag) - протокол который провайдеры используют для мониторинга Ethernet-линков на уровне L2.

🟣Что это и зачем: обычный ping работает на L3 и не покажет проблему внутри Ethernet-сегмента между двумя коммутаторами. CFM работает на L2 и позволяет проверять связность, измерять задержку и потери между любыми двумя точками в сети без IP-адресов. Провайдеры используют для контроля SLA на арендованных каналах - клиент видит, что линк поднят, но CFM показывает реальное качество внутри.

🟣Три основных инструмента внутри CFM: Continuity Check Message (CCM) - аналог keepalive, устройства периодически обмениваются между собой и обнаруживают отказы. Loopback (LBM/LBR) - аналог ping на L2, проверяем связность до конкретного MEP. Linktrace (LTM/LTR) - аналог traceroute на L2, видим путь через коммутаторы.

🟣Ключевые понятия:
1️⃣MEP (Maintenance End Point) - конечная точка домена обслуживания, здесь CFM-сообщения генерируются и терминируются.
2️⃣MIP (Maintenance Intermediate Point) - промежуточная точка, пропускает и отвечает на linktrace но не генерирует CCM.
3️⃣MD (Maintenance Domain) - уровень обслуживания от 0 до 7, провайдер обычно использует уровень 4-7, клиент 0-3.

🟣Настройка на Cisco IOS:

ethernet cfm domain PROVIDER level 5
service CUSTOMER_A evc CUSTOMER_A
continuity-check
continuity-check interval 1s

interface GigabitEthernet0/1
ethernet cfm mep domain PROVIDER mpid 1 service CUSTOMER_A
ethernet cfm mip level 5

show ethernet cfm maintenance-points local
show ethernet cfm errors

🟣Проверяем связность через L2 ping и traceroute:

ping ethernet mpid 2 domain PROVIDER service CUSTOMER_A
traceroute ethernet mpid 2 domain PROVIDER service CUSTOMER_A

show ethernet cfm statistics
show ethernet cfm ccm-learning-table

🟣Измерение задержки и потерь через Y.1731 - расширение CFM для SLA-метрик:

ethernet cfm domain PROVIDER level 5
service CUSTOMER_A evc CUSTOMER_A
sender-id chassis

ip sla 1
ethernet y1731 delay dmm domain PROVIDER service CUSTOMER_A mpid 2
cos 5
frequency 10
ip sla schedule 1 life forever start-time now

show ip sla statistics 1

Y.1731 даёт точные измерения one-way delay, delay variation и frame loss - именно эти цифры идут в SLA-отчёты клиентам.

🟣Где точно используется: Metro Ethernet между офисами через провайдера, мониторинг арендованных L2-каналов в датацентрах, операторские сети где нужно видеть проблему внутри Ethernet-сегмента до того как клиент позвонит в поддержку.

Серверная Админа | Бункер Хакера | #Network


📝 Радиа Перлман: женщина, которая заставила Ethernet работать без петель

Расскажу о человеке, без которого современные L2-сети выглядели бы вообще иначе.

🟣В 80-х Ethernet быстро распространялся, но с ростом сетей появилась неприятная проблема: инженеры хотели добавлять резервные соединения между коммутаторами, а обычный Ethernet не умел нормально жить с петлями. Кадры начинали ходить по кругу, появлялись broadcast storms, сеть могла буквально положить сама себя.

🟣Радиа Перлман в 1985 году разработала Spanning Tree Protocol - STP. Идея была простой: разрешить физически избыточную топологию, но логически оставить дерево без петель. Коммутаторы обмениваются BPDU, выбирают root bridge, рассчитывают лучший путь и блокируют лишние соединения.

🟣Самое интересное - при отказе основного линка заблокированный путь можно снова включить. То есть резервный кабель не пропадает зря: он ждёт аварии и становится частью рабочей топологии.

🟣Именно поэтому можно было строить сети вроде:

SW1
/ \
SW2---SW3

Физическая петля есть, но STP блокирует один из путей. Если связь между SW1 и SW2 пропадёт, дерево пересчитается и трафик пойдёт через SW3.

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

🟣Ирония в том, что сегодня STP часто считают старой технологией и стараются заменять более современными механизмами. Но сама идея осталась: избыточные связи нужны, просто сеть должна уметь понимать, какие из них сейчас можно использовать.

Серверная Админа | Бункер Хакера | #network


Хочешь этой осенью сделать первый шаг к работе в Росатоме? Начни с кейслаба по информационной безопасности!

🔐Кейслаб по информационной безопасности — это бесплатная программа с обучением, наставниками и практическими задачами Росатома. За месяц ты сможешь прокачать профессиональные навыки, познакомиться с реальными рабочими процессами и побороться за место в финале молодежного фестиваля «ИТ КоР 5.0. Новый код атомной отрасли».

🎯Лучшие участники кейслаба отправятся на очный финал в Нижний Новгород, а победители получат возможность пройти стажировку или начать работать на предприятиях Росатома.

Регистрация на кейслаб уже открыта: https://itcore.depreg.ru
Старт обучения — 24 августа.
Подробнее о фестивале: https://it-core2026.ru

🔥Если ИБ — направление, в котором ты хочешь развиваться, сейчас самое время проверить свои силы на реальных задачах.

Реклама.
О рекламодателе.


Перенос работающего сервера без остановки сервисов

👋 Привет, сетевой друг!

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

🟣Что изменилось в подходе: главная проблема старого метода - снапшот делается один раз, потом долго передаётся, а за это время данные на источнике меняются. И решение тут - это инкрементальная передача через несколько снапшотов, финальный diff минимален и сервис останавливается на секунды а не часы.

🟣Создаём первый базовый снапшот и начинаем передачу в фоне:

# ZFS — базовый снапшот
zfs snapshot zpool/rootfs@base
zfs send zpool/rootfs@base | ssh root@new-server zfs receive -F zpool/rootfs

# Btrfs — базовый снапшот
btrfs subvolume snapshot -r / /mnt/snapshots/base
btrfs send /mnt/snapshots/base | ssh root@new-server btrfs receive /mnt/

Пока передаётся base - сервер продолжает работать, данные меняются.

🟣Инкрементальный diff: передаём только изменения

# ZFS — создаём второй снапшот и шлём только дельту
zfs snapshot zpool/rootfs@incremental
zfs send -i zpool/rootfs@base zpool/rootfs@incremental | \
ssh root@new-server zfs receive -F zpool/rootfs

# Btrfs — аналогично
btrfs subvolume snapshot -r / /mnt/snapshots/incremental
btrfs send -p /mnt/snapshots/base /mnt/snapshots/incremental | \
ssh root@new-server btrfs receive /mnt/

Флаг -i (ZFS) и -p (Btrfs) означают инкрементальную передачу - только дельта между снапшотами, не весь объём.

🟣Финальная синхронизация с минимальным даунтаймом:

# Останавливаем сервисы
systemctl stop nginx postgresql

# Финальный инкрементальный снапшот
zfs snapshot zpool/rootfs@final
zfs send -i zpool/rootfs@incremental zpool/rootfs@final | \
ssh root@new-server zfs receive -F zpool/rootfs

# Поднимаем сервисы уже на новом сервере

Финальный diff минимален, только изменения за последние минуты пока останавливались сервисы.

🟣Проверка целостности после передачи:

# ZFS встроенная проверка
ssh root@new-server zfs get checksum zpool/rootfs
ssh root@new-server zpool scrub zpool

# Btrfs
ssh root@new-server btrfs scrub start /mnt
ssh root@new-server btrfs scrub status /mnt

Без проверки можно перенести данные с тихим битовым повреждением и узнать об этом только при чтении.

🟣Восстановление загрузки:

arch-chroot /mnt

# Обновляем fstab с новыми UUID
blkid >> /etc/fstab
# Правим вручную — убираем старые UUID

# Обновляем initramfs
update-initramfs -u -k all

# Устанавливаем загрузчик
grub-install /dev/sdX
update-grub

# Для систем с systemd-boot
bootctl install

🟣Чистим снапшоты после успешного переноса:

# ZFS
zfs destroy zpool/rootfs@base
zfs destroy zpool/rootfs@incremental
zfs destroy zpool/rootfs@final

# Btrfs
btrfs subvolume delete /mnt/snapshots/base
btrfs subvolume delete /mnt/snapshots/incremental

Серверная Админа | Zeroday | #linux


👋 Привет, сетевой друг!

Сегодня про ghorg - утилиту для массового клонирования репозиториев. Даёте ей организацию или пользователя, а она сама собирает все доступные репозитории в одну директорию.

🟣Зачем он: когда в организации десятки или сотни репозиториев, делать git clone для каждого вручную - сомнительное удовольствие. ghorg подходит для аудита, локального поиска по всему коду, бэкапов и быстрого онбординга.

ghorg clone kubernetes

На выходе получите примерно такую структуру:

~/ghorg/kubernetes/
├── apimachinery
├── kubeadm
├── git-sync
├── kubernetes-template-project
└── ...

🟣Можно не тащить всё подряд. Например, оставить только репозитории, начинающиеся с sig-:
ghorg clone kubernetes --match-regex=^sig-

Или исключить форки и архивные репозитории:

ghorg clone kubernetes --skip-forks --skip-archived

🟣Интереснее режим бэкапа. --backup использует git clone --mirror, а вместе с --clone-wiki и --include-submodules можно собрать гораздо более полный набор данных:

ghorg clone kubernetes \
--backup \
--clone-wiki \
--include-submodules

🟣Есть и сценарий регулярного обновления: если репозиторий уже скачан, следующий запуск не клонирует его заново, а делает pull и clean. Для рабочих каталогов это важно учитывать: локальные изменения по умолчанию могут быть затёрты. Если нужно сохранить их, используется --no-clean.

🟣А если таких наборов несколько, команды можно сохранить в reclone.yaml и запускать одной командой:

ghorg reclone

Для этого же есть HTTP-сервер и cron-режим - уже получается вполне нормальная автоматизация бэкапов и периодической синхронизации.

Серверная Админа | Zeroday | #Инструмент


Разработка цифрового радиолюбительского протокола на базе OFDM. PHY-уровень

Автор решил собрать собственный протокол цифровой радиосвязи на базе OFDM - той же идеи, которая используется в Wi-Fi и LTE. Данные здесь одновременно передаются по множеству поднесущих, а пилоты, циклический префикс, FEC и CRC помогают пережить шум и помехи. В итоге прототип передаёт данные со скоростью до 708 бит/с и способен работать даже при отрицательном SNR. Получился небольшой Wi-Fi, только вместо роутера - радиолюбительский SSB-трансивер.

Серверная Админа | Zeroday | #Статья


👨‍💻Серверная Админа | #мем


👋 Привет, сетевой друг!

Расскажу еще о 3 способах прокачать защиту Mikrotik.

🟣Scheduler + скрипт для автоматического обновления firmware без простоя: Mikrotik умеет проверять наличие обновлений и устанавливать их по расписанию - удобно для парка роутеров когда обновлять руками нереально:

/system scheduler
add name=auto-upgrade interval=7d on-event={
/system package update check-for-updates
:delay 10s
:if ([/system package update get status] = "New version is available") do={
/system package update install
}
}

Скрипт проверяет раз в неделю, и если есть обновление - устанавливает его. Роутер перезагрузится автоматически. Для критичных узлов лучше добавить проверку времени суток чтобы обновление происходило в нерабочие часы.

🟣Детект и блокировка torrent-трафика через p2p-маркировку: встроенный p2p matcher в Mikrotik определяет BitTorrent, eDonkey, Gnutella и другие протоколы без L7-регулярок:

/ip firewall mangle
add chain=forward p2p=all-p2p \
action=mark-packet new-packet-mark=p2p-traffic passthrough=no \
comment="Mark P2P traffic"

/queue tree
add name=p2p-limit parent=global \
packet-mark=p2p-traffic max-limit=1M \
comment="Limit P2P to 1Mbps"

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

🟣IPv6 RA Guard - защита от rogue Router Advertisement: в IPv6-сетях любое устройство может объявить себя шлюзом через RA-пакет. На Mikrotik блокируем RA с клиентских портов оставляя только доверенные интерфейсы:

/ipv6 firewall filter
add chain=forward protocol=icmpv6 icmp-type=134 \
in-interface=!ether1 action=drop \
comment="Block rogue Router Advertisement"

add chain=input protocol=icmpv6 icmp-type=134 \
in-interface=!ether1 action=drop \
comment="Block RA on untrusted interfaces"

icmp-type=134 это Router Advertisement. Всё что приходит не с доверенного uplink-интерфейса - дропается. Закрывает атаки на IPv6-сегменты аналогичные ARP-спуфингу в IPv4.

Серверная Админа | Zeroday | #Mikrotik


👋 Привет, сетевой друг!

Сегодня разберём eBPF vs iptables/nftables. По факту это два подхода к фильтрации трафика, которые сейчас активно конкурируют в Kubernetes и просто в Linux-окружениях.

🟣Классический стек iptables/nftables: правила обрабатываются последовательно через цепочки netfilter в ядре. Каждый пакет проходит через все правила пока не найдёт совпадение. При тысячах правил (типичная ситуация в Kubernetes) это становится узким местом - каждое новое правило добавляет линейную сложность O(n).

Посмотреть текущие правила и статистику:

iptables -L -n -v --line-numbers
nft list ruleset
iptables -t filter -L -n -v | grep -v "0 0"

🟣Что меняет eBPF: вместо обхода цепочек правил программа на eBPF выполняется прямо в ядре при каждом пакете - без копирования в userspace, без обхода длинных цепочек. Решение принимается за O(1) через hash-таблицы вместо O(n) через правила:

# Простой XDP-дроппер через eBPF
cat > drop_icmp.c data;
void *data_end = (void *)(long)ctx->data_end;
struct ethhdr *eth = data;
if ((void *)(eth + 1) > data_end) return XDP_PASS;
struct iphdr *ip = (void *)(eth + 1);
if ((void *)(ip + 1) > data_end) return XDP_PASS;
if (ip->protocol == 1) return XDP_DROP;
return XDP_PASS;
}
EOF

clang -O2 -target bpf -c drop_icmp.c -o drop_icmp.o
ip link set dev eth0 xdp obj drop_icmp.o sec xdp

🟣Почему Kubernetes переходит на eBPF через Cilium: kube-proxy генерирует тысячи iptables-правил для service routing - по несколько правил на каждый сервис и эндпоинт. При 10000 сервисов это десятки тысяч правил, обновление которых занимает секунды и блокирует пакетную обработку. Cilium заменяет всё это на eBPF-программы с hash-таблицами:

# Проверяем что Cilium использует eBPF вместо iptables
cilium status | grep -i datapath
cilium bpf lb list # вся load balancing таблица
cilium bpf policy get --all # политики как eBPF программы

🟣Эмулируем разницу под нагрузкой - добавляем 10000 iptables-правил и меряем деградацию:

# Генерируем 10000 правил
for i in $(seq 1 10000); do
iptables -A INPUT -s 10.$((i/256)).$((i%256)).0/24 -j ACCEPT
done

# Меряем пропускную способность
iperf3 -c target -t 30

# Чистим и меряем без правил для сравнения
iptables -F INPUT
iperf3 -c target -t 30

🟣Когда iptables/nftables всё ещё правильный выбор: небольшие сети с сотнями правил, классические серверы без Kubernetes, когда команда не готова к eBPF-отладке. eBPF побеждает при тысячах правил, высоком pps и динамически меняющейся конфигурации как в Kubernetes.

Серверная Админа | Zeroday | #eBPF #iptables


📝 История VXLAN: как Ethernet пришлось научиться жить поверх IP

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

🟣Проблема началась с масштаба: классический VLAN использует 12-битный идентификатор, поэтому доступно всего 4094 нормальных VLAN. Для одного офиса этого более чем достаточно. Для облака с тысячами клиентов, виртуальных машин и изолированных сетей - уже нет.

🟣В 2011 году появился VXLAN. Идея довольно простая: взять обычный Ethernet-кадр, завернуть его в UDP/IP и отправить через обычную L3-сеть. Вместо VLAN ID используется 24-битный VNI, поэтому пространство идентификаторов выросло примерно до 16 миллионов.

Ethernet

VXLAN header

UDP

IP

Ethernet

🟣Самое важное изменение произошло в архитектуре. Между серверами теперь не обязательно иметь L2-коммутацию. Underlay может быть обычным IP fabric, а VXLAN создаёт поверх него виртуальную L2-сеть. На краях находятся VTEP - устройства, которые инкапсулируют и декапсулируют кадры.

🟣А как VTEP узнаёт, куда отправлять MAC? В небольших схемах можно использовать flood-and-learn, но в современных дата-центрах обычно используется EVPN поверх BGP. Тогда информация о MAC и IP распространяется через control plane, а не изучается только по факту прохождения кадров.

На Cisco полезно посмотреть:

show nve peers
show nve vni
show bgp l2vpn evpn
show l2vpn evpn evi
show mac address-table dynamic

🟣В итоге получилась довольно красивая схема: физическая сеть остаётся маршрутизируемой и может использовать ECMP, а поверх неё можно создавать виртуальные L2-сегменты между серверами, стойками и даже площадками.

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

Серверная Админа | Zeroday | #история


👋 Привет, сетевой друг!

Сегодня про pingtrace - утилиту, которая собирает ping, traceroute, MTR и TCP-проверки в один CLI. Имба, когда во время аварии не хочется держать открытыми пять терминалов.

🟣Быстрая проверка:

pingtrace 1.1.1.1

Получаем ping, маршрут и DNS-информацию по хопам. На Windows инструмент использует tracert, на Linux/macOS - traceroute, с fallback на tracepath.

🟣Если нужно посмотреть маршрут именно как MTR:

pingtrace 1.1.1.1 --mtr

Можно ограничить тест десятью циклами и интервалом в две секунды:

pingtrace 1.1.1.1 -m --cycles 10 --interval 2

Так проще поймать потери или скачки latency не по одному случайному ping.

🟣Есть и TCP-сканирование. Причём обычным connect scan - raw sockets и root не нужны:

pingtrace 10.0.0.1 --ports 22,80,443

Можно указать диапазон:

pingtrace 10.0.0.1 --ports 8000-9000

Или вообще проверить все 65535 портов:

pingtrace 10.0.0.1 --ports

Для известных портов подтягиваются названия сервисов из IANA.

🟣Интереснее становится с несколькими целями:

pingtrace 10.0.0.1,10.0.0.2,example.com

или сразу подсеть:

pingtrace 10.0.0.0/28 --ports 22,80,443

Можно передать и CSV-файл с целями:

pingtrace --file ./targets.csv

🟣Результаты можно не копировать руками из терминала, а сразу сохранить:

pingtrace 1.1.1.1 --export ./reports --json

На выходе будут CSV и JSON, которые потом удобно скормить скрипту или приложить к отчёту об инциденте.

🟣А если нужен максимально чистый вывод для автоматизации, можно выбрать конкретные колонки:

pingtrace 1.1.1.1 --no-trace --columns seq,ip,time_ms,status

По сути, pingtrace закрывает типичный сценарий диагностики: «хост доступен, но что происходит по дороге до него и где именно начинается проблема?»

Серверная Админа | Zeroday | #Инструмент


Канал свободен, а пинг под нагрузкой скачет до секунды: разбираемся с bufferbloat и очередями

Статья о bufferbloat - ситуации, когда канал вроде бы свободен по пропускной способности, но под нагрузкой задержка внезапно улетает в сотни миллисекунд из-за переполненных очередей. Разбираются CoDel, FQ-CoDel, CAKE, ECN, L4S и BBR, а также показывается, почему большой буфер не всегда спасает от потерь и как диагностировать, где именно появляется задержка. Плюсом обсуждают incast в дата-центрах и способы борьбы с очередями на уровне Linux и сетевого оборудования.

Серверная Админа | Zeroday | #Статья


👨‍💻Серверная Админа | #мем


Dynamic ARP Inspection: как свитч сам проверяет ARP-таблицу

👋 Привет, сетевой друг!

Давай расскажу про DAI - механизм, который закрывает ARP-спуфинг на уровне коммутатора, не требуя ничего настраивать на конечных устройствах.

🟣Суть проблемы: ARP работает на доверии. Любое устройство может отправить gratuitous ARP и объявить себя владельцем любого IP - соседи обновят кэш и начнут слать трафик атакующему. DAI закрывает именно это, проверяя каждый ARP-пакет против базы DHCP snooping перед тем, как пропустить его дальше.

🟣Как работает связка DHCP Snooping + DAI: DHCP snooping перехватывает все DHCP-сообщения и строит binding table: IP, MAC, порт, VLAN. DAI берёт эту таблицу и проверяет каждый ARP-запрос и ответ, если MAC и IP не совпадают с записью в таблице, пакет дропается.

🟣Включаем DHCP Snooping и DAI на Cisco:

ip dhcp snooping
ip dhcp snooping vlan 10,20,30

ip arp inspection vlan 10,20,30

! Uplink к роутеру помечаем как trusted
interface GigabitEthernet0/1
ip dhcp snooping trust
ip arp inspection trust

! Порты к хостам — untrusted по умолчанию, явно ограничиваем rate
interface GigabitEthernet0/2
ip arp inspection limit rate 100

interface range GigabitEthernet0/3-24
ip arp inspection limit rate 100

Uplink к роутеру или другому свитчу помечаем trust - там трафик уже проверен. Порты к хостам остаются untrusted, DAI проверяет каждый ARP с них.

🟣Для статических устройств которые не получают адрес через DHCP - серверы, принтеры - создаём ручные ARP ACL:

arp access-list STATIC_HOSTS
permit ip host 192.168.10.10 mac host 00a1.b2c3.d4e5
permit ip host 192.168.10.11 mac host 00a1.b2c3.d4e6

ip arp inspection filter STATIC_HOSTS vlan 10

Без этого статические хосты будут дропаться DAI потому что записей о них в DHCP snooping binding table нет.

🟣Проверяем что DAI реально работает:

show ip arp inspection vlan 10
show ip arp inspection statistics
show ip dhcp snooping binding

В статистике видно сколько пакетов прошло проверку и сколько было дропнуто. Если счётчик Forwarded растёт и Dropped нулевой - либо атак нет, либо DAI не применяется.

🟣Диагностика когда легитимный трафик дропается: DAI пишет в syslog каждый дроп с причиной - несовпадение MAC, несовпадение IP или превышение rate limit:

debug ip arp inspection vlan 10
show ip arp inspection log

Чаще всего проблема в том что статический хост не добавлен в ARP ACL или uplink не помечен как trusted.

Серверная Админа | #ARP


👋 Привет, сетевой друг!

Сегодня разберём как устроена сетевая инфраструктура крупных дата-центров - spine-leaf архитектура которая пришла на смену классическому three-tier.

🟣Классический three-tier: core, distribution, access. Три уровня иерархии, трафик от сервера до сервера идёт через все три. При росте нагрузки узкое место всегда наверху, масштабирование болезненное, east-west трафик (между серверами) делает лишние хопы.

🟣Spine-leaf решает именно это: два уровня вместо трёх. Leaf-свитчи подключаются к серверам, spine-свитчи соединяют все leaf между собой. Каждый leaf подключён к каждому spine - нет единой точки отказа, нет иерархии где трафик собирается наверху.

Spine1 Spine2 Spine3 Spine4
| \ / | \ / | \ / |
Leaf1 Leaf2 Leaf3 Leaf4 Leaf5
| | | | |
Servers Servers ...

🟣Почему это важно для east-west трафика: в современных датацентрах 70-80% трафика идёт между серверами внутри ЦОД, а не наружу. В three-tier этот трафик поднимается до distribution и обратно - лишние хопы и задержка. В spine-leaf любой leaf до любого leaf всегда два хопа через spine.

🟣ECMP (Equal-Cost Multi-Path) - основа балансировки в spine-leaf: каждый leaf видит несколько равнозначных путей до любого другого leaf через разные spine. Трафик балансируется по хэшу из заголовков пакета:

show ip route 10.0.0.0/24
# Видим несколько next-hop через разные spine

show ip ecmp
# Статистика распределения по путям

🟣BGP вместо STP в spine-leaf: классический spanning tree не масштабируется и блокирует резервные линки. В spine-leaf используют BGP (часто eBGP с разными AS на каждом устройстве) или OSPF для маршрутизации — все линки активны, нет заблокированных портов:

router bgp 65001 # leaf1
neighbor 10.0.0.1 remote-as 65100 # spine1
neighbor 10.0.0.2 remote-as 65100 # spine2

router bgp 65100 # spine
neighbor 10.0.0.10 remote-as 65001 # leaf1
neighbor 10.0.0.20 remote-as 65002 # leaf2

🟣Ограничение spine-leaf и как его решают: классическая топология плохо работает когда нужно L2-связность между leaf (например для vMotion или кластеризации). Решение - VXLAN поверх IP-фабрики с EVPN для управления MAC/IP-адресами через BGP. Leaf инкапсулирует L2-фреймы в UDP/IP, fabric остаётся чистым L3.

Серверная Админа | #история #Network


👋 Привет, сетевой друг!

Сегодня о PAM - механизме, через который в Linux проходит почти каждая аутентификация.

🟣Что такое PAM: Pluggable Authentication Modules - прослойка между приложением и системой проверки доступа. Её используют sudo, SSH, login, su и многие другие сервисы.

🟣Как это работает: Приложение отправляет запрос в PAM. Библиотека libpam.so читает конфигурацию из /etc/pam.d/ или /etc/pam.conf и определяет, какие модули нужно запустить.

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

🟣Финальное решение: После выполнения модулей PAM собирает результаты и возвращает приложению только одно - доступ разрешён или запрещён.

🟣Главный плюс: Чтобы изменить правила входа сразу для всех сервисов, достаточно поменять конфигурацию PAM - переписывать сами приложения не нужно.

Серверная Админа | Zeroday | #Linux

Показано 20 последних публикаций.