networkadm | Unsorted

Telegram-канал networkadm - Network Admin

12610

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

Subscribe to a channel

Network Admin

Считаем пакеты с помощью XDP и eBPF

Теперь разберём, как практически посчитать количество входящих пакетов на интерфейсе с помощью XDP.

1️⃣Установка инструментов

На Ubuntu или Debian потребуется установить eBPF-инструменты и библиотеку libbpf:

sudo apt update
sudo apt install clang llvm libbpf-dev linux-headers-$(uname -r) bpftool


2️⃣ Минимальный XDP-пример

Создаём файл xdp_count.c — простейшая программа, которая считает пакеты, приходящие на интерфейс.

#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";


Эта программа увеличивает счётчик на 1 при каждом входящем пакете.

3️⃣ Компиляция

clang -O2 -target bpf -c xdp_count.c -o xdp_count.o


4️⃣Загрузка на интерфейс

Подключаем программу к интерфейсу (например, eth0):

sudo ip link set dev eth0 xdp obj xdp_count.o sec xdp


Проверяем статус:

sudo bpftool net


5️⃣ Просмотр счётчиков

Чтобы посмотреть накопленные значения:

sudo bpftool map dump id $(sudo bpftool map show | grep pkt_cnt | awk '{print $1}' | cut -d: -f1)


Каждый CPU имеет свой счётчик (из-за PERCPU_ARRAY), поэтому значения нужно суммировать.

6️⃣Удаление программы

sudo ip link set dev eth0 xdp off


N.A. ℹ️ Help

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

Network Admin

Привязка DHCP к MAC (Static Lease)

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

Иногда важно, чтобы конкретное устройство всегда получало один и тот же IP — например, сервер, принтер или VoIP-телефон. 


Для этого используют Static Lease — статическое назначение адреса по MAC-адресу.

Зачем это нужно:
Гарантия постоянного IP для сервисов, где важна маршрутизация, NAT или firewall.
Упрощение мониторинга сети — легко идентифицировать устройство по IP.
Уменьшение ошибок в настройках DNS, Port Forwarding и VPN.

DHCP-сервер «запоминает» MAC-адрес устройства и всегда выдаёт ему один и тот же IP из пула, независимо от того, какой адрес был свободен в момент запроса.

Практика на MikroTik

1️⃣Просмотр текущих аренды DHCP:

/ip dhcp-server lease print


Вы увидите список всех клиентов с IP, MAC и статусом.

2️⃣ Добавление статической аренды:

/ip dhcp-server lease add mac-address=AA:BB:CC:DD:EE:FF address=192.168.1.50 comment="Printer"


• mac-address — MAC-адрес устройства.
• address — IP, который нужно закрепить.
• comment — для удобства.

3️⃣ Проверка:

/ip dhcp-server lease print where address=192.168.1.50


Если устройство уже подключено — оно получит этот IP сразу. Если нет — при следующем запросе DHCP.

4️⃣ Опционально — резервирование с привязкой к интерфейсу:

/ip dhcp-server lease add mac-address=AA:BB:CC:DD:EE:FF address=192.168.1.50 server=dhcp1


N.A. ℹ️ Help

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

Network Admin

IGMP Snooping для контроля мультикаст-трафика

IGMP (Internet Group Management Protocol) используется для управления членством устройств в мультикаст-группах IPv4.

Без контроля мультикаст-трафик будет рассылаться на все порты L2-сегмента, что создаёт ненужную нагрузку. 


IGMP Snooping позволяет коммутатору «слушать» сообщения IGMP и направлять мультикаст-трафик только на порты, где есть подписчики.

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

Когда устройство хочет получать трафик определённой мультикаст-группы, оно отправляет IGMP Join.

Коммутатор с включённым snooping отслеживает эти сообщения и формирует таблицу портов для каждой группы.

Практика на Linux с bridge и igmpproxy

1️⃣Создаём bridge с несколькими интерфейсами:

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 up


2️⃣Устанавливаем igmpproxy для управления потоками:

