12610
Обучающий канал по сетевому и системному администрированию. Сотрудничество: @dad_admin Биржа: https://telega.in/c/networkadm РКН: https://bit.ly/4ioc61C
🎥 Вебинар по сетям: Основные протоколы сети Интернет
🧠 Что будет на занятии:
- От битов до браузера: что такое сетевой протокол и зачем нужна модель osi/tcp-ip. Простое объяснение сложной концепции.
- Фундамент Интернета: детальный разбор ip, tcp и udp. Узнаем, кто отвечает за адресацию, а кто — за надежность доставки.
- Протоколы прикладного уровня: как работают знакомые всем http, https и dns, когда вы открываете сайт.
- Ответы на ваши вопросы: живая сессия с экспертом, где можно спросить о любых нюансах, связанных с сетевыми технологиями.
💪 В результате :
Систематизируете знания о ключевых протоколах и сможете увереннее разбираться в сетевых вопросах.
🎁 Проходит в преддверии старта курса «Network engineer. Basic». Все участники вебинара получат специальные условия на полное обучение курса.
👉 Регистрируйтесь для участия https://otus.pw/w2Qp/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
MPLS vs VXLAN: что выбрать для сети?
Когда сеть растёт, часто встаёт вопрос, как объединить филиалы, виртуальные машины и контейнеры в единый L2/L3 слой без перегрузки маршрутизаторов.
Две популярные технологии — MPLS и VXLAN.
⏺MPLS (Multiprotocol Label Switching) работает на уровне L2.5: пакеты маркируются метками для маршрутизации. Это даёт высокую производительность и низкую задержку. Технология широко используется в провайдерских сетях и больших дата-центрах, но её сложнее настраивать и поддерживать, требуется LDP или RSVP.
⏺VXLAN создаёт overlay-сеть поверх IP (L3), каждый сегмент имеет 24-битный идентификатор VNI. Она легко масштабируется и подходит для виртуальных машин и контейнеров. Можно использовать VXLAN на обычных Linux-серверах или через Open vSwitch. Гибкость выше, но есть небольшие накладные расходы на инкапсуляцию.
Ключевое отличие в том, что MPLS ориентирован на производительность и операторские сети, а VXLAN на гибкость и динамические инфраструктуры.
Пример проверки overlay VXLAN на Linux:
ip link add vxlan10 type vxlan id 10 dev eth0 dstport 4789
ip addr add 10.10.10.1/24 dev vxlan10
ip link set vxlan10 up
ping 10.10.10.2
HSRP (Hot Standby Router Protocol) для резервирования шлюза
Когда в сети есть несколько маршрутизаторов, важно, чтобы у клиентов всегда был доступ к шлюзу, даже если один из маршрутизаторов падает.
HSRP создаёт виртуальный IP-адрес и один «активный» маршрутизатор, а остальные остаются в режиме ожидания.
Если активный падает — резервный автоматически поднимается.
На Cisco настройка выглядит так:
interface GigabitEthernet0/1
ip address 192.168.1.2 255.255.255.0
standby 1 ip 192.168.1.1
standby 1 priority 110
standby 1 preempt
show standby brief
/interface vrrp add interface=ether1 vrid=1 priority=100 \
virtual-address=192.168.1.1
Произошла классика: щас по быстрому сделаем, а потом переделаем
N.A. ℹ️ Help
Настройка OSPF Passive Interface: оставляем маршруты там, где они нужны
Иногда хочется, чтобы OSPF работал только на нужных сегментах сети, а на остальных интерфейсах «молчал» — не слал hello-пакеты и не анонсировал маршруты.
Passive Interface как раз для этого. Он отключает OSPF на выбранном интерфейсе, но маршруты из этой подсети по-прежнему будут анонсироваться в остальную сеть.
На Cisco это делается просто:
router ospf 1
passive-interface GigabitEthernet0/1
router ospf 1
passive-interface default
no passive-interface GigabitEthernet0/0
/routing ospf interface
set [ find interface="ether1" ] passive=yes
Настройка Simple Queue на MikroTik
Ограничение скорости для конкретного устройства
Предположим, нужно ограничить скорость для IP 192.168.88.50 до 10 Мбит/с входящего и исходящего трафика:
/queue simple add name="Limit-10M" target=192.168.88.50/32 max-limit=10M/10M
/queue simple add name="Interface-Limit" target=ether1 max-limit=100M/100M
/queue simple add name="Subnet-Limit" target=192.168.88.0/24 max-limit=50M/50M
192.168.88.0/24 будут ограничены до 50 Мбит/с./queue simple print stats
Считаем пакеты с помощью XDP и eBPF
Теперь разберём, как практически посчитать количество входящих пакетов на интерфейсе с помощью XDP.
1️⃣Установка инструментов
На Ubuntu или Debian потребуется установить eBPF-инструменты и библиотеку libbpf:
sudo apt update
sudo apt install clang llvm libbpf-dev linux-headers-$(uname -r) bpftool
#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>
struct {
__uint(type, BPF_MAP_TYPE_PERCPU_ARRAY);
__uint(max_entries, 1);
__type(key, u32);
__type(value, u64);
} pkt_cnt SEC(".maps");
SEC("xdp")
int xdp_counter(struct xdp_md *ctx) {
u32 key = 0;
u64 *value = bpf_map_lookup_elem(&pkt_cnt, &key);
if (value)
__sync_fetch_and_add(value, 1);
return XDP_PASS;
}
char LICENSE[] SEC("license") = "GPL";
clang -O2 -target bpf -c xdp_count.c -o xdp_count.o
sudo ip link set dev eth0 xdp obj xdp_count.o sec xdp
sudo bpftool net
sudo bpftool map dump id $(sudo bpftool map show | grep pkt_cnt | awk '{print $1}' | cut -d: -f1)sudo ip link set dev eth0 xdp off
Привязка DHCP к MAC (Static Lease)
В DHCP-сетях устройства обычно получают IP-адрес динамически из пула.
Иногда важно, чтобы конкретное устройство всегда получало один и тот же IP — например, сервер, принтер или VoIP-телефон.
/ip dhcp-server lease print
/ip dhcp-server lease add mac-address=AA:BB:CC:DD:EE:FF address=192.168.1.50 comment="Printer"
/ip dhcp-server lease print where address=192.168.1.50
/ip dhcp-server lease add mac-address=AA:BB:CC:DD:EE:FF address=192.168.1.50 server=dhcp1
IGMP Snooping для контроля мультикаст-трафика
IGMP (Internet Group Management Protocol) используется для управления членством устройств в мультикаст-группах IPv4.
Без контроля мультикаст-трафик будет рассылаться на все порты L2-сегмента, что создаёт ненужную нагрузку.
sudo ip link add name br0 type bridge
sudo ip link set dev eth1 master br0
sudo ip link set dev eth2 master br0
sudo ip link set br0 upsudo apt install igmpproxy
sudo nano /etc/igmpproxy.confphyint eth0 upstream ratelimit 0 threshold 1
phyint eth1 downstream
phyint eth2 downstreamsudo systemctl restart igmpproxy
sudo systemctl status igmpproxy
Вы знаете, что service mesh — решение, но мысль о внедрении пугает 🤯
Команда растёт, микросервисов всё больше, а трафик идёт не туда. Сбои становятся головоломкой, безопасность вызывает тревогу.
Мы понимаем эти боли. Поэтому приглашаем на онлайн-интенсив, на котором вы:
✅ Запустите service mesh: от установки Istio до работы с реальными сценариями.
✅ Получите рабочие практики: observability, traffic management, mTLS.
✅ Поймёте, как повысить надёжность и безопасность без переписывания кода.
✅ Научитесь находить и устранять узкие места в микросервисах.
✅ Разберёте типичные ошибки внедрения и подводные камни в реалиях рынка РФ.
Чтобы научиться быстро и безопасно внедрять service mesh, ждем вас тут 👈
📘 На Stepik вышел курс — «DevOps-инженер: От основ до продакшена»
Хотите автоматизировать деплой, управлять инфраструктурой как кодом и выстраивать надёжные CI/CD процессы? Этот курс — полный путь DevOps-инженера.
• CI/CD: Jenkins, GitLab CI/CD, GitHub Actions, стратегии развёртывания (Blue-Green, Canary), rollback
• Контейнеризация: Docker (образы, Compose, networking), Podman, оптимизация и безопасность контейнеров
• Kubernetes: архитектура, Pods, Services, Deployments, Helm, RBAC, Service Mesh (Istio/Linkerd)
• Infrastructure as Code: Terraform, Ansible (playbooks, vault), Packer, ArgoCD и Flux для GitOps
• Облака: AWS (EC2, EKS, Lambda), GCP, Azure, Yandex Cloud, cost optimization• Мониторинг: Prometheus, Grafana, ELK Stack, Jaeger, OpenTelemetry, SLI/SLO/SLA
• Безопасность: SAST/DAST, Vault, Zero Trust, Policy as Code, incident response
• Продакшен практики: High Availability, Disaster Recovery, Chaos Engineering, on-call management
🎓 Сертификат — добавьте в резюме или LinkedIn
🚀 Скидка 25%, действует 48 часов
👉 Пройти курс на Stepik
Обзор Cisco Identity Services Engine (ISE)
Cisco Identity Services Engine (ISE) — это платформа для управления доступом к сети, аутентификации пользователей и устройств, а также обеспечения политики безопасности на уровне сети.
ISE позволяет реализовать Network Access Control (NAC), управлять VLAN и политиками доступа для разных групп пользователей и устройств.
Реально, если ISE временно недоступен, пользователи, уже аутентифицированные, продолжают работать в сети, но новые подключения могут быть заблокированы, а политика доступа — не применяться.
Ограничение скорости пользователей через PCQ на MikroTik
В офисной или домашней сети иногда нужно делить интернет между пользователями так, чтобы никто не «съедал» весь канал.
Вместо того чтобы вручную создавать отдельные очереди для каждого IP, можно использовать PCQ — Per Connection Queue.
/queue type add name=PCQ_download kind=pcq pcq-classifier=dst-address pcq-rate=5M pcq-limit=50
/queue type add name=PCQ_upload kind=pcq pcq-classifier=src-address pcq-rate=2M pcq-limit=50
/queue simple add name="Office Download" target=192.168.1.0/24 max-limit=10M/10M queue=PCQ_download/PCQ_upload
/queue simple print
/queue simple monitor 0
Подсчёт пакетов с XDP на Linux
Иногда необходимо быстро понять, какой трафик проходит через интерфейс, и на каких портах возникают пиковые нагрузки.
XDP позволяет обрабатывать пакеты на самом низком уровне, почти до того, как они попадут в сетевой стек Linux.
В этой части покажем, как написать простую XDP-программу, которая будет подсчитывать UDP-пакеты на определённом интерфейсе.
1️⃣Установка инструментов:
sudo apt install clang llvm libbpfcc-dev linux-headers-$(uname -r) bpftool
#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>
struct bpf_map_def SEC("maps") port_count = {
.type = BPF_MAP_TYPE_HASH,
.key_size = sizeof(__u16),
.value_size = sizeof(__u64),
.max_entries = 1024,
};
SEC("xdp")
int count_udp_ports(struct xdp_md *ctx) {
void *data_end = (void *)(long)ctx->data_end;
void *data = (void *)(long)ctx->data;
struct ethhdr *eth = data;
if ((void*)(eth + 1) > data_end) return XDP_PASS;
if (eth->h_proto != htons(ETH_P_IP)) return XDP_PASS;
struct iphdr *ip = data + sizeof(*eth);
if ((void*)(ip + 1) > data_end) return XDP_PASS;
if (ip->protocol != IPPROTO_UDP) return XDP_PASS;
struct udphdr *udp = (void*)ip + ip->ihl*4;
if ((void*)(udp + 1) > data_end) return XDP_PASS;
__u16 port = udp->dest;
__u64 *value = bpf_map_lookup_elem(&port_count, &port);
__u64 one = 1;
if (value) __sync_fetch_and_add(value, 1);
else bpf_map_update_elem(&port_count, &port, &one, BPF_ANY);
return XDP_PASS;
}
char _license[] SEC("license") = "GPL";
clang -O2 -target bpf -c xdp_port_count.c -o xdp_port_count.o
sudo ip link set dev eth0 xdp obj xdp_port_count.o sec xdp
sudo bpftool map show
sudo bpftool map dump id <id_map>
Диагностика QinQ (двойных VLAN) на Linux
QinQ (или VLAN stacking) позволяет вложить клиентский VLAN (C-tag, inner) в провайдерский VLAN (S-tag, outer).
Это часто используется у операторов, когда нужно «пронести» несколько VLAN клиентов через магистраль.
Проверка пакетов с двойными тегами
Через tcpdump:
sudo tcpdump -i eth0 -nn -e vlan and vlan
ethertype 802.1Q (0x8100), VLAN 200, p 0, ethertype 802.1Q (0x8100), VLAN 100, p 0, IP 10.10.10.2 > 10.10.10.1
# Создаём подинтерфейс для outer VLAN
sudo ip link add link eth0 name eth0.200 type vlan id 200
# Добавляем inner VLAN (QinQ)
sudo ip link add link eth0.200 name eth0.200.100 type vlan id 100
# Настраиваем IP
sudo ip addr add 192.168.100.10/24 dev eth0.200.100
sudo ip link set eth0.200.100 up
ping -I eth0.200.100 192.168.100.1
Сравнение MPLS и VXLAN на Linux на практике
В чем тут цель вообще: создать тестовую сеть между двумя Linux-хостами и наглядно увидеть, как работают MPLS и VXLAN, чтобы понять плюсы и минусы каждого подхода для L2/L3 инкапсуляции.
1️⃣Настройка VXLAN
На обоих хостах создаём overlay-интерфейс:
# На хосте A
ip link add vxlan10 type vxlan id 10 dev eth0 dstport 4789
ip addr add 10.10.10.1/24 dev vxlan10
ip link set vxlan10 up
# На хосте B
ip link add vxlan10 type vxlan id 10 dev eth0 dstport 4789
ip addr add 10.10.10.2/24 dev vxlan10
ip link set vxlan10 up
ping 10.10.10.2
tcpdump -i vxlan10
# На обоих хостах
modprobe mpls_router
echo 1 > /proc/sys/net/mpls/conf/eth0/input
# На хосте A
ip link add name mpls0 type mpls
ip addr add 192.168.100.1/24 dev mpls0
ip link set mpls0 up
mpls label add 100 dev eth0
ip -f mpls route
ping 192.168.100.2
Хочешь ворваться в DevOps и наконец понять, как работают Kubernetes, Docker и CI/CD?
Ребята из Merion Academy (того самого Youtube-канала про IT), создали курс, который помогает не просто смотреть уроки, а реально учиться:
✔️ Грамотно подобранная программа курса.
✔️ Много практики.
✔️ Помогают разобраться с затыками.
✔️ Отдельно помогут с карьерой: как составить резюме, пройти собеседования и найти работу.
Что интересного в программе:
1. Построение CI/CD пайплайнов в GitLabCI и Jenkins
2. Настройка мониторинга с Zabbix, Prometheus и Grafana
3. Понимание DevSecOps, ZTNA, SASE, Defense in Depth
4. Работа с Docker, включая Docker Compose и Multistaging
5. Infrastructure-as-Code: Terraform и Ansible
5. Работа с хранилищем данных Redis
Какие технологии освоишь: Docker, Ansible, Grafana, Kubernetes, Terraform, Zabbix, ELK, Jenkins, Prometheus
Какие еще есть плюшки: у ребят очень доступные цены за счет того, что курс хоть и с ментором, но рассчитан на самостоятельное обучение – т.е. учишься в любое время, когда тебе удобно в образовательной платформе.
❇️ Первые 2 урока бесплатные — попробуй и реши, твое ли это.
Подробнее о курсе
Можно ли такое выпускать в прод?
От создателей: "Это, вообще, правильно? А у других как?”
Работа с Kubernetes — она такая. Вроде бы знаешь, как решить конкретную задачу, но когда возникают смежные проблемы с кучей нюансов — опереться не на что.
👉Именно для тех, кто увидел себя в этом — есть курс «Kubernetes Мега» от Слёрма.
После курса:
1️⃣Повысите экспертность в поддержке K8s кластеров
2️⃣Сможете уверенно перевести продукты компании на K8s
3️⃣Сможете претендовать на грейд выше, а зарплату бОООльше
8 недель углубленного администрирования Kubernetes, чтобы уверенно управлять кластерами, настраивать сеть, разруливать инциденты и держать инфраструктуру под контролем.
Старт – 27 октября
Подробности — по ссылке⬅️
OSPF Cost для балансировки нагрузки между несколькими линками
Иногда в сети есть несколько путей к одному и тому же префиксу, и хочется, чтобы трафик распределялся правильно.
interface GigabitEthernet0/1
ip ospf cost 10
interface GigabitEthernet0/2
ip ospf cost 20
/routing ospf interface
set [ find interface="ether1" ] cost=10
set [ find interface="ether2" ] cost=20
Ты сказал, что ты шаришь в этой теме! 🐧
А за Ansible шаришь? 😏
Один пропущенный шаг — и конфигурация ломается. Члены команды выполняют задачи по-своему, документация не помогает. Добавление новых серверов — это боль и часы работы 👎
Ограничиваем скорость на MikroTik
В сетях часто требуется контролировать пропускную способность отдельных устройств или сервисов. Это важно для:
⏺Предотвращения перегрузки сети.
⏺Тестирования сетевых приложений.
⏺Реализации базового QoS без сложных схем.
На MikroTik для этих целей используется система Queue, которая позволяет ограничивать скорость по IP, диапазону адресов или на уровне интерфейса.
🔥 БЕСПЛАТНЫЙ КУРС ПО СОЗДАНИЮ НЕЙРО-СОТРУДНИКОВ НА GPT И ДРУГИХ LLM 🔥
Ищете практический и углубленный курс, чтобы освоить создание нейро-сотрудников? Мы создали курс из 5 объемных занятий. Это именно то, что нужно, чтобы прокачать свои навыки абсолютно бесплатно!
📌 Темы занятий:
1. Введение в мир нейро-сотрудников
2. Как работают LLM и их аналоги
3. Создание базы знаний для нейро-сотрудника (RAG)
4. Тестирование и отладка нейро-сотрудников
5. Интеграция нейро-сотрудников в Production
Вот 5 тем курса - он максимально простой и доступный, общеобразовательный, без какого-либо сложного программирования 📚Прохождение этого курса, скорее всего, займет у вас от 1 до 3 часов
🤖 Присоединяйтесь к нашему бесплатному курсу и разберитесь в этой увлекательной теме с нами!
Встречайте AIOps в INFRAX — виртуального инженера, который работает прямо внутри карточки инцидента:
- анализирует логи,
- предлагает команды,
- помогает устранять неполадки быстрее и надёжнее.
🔐 Все действия прозрачны и безопасны: журналируются в инциденте и выполняются строго в рамках ваших политик доступа.
Что такое INFRAX? Это:
🖥 Мультиметричный мониторинг — CPU, память, диски, трафик, доступность узлов, интерактивные графики и гибкие алерты.
🎫 Helpdesk — управление тикетами, статусы, приоритеты, исполнители и комментарии, портал самообслуживания для пользователей.
🤖 Автоматизация — агенты для Windows/Linux, запуск скриптов по расписанию, планировщик задач, автодетект узлов.
🔐 Удалённые подключения — RDP, SSH, VNC прямо из веба или нативных клиентов, видеозапись сессий для аудита.
📚 База знаний — статьи, категории, контроль публикаций, статистика по популярности.
👥 Управление пользователями — детальная система прав, интеграция с IAM, аудит действий, изоляция данных.
📊 Дашборды — мониторинг, техподдержка, удалённые подключения с realtime-обновлением.
🔥 Infrax — это ситуационный центр вашей ИТ-инфраструктуры. Всё, что нужно для стабильной и безопасной работы сервисов, в одном решении.
#реклама
О рекламодателе
Сегментация L2-сети с Private VLAN
В крупных или средних сетях бывает нужно, чтобы устройства в одном VLAN не могли напрямую общаться друг с другом, но при этом им был доступен шлюз в интернет или к сервисам.
Как работает Private VLAN
Private VLAN (PVLAN) — это расширение обычного VLAN, которое позволяет разделять трафик на уровне канального слоя:
⏺Promiscuous port — порт, который может общаться со всеми. Обычно это шлюз или маршрутизатор.
⏺Isolated port — порт, который может общаться только с promiscuous портом, но не с другими isolated портами.
⏺Community port — порты внутри одной группы могут общаться друг с другом и с promiscuous портом, но не с портами другой community.
Так можно изолировать клиентов, оставляя при этом доступ к общим ресурсам.
Практикуемся на Linux с bridge и VLAN
Создадим bridge с PVLAN-подобной логикой:
# Создаём главный bridge
ip link add name br0 type bridge
ip link set br0 up
# Создаём VLAN-подсети
ip link add link br0 name br0.10 type vlan id 10
ip link add link br0 name br0.20 type vlan id 20
ip link set br0.10 up
ip link set br0.20 up
# Настраиваем iptables, чтобы isolated VLAN не видел друг друга
iptables -I FORWARD -i br0.10 -o br0.10 -j DROP
iptables -I FORWARD -i br0.20 -o br0.20 -j DROP
# Разрешаем доступ к шлюзу (eth0)
iptables -A FORWARD -i br0.10 -o eth0 -j ACCEPT
iptables -A FORWARD -i br0.20 -o eth0 -j ACCEPT
Настройка NTP-синхронизации на MikroTik
Для корректной работы журналов, сертификатов и сетевых сервисов крайне важно, чтобы время на всех устройствах в сети совпадало.
Даже расхождение в несколько минут может привести к ошибкам аутентификации или сбоям в логах.
❌ NTP (Network Time Protocol) — это протокол синхронизации времени по сети. Он использует иерархию уровней (stratum), где:
⏺Stratum 1 — это серверы, синхронизированные напрямую с атомными часами или GPS.
⏺Stratum 2+ — устройства, которые получают время от вышестоящих серверов.
Клиенты обращаются к ближайшему NTP-серверу, получают точное время и корректируют свои локальные часы.
На MikroTik это можно сделать встроенными средствами — пакетом system ntp client.
Настройка NTP Client на MikroTik
/system ntp client set enabled=yes \
primary-ntp=0.pool.ntp.org \
secondary-ntp=1.pool.ntp.org
/system clock print
/system ntp client print
/tool ntp client monitor
/system ntp server set enabled=yes broadcast=yes manycast=yes
Настроим DHCP Relay на Cisco
Когда клиенты находятся в разных VLAN, но DHCP-сервер — в одной общей сети, прямые broadcast-запросы до него не доходят.
В этом случае используется DHCP Relay (или IP Helper), который пересылает DHCP-запросы на сервер через маршрутизатор.
Как это работает
Клиент отправляет DHCP Discover в виде широковещательного пакета (broadcast) в своей VLAN.
192.168.10.0/24192.168.100.5 (в другой сети)# Настраиваем интерфейс VLAN 10
interface vlan 10
ip address 192.168.10.1 255.255.255.0
ip helper-address 192.168.100.5
no shutdown
# Проверяем
show ip interface vlan 10
show ip helper-address
ipconfig /renew
debug ip dhcp server packet
show ip dhcp binding
OSPF на MikroTik с одной Area
OSPF (Open Shortest Path First) — протокол динамической маршрутизации, который быстро адаптируется к изменениям сети.
Даже в небольшой сети полезно объединять несколько подсетей в одну OSPF-область (Area 0), чтобы маршруты автоматически распространялись между роутерами.
⏺Настройка на MikroTik
Задаём Router ID и включаем OSPF:
/routing ospf instance set default router-id=1.1.1.1
/routing ospf network add network=192.168.10.0/24 area=backbone
/routing ospf network add network=192.168.20.0/24 area=backbone
/routing ospf neighbor print
/ip route print
BGP Route Reflector на Cisco: уменьшение количества iBGP-сессий
В больших автономных системах прямое соединение между всеми iBGP-пирами быстро становится неудобным: количество сессий растёт как n(n-1)/2.
Route Reflector (RR) решает эту проблему — маршрутизатор принимает маршруты от iBGP-пиров и рассылает их другим пирами внутри AS.
router bgp 65000
neighbor 10.0.12.1 remote-as 65000
neighbor 10.0.12.1 route-reflector-client
neighbor 10.0.12.2 remote-as 65000
neighbor 10.0.12.2 route-reflector-client
router bgp 65000
neighbor 10.0.12.254 remote-as 65000
10.0.12.254 — IP RR1. Настройка route-reflector-client указывает, что пир является клиентом RR.show ip bgp summary ! Проверка установленных сессий
show bgp ipv4 unicast ! Смотрим распространённые маршруты
ping <сеть_клиента> ! Проверяем reachability между клиентами
Linux XDP и подсчёт пакетов
XDP (eXpress Data Path) — это механизм обработки пакетов на самом низком уровне сетевого драйвера Linux.
Например, подсчёт UDP-пакетов на определённом порту для мониторинга VoIP, игровых серверов или тестирования сетевых приложений.
Проверка VLAN-тегов в сети
Когда трафик не проходит через свичи или маршрутизаторы, одна из частых причин — ошибка в настройке VLAN. Пакеты могут теряться, если:
⏺порт настроен как access, а мы отправляем трафик с тегами;
⏺тег VLAN не совпадает с конфигурацией на другом конце;
⏺свич отбрасывает кадры из «неразрешённого» VLAN.
Смотрим теги через tcpdump
sudo tcpdump -i eth0 -nn -e vlan
12:30:45.123456 ethertype 802.1Q (0x8100), VLAN 100, IP 192.168.10.2 > 192.168.10.1: ICMP echo request
sudo tcpdump -i eth0 vlan 200
sudo arping -I eth0.100 192.168.100.1
sudo ip link add link eth0 name eth0.100 type vlan id 100
sudo ip addr add 192.168.100.10/24 dev eth0.100
sudo ip link set eth0.100 up