sudo apt install igmpproxy
sudo nano /etc/igmpproxy.conf


Пример конфигурации: eth0 — аплинк (интернет/источник), eth1 и eth2 — локальные сети:

phyint eth0 upstream ratelimit 0 threshold 1
phyint eth1 downstream
phyint eth2 downstream


3️⃣Запускаем:

sudo systemctl restart igmpproxy
sudo systemctl status igmpproxy


После этого мультикаст-трафик будет идти только на порты, где есть подписчики.

N.A. ℹ️ Help

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

Network Admin

Вы знаете, что service mesh — решение, но мысль о внедрении пугает 🤯

Команда растёт, микросервисов всё больше, а трафик идёт не туда. Сбои становятся головоломкой, безопасность вызывает тревогу.

Мы понимаем эти боли. Поэтому приглашаем на онлайн-интенсив, на котором вы:

✅ Запустите service mesh: от установки Istio до работы с реальными сценариями.

✅ Получите рабочие практики: observability, traffic management, mTLS.

✅ Поймёте, как повысить надёжность и безопасность без переписывания кода.

✅ Научитесь находить и устранять узкие места в микросервисах.

✅ Разберёте типичные ошибки внедрения и подводные камни в реалиях рынка РФ.

Чтобы научиться быстро и безопасно внедрять service mesh, ждем вас тут 👈

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

Network Admin

📘 На 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

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

Network Admin

Обзор Cisco Identity Services Engine (ISE)

Cisco Identity Services Engine (ISE) — это платформа для управления доступом к сети, аутентификации пользователей и устройств, а также обеспечения политики безопасности на уровне сети.

ISE позволяет реализовать Network Access Control (NAC), управлять VLAN и политиками доступа для разных групп пользователей и устройств.


Первая версия Cisco ISE вышла в 2009 году и с тех пор активно развивается, поддерживая интеграцию с облачными сервисами, 802.1X и BYOD (Bring Your Own Device) сценариями.

Основные протоколы и стандарты

ISE поддерживает широкий спектр протоколов:

SCEP (Simple Certificate Enrollment Protocol) – автоматическое получение сертификатов для устройств.
RADIUS (Remote Authentication Dial-In User Service) – основной протокол для аутентификации и авторизации пользователей.

TACACS+ – для централизованного управления доступом к сетевым устройствам.
802.1X – стандарт порт-уровневой аутентификации для проводных и беспроводных сетей.
SNMP – мониторинг и интеграция с системами управления.

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

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

Реально, если ISE временно недоступен, пользователи, уже аутентифицированные, продолжают работать в сети, но новые подключения могут быть заблокированы, а политика доступа — не применяться.


Платформа работает на базе Linux с веб-интерфейсом для администрирования и CLI для глубокой настройки.

Основные интерфейсы ISE

1️⃣ Administration – настройка политик доступа, профилей устройств и интеграции с внешними каталогами (Active Directory, LDAP).
2️⃣ Monitoring – мониторинг аутентификации, подключения устройств и журналирование событий безопасности.
3️⃣ Policy Service Nodes (PSN) – распределённые узлы, обрабатывающие RADIUS-запросы и применяющие политики.
4️⃣ pxGrid – платформа для интеграции с другими системами безопасности и обмена контекстной информацией.
5️⃣ Deployment & Maintenance – управление обновлениями, сертификатами, бэкап и восстановление конфигурации.

Дополнительно можно использовать CLI для проверки состояния системы, диагностики RADIUS-сессий и просмотра логов.

N.A. ℹ️ Help

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

Network Admin

Ограничение скорости пользователей через PCQ на MikroTik

В офисной или домашней сети иногда нужно делить интернет между пользователями так, чтобы никто не «съедал» весь канал.

Вместо того чтобы вручную создавать отдельные очереди для каждого IP, можно использовать PCQ — Per Connection Queue. 


Он автоматически создаёт виртуальные очереди для каждого клиента и справедливо распределяет пропускную способность.

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

PCQ делит канал по IP (или по src/dst), выделяя каждому пользователю определённую скорость. При этом общий лимит подсети соблюдается, а администратору не нужно вручную создавать десятки правил.

Создаём тип очереди для загрузки и отдачи:

/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


Теперь каждому устройству в подсети автоматически выделяется до 5 Мбит/с на загрузку и 2 Мбит/с на отдачу, при этом общий лимит на сеть не превышает 10 Мбит/с.

N.A. ℹ️ Help

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

Network Admin

Подсчёт пакетов с XDP на Linux

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

XDP позволяет обрабатывать пакеты на самом низком уровне, почти до того, как они попадут в сетевой стек Linux.

В этой части покажем, как написать простую XDP-программу, которая будет подсчитывать UDP-пакеты на определённом интерфейсе.

1️⃣Установка инструментов:

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


2️⃣ Создание минимальной XDP-программы на C (xdp_port_count.c) для подсчёта UDP-пакетов:

#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";


3️⃣ Компиляция и загрузка на интерфейс:

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


4️⃣ Проверка статистики:

sudo bpftool map show
sudo bpftool map dump id <id_map>


• <id_map> — ID карты с подсчётом пакетов.
• Вы увидите, сколько пакетов прошло через каждый UDP-порт.

N.A. ℹ️ Help

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

Network Admin

Диагностика 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


Первый vlan фильтрует внешний тег (S-tag), второй — внутренний (C-tag). В выводе будет видно:

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


Здесь:
• VLAN 200 — внешний (S-tag),
• VLAN 100 — внутренний (C-tag).

Создание QinQ-интерфейса на Linux

Допустим, нужно поднять интерфейс для VLAN 200 поверх VLAN 100:

# Создаём подинтерфейс для 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


Теперь весь трафик с этого интерфейса будет уходить с двумя тегами: 200 (outer) и 100 (inner).

Проверка доступности

ping -I eth0.200.100 192.168.100.1


Если ответ пришёл — QinQ работает по всей цепочке.

N.A. ℹ️ Help

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

Network Admin

Как спустить миллионы ИТ-бюджета на апдейт серверной впустую? Да легко!

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

А вот чтобы избежать такого провала - надо решать эту задачу с надежным партнером-интегратором, который делал это уже не раз, как Константин Сизов.

Константин работает в ИТ невообразимых 17 лет, и всё это время строит серверные инфраструктуры. Да ещё и защищает их от киберугроз. Сразу. By design.

В своем блоге «Давайте об IT» он простыми словами рассказывает о том как построить у себя крутую серверную инфраструктуру и делится реальным опытом импортозамещения в ЦОДе.

Так что подписывайтесь прямо сейчас, такой полезный опыт и такую живую подачу редко встретишь:
@lets_about_it

#реклама
О рекламодателе

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

Network Admin

🔥dad_admin&utm_term=phystech">Прими участие в Хакатоне от ИТ-холдинга Т1 в Новосибирске и поборись за призовой фонд 800 000 рублей!

Когда: 23–26 октября
Формат: онлайн + финал на площадке

Участвуй, если ты:
🔹обучаешься на технической или ИТ-специальности;
🔹развиваешься в направлении разработки, аналитики, CV, ML или DevOps;
🔹сможешь быть в Новосибирске 26 октября.

Выбери свой кейс:

✴️Цифровой дресс-код: фон, который выделяет вас. Создай локальный ML-модуль сегментации видео и генератор персонализированных фонов.

✴️CodeMetrics: метрики, которые помогают расти. Разработай систему автооценки эффективности команд через анализ Git-метрик.


Почему стоит участвовать:
🔘Кейс в портфолио и полезная обратная связь от менторов Т1;
🔘Шанс проявить себя, чтобы начать карьеру в одной из крупнейших ИТ-компаний;
🔘Реальный опыт командной работы;
🔘Мерч и атмосфера сильного комьюнити — в Т1 более 5 000 джунов из 580+ вузов России и Беларуси.

Регистрация открыта!
➡️ Успей до 21 октября по dad_admin&utm_term=phystech">ссылке.

erid: 2Vtzqwmd32u

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

Network Admin

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

Homo Manifestans — канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам 🤗

✓ Как научиться отвлекаться от работы и отдыхать?
✓ Как совместить кучу рабочих задач и время с семьей?
✓ Как справиться с прокрастинацией?
✓ Как не растерять запал, даже если начальник и коллеги 💩 и кажется, что ничего не выходит?

Подписывайтесь на канал @vadimpetrovpsi и научитесь работать без упахивания, выгорания и ущерба для личной жизни!

Псс. Заходите в закреп — там много полезного, и даже бесплатный мини-курс по выходу из апатии:
👉 /channel/+kAvguZoxBUM2ZGYy

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

Network Admin

Классическая виртуализация и контейнеры под управлением Kubernetes

Команда Deckhouse выпустила релиз платформы виртуализации (Deckhouse Virtualization Platform) версии 1.0, готовой к самым требовательным продакшен-нагрузкам. В основе платформы лежит KubeVirt. Был переработан сетевой стек и повышена производительность, добавлена полноценная система мониторинга, а вся сложность скрыта «под капотом».

DVP закрывает ключевые требования для реального продакшена:
— поддержка VLAN, сетевая мультитенантность и несколько интерфейсов для одной ВМ;
— высокая доступность. Живая миграция между узлами кластера без остановки;
— бэкапы и экспорт дисков без агентов внутри гостевой ОС;
— управление через API или интуитивный веб-интерфейс.

Протестировать DVP можно бесплатно в Open Source-платформе DKP CE. Она позволяет управлять через веб-интерфейс до 1000 серверов и 50 000 виртуальных машин, поддерживая основные типы хранилищ (NFS, Ceph и др.).

Для решения enterprise-задач рекомендуем получить консультацию на сайте.

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

Network Admin

Мониторинг реального PPS (Packets Per Second) на Linux

Когда мы думаем о производительности сети, обычно смотрим на Mbps или Gbps.

Но для диагностики и оптимизации сетевых интерфейсов не менее важен PPS — количество пакетов в секунду, которое проходит через сетевую карту.

Особенно критично для систем с высокой нагрузкой: VoIP, микросервисы, сетевые функции (NFV) или DPDK-приложения.

Простые способы мониторинга

1️⃣ethtool — статусы NIC

ethtool -S eth0 | grep -i pack

Выведет счётчики, включая rx_packets и tx_packets. Снимайте их с интервалом в секунду, чтобы видеть PPS:

watch -n 1 "ethtool -S eth0 | grep -i pack"


2️⃣ifconfig / ip -s link — базовая проверка

ip -s link show eth0


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

3️⃣sar для долгого наблюдения

sudo apt install sysstat
sar -n DEV 1 10


Выводит статистику по интерфейсам каждую секунду, включая PPS.

4️⃣tcpdump для детальной проверки отдельных потоков: Если интересно PPS только по конкретному порту или протоколу:

sudo tcpdump -i eth0 udp port 5060 -nn -c 1000


Можно измерить время обработки пакетов и вычислить PPS.

N.A. ℹ️ Help

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

Network Admin

Простой rate-limit на Linux с помощью tc

Иногда нужно ограничить скорость — например, чтобы протестировать приложение при «медленном интернете» или эмулировать канал клиента.

Делается это очень просто через встроенный в Linux traffic control (tc).

Настройка TBF (Token Bucket Filter)

Допустим, у нас есть интерфейс eth0, и мы хотим ограничить его до 10 Мбит/с:

# Очистим старые правила
sudo tc qdisc del dev eth0 root 2>/dev/null

# Задаем ограничение
sudo tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms


rate — скорость канала (10mbit).
burst — размер «пакета» токенов (32kbit, чем больше — тем плавнее).
latency — максимальная задержка в буфере.

Проверка

Посмотреть текущее состояние очереди:

tc -s qdisc show dev eth0


Тестируем скорость любым способом, например через iperf3 или wget.

Удаление лимита

sudo tc qdisc del dev eth0 root


N.A. ℹ️ Help

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

Network Admin

🔥 БЕСПЛАТНЫЙ КУРС ПО СОЗДАНИЮ НЕЙРО-СОТРУДНИКОВ НА GPT И ДРУГИХ LLM 🔥

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

📌 Темы занятий:
1. Введение в мир нейро-сотрудников
2. Как работают LLM и их аналоги
3. Создание базы знаний для нейро-сотрудника (RAG)
4. Тестирование и отладка нейро-сотрудников
5. Интеграция нейро-сотрудников в Production

Вот 5 тем курса - он максимально простой и доступный, общеобразовательный, без какого-либо сложного программирования 📚Прохождение этого курса, скорее всего, займет у вас от 1 до 3 часов

🤖 Присоединяйтесь к нашему бесплатному курсу и разберитесь в этой увлекательной теме с нами!

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

Network Admin

Встречайте AIOps в INFRAX — виртуального инженера, который работает прямо внутри карточки инцидента:

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

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

Что такое INFRAX? Это:

🖥 Мультиметричный мониторинг — CPU, память, диски, трафик, доступность узлов, интерактивные графики и гибкие алерты.

🎫 Helpdesk — управление тикетами, статусы, приоритеты, исполнители и комментарии, портал самообслуживания для пользователей.

🤖 Автоматизация — агенты для Windows/Linux, запуск скриптов по расписанию, планировщик задач, автодетект узлов.

🔐 Удалённые подключения — RDP, SSH, VNC прямо из веба или нативных клиентов, видеозапись сессий для аудита.

📚 База знаний — статьи, категории, контроль публикаций, статистика по популярности.

👥 Управление пользователями — детальная система прав, интеграция с IAM, аудит действий, изоляция данных.

📊 Дашборды — мониторинг, техподдержка, удалённые подключения с realtime-обновлением.

🔥 Infrax — это ситуационный центр вашей ИТ-инфраструктуры. Всё, что нужно для стабильной и безопасной работы сервисов, в одном решении.

#реклама
О рекламодателе

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

Network Admin

Сегментация 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


Теперь устройства внутри VLAN 10 и VLAN 20 изолированы друг от друга, но могут использовать интернет через общий шлюз.

N.A. ℹ️ Help

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

Network Admin

Настройка 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


Если всё корректно, появится строка synchronized: yes.

Настройка NTP Server (если MikroTik — источник времени)

/system ntp server set enabled=yes broadcast=yes manycast=yes


N.A. ℹ️ Help

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

Network Admin

Настроим DHCP Relay на Cisco

Когда клиенты находятся в разных VLAN, но DHCP-сервер — в одной общей сети, прямые broadcast-запросы до него не доходят.

В этом случае используется DHCP Relay (или IP Helper), который пересылает DHCP-запросы на сервер через маршрутизатор.

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

Клиент отправляет DHCP Discover в виде широковещательного пакета (broadcast) в своей VLAN.


Маршрутизатор (или Layer 3 коммутатор) принимает этот пакет и, если настроен DHCP Relay, пересылает его как unicast на IP-адрес сервера.

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

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

Пример:
• VLAN 10 — сеть клиентов 192.168.10.0/24
• DHCP-сервер — 192.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


На Cisco:

debug ip dhcp server packet
show ip dhcp binding


Если всё работает, маршрутизатор будет транслировать DHCP Discover → Offer → Request → ACK между клиентом и сервером.

N.A. ℹ️ Help

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

Network Admin

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


Добавляем сети, которые будут участвовать в OSPF:

/routing ospf network add network=192.168.10.0/24 area=backbone
/routing ospf network add network=192.168.20.0/24 area=backbone


Проверяем соседей OSPF:

/routing ospf neighbor print


Проверяем таблицу маршрутизации, чтобы убедиться, что маршруты из соседних сетей доступны:

/ip route print


N.A. ℹ️ Help

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

Network Admin

BGP Route Reflector на Cisco: уменьшение количества iBGP-сессий

В больших автономных системах прямое соединение между всеми iBGP-пирами быстро становится неудобным: количество сессий растёт как n(n-1)/2.

Route Reflector (RR) решает эту проблему — маршрутизатор принимает маршруты от iBGP-пиров и рассылает их другим пирами внутри AS.


RR делит iBGP-пиры на клиентов и неклиентов. Клиенты отправляют свои маршруты RR, а RR отражает их другим клиентам.

Из органичений один RR может стать точкой отказа, нужно использовать cluster-id для предотвращения петель, RR не генерирует маршруты самостоятельно.

Практика

Топология: RR1 как Route Reflector, R1 и R2 — клиенты.

На RR1:

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


На R1 и R2:

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 между клиентами


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

N.A. ℹ️ Help

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

Network Admin

Linux XDP и подсчёт пакетов

XDP (eXpress Data Path) — это механизм обработки пакетов на самом низком уровне сетевого драйвера Linux. 


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

Основные преимущества XDP:
Обработка пакетов почти без нагрузки на CPU.
Возможность фильтровать или модифицировать пакеты «на лету».
Подходит для мониторинга, защиты от DDoS, QoS и анализа трафика.

XDP использует eBPF-программы, которые загружаются в ядро. Эти программы работают в защищённой среде, могут обновлять карты (maps) со счётчиками, хранить статистику или даже блокировать трафик.

Например, подсчёт UDP-пакетов на определённом порту для мониторинга VoIP, игровых серверов или тестирования сетевых приложений. 


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

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

N.A. ℹ️ Help

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

Network Admin

Проверка VLAN-тегов в сети

Когда трафик не проходит через свичи или маршрутизаторы, одна из частых причин — ошибка в настройке VLAN. Пакеты могут теряться, если:

порт настроен как access, а мы отправляем трафик с тегами;
тег VLAN не совпадает с конфигурацией на другом конце;
свич отбрасывает кадры из «неразрешённого» VLAN.

Смотрим теги через tcpdump

sudo tcpdump -i eth0 -nn -e vlan


• -e — выводит Ethernet-заголовок;
• vlan — фильтрует кадры с тегами 802.1Q.

Пример:

12:30:45.123456 ethertype 802.1Q (0x8100), VLAN 100, IP 192.168.10.2 > 192.168.10.1: ICMP echo request


Здесь видно, что кадр принадлежит VLAN 100.

Проверка конкретного VLAN

sudo tcpdump -i eth0 vlan 200


Покажет только кадры из VLAN 200. Полезно, чтобы убедиться, что нужный VLAN действительно идёт по линку.

Тест с arping

Можно проверить связность внутри VLAN:

sudo arping -I eth0.100 192.168.100.1


Здесь eth0.100 — подинтерфейс, созданный для VLAN 100. Если ответ есть, значит VLAN на этом пути работает.

Создание VLAN-интерфейса в Linux

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


Теперь можно тестировать трафик напрямую по этому VLAN.

N.A. ℹ️ Help

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

Network Admin

Виртуализация – зачем она нужна?

Современные серверы и рабочие станции часто используют лишь 15-20% своих ресурсов.

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


Решение? Виртуализация.

Она позволяет максимально эффективно использовать вычислительные ресурсы, сокращая расходы на оборудование и поддержку. Существует несколько основных направлений:
Виртуализация серверов – позволяет запускать несколько виртуальных машин на одном физическом сервере, снижая затраты на оборудование и повышая отказоустойчивость.
Виртуализация рабочих станций (VDI) – дает возможность работать с операционной системой из любой точки мира и значительно упрощает управление IT-инфраструктурой.
Облачные серверы (IaaS) – позволяют арендовать мощность в облаке вместо покупки собственного оборудования.

Пример: Если раньше бизнесу требовалось 20 серверов, то с виртуализацией можно обойтись всего 4-мя, при этом сохранив тот же уровень производительности.

N.A. ℹ️ Help

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

Network Admin

Отслеживание и анализ ARP-трафика с tcpdump

Чтобы понять, как ARP-запросы и ответы реально ходят по сети, можно использовать tcpdump.

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

Примеры:

Смотрим все ARP-пакеты на интерфейсе eth0:

sudo tcpdump -i eth0 arp


Вы увидите, кто кому отправляет запросы и кто отвечает, с указанием MAC и IP.

Фильтруем только запросы к конкретному IP:

sudo tcpdump -i eth0 arp and dst host 192.168.1.1


Сочетание arping и tcpdump позволяет:
увидеть, что ARP-запрос действительно ушёл с вашего хоста;
проверить, что сосед отвечает корректно;
диагностировать проблемы с VLAN или портами свича;
локализовать «мертвые» участки сети на L2 без перехода на IP-уровень.

N.A. ℹ️ Help

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

Network Admin

ARPing для диагностики сетевых проблем

Обычный ping работает на уровне IP, но если есть подозрение, что проблема на канальном уровне (L2), пригодится arping.

Он напрямую отправляет ARP-запросы и показывает, отвечает ли сосед своим MAC-адресом.

Примеры использования:

Проверка доступности соседа по Ethernet:

arping -I eth0 192.168.1.1


Покажет MAC-адрес устройства, ответившего на запрос.

Проверка IP-конфликтов (detector mode):

arping -I eth0 -D 192.168.1.10


Если кто-то ещё использует этот IP, сразу получим ответ.

Послать фиксированное количество запросов:

arping -c 5 -I eth0 192.168.1.1


Посмотреть ARP-ответы в реальном времени, как своего рода «трассировку на L2»:

arping -I eth0 -f 192.168.1.1


N.A. ℹ️ Help

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

Network Admin

Быстрая проверка RPF (reverse path filtering)

Linux иногда «мешает» при тестах, когда трафик приходит на один интерфейс, а ответ уходит через другой.

Причина часто в включённом RPF — ядро проверяет, совпадает ли путь ответа с интерфейсом, на котором пришёл пакет. 


Если нет, пакет отбрасывается. Это полезно для защиты от spoofing, но при сложных тестах или multi-homing может мешать.

Проверить текущее состояние можно так:

cat /proc/sys/net/ipv4/conf/all/rp_filter
cat /proc/sys/net/ipv4/conf/eth0/rp_filter


Значения:
0 — выключен (RPF off, пакеты принимаются, даже если ответ уходит другим интерфейсом)
1 — strict (по умолчанию, Linux ждёт, что обратный маршрут идёт через тот же интерфейс)
2 — loose (важно только, чтобы маршрут существовал, не важно через какой интерфейс)

🛠️ Временно отключить для интерфейса:

sysctl -w net.ipv4.conf.eth0.rp_filter=0


Для постоянного эффекта — добавить в /etc/sysctl.conf.

N.A. ℹ️ Help

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

Network Admin

Собрали топ-30 бесплатных курсов для Python-разработчиков 🐍

Эксперты Академии Selectel собрали более 30 онлайн-программ для IT-специалистов с тестами и заданиями для проверки знаний. Среди них вы найдете:

🔹 обучающие подборки по программированию на Go и JavaScript;
🔹 гайды и инструкции для создания собственных pet-проектов на Python, Flask и Django;
🔹 курсы для тех, кто хочет освоить новый навык — Linux или работу с PostgreSQL: в процессе учебы вы получите промокод для практики в панели управления Selectel, а после — сертификат о прохождении.

Курсы доступны в любое время, проходите их в комфортном темпе. А главное — все бесплатные!

Выберите нужную программу и начните обучение прямо сейчас ➡️

Реклама. АО "Селектел". erid:2W5zFGhpZFW

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

Network Admin

В нашем канале нет историй про вайти вайти за 2 недели и зарплату 300к/наносек.

Только свежие мемы, костыли и коллективная терапия от Двоичного Кота.

Если узнал себя, то ты знаешь, что делать (подписаться).

Если не узнал, то тоже подпишись. 😌

🐱 /start @binarcat

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