sFlow — это потоковая телеметрия с выборочным (sampled) захватом пакетов + периодическими счётчиками интерфейсов. Агент на свиче/маршрутизаторе (или на хосте) случайно отбирает 1 из N пакетов, берёт их заголовки и метаданные L2/L3/L4, параллельно регулярно снимает counters (байты, пакеты, ошибки, загрузка). Всё это уходит на коллектор по UDP/6343 в почти реальном времени.
Как работает (по-простому).
- Flow samples: «срезы» пакетов с полями MAC/VLAN/EtherType, IP/порты, TCP-флаги, входящий/исходящий порт и др.
- Counter samples: периодические сводки по интерфейсам/очередям.
- Агент ничего не агрегирует «в долгую» — просто шлёт поток образцов. Коллектор уже строит «top talkers», графики, профили трафика.
Чем отличается от NetFlow/IPFIX.
- sFlow смотрит на пакеты (L2→L4), идеально подходит для очень быстрых линков и даёт видимость VLAN/MAC.
- NetFlow/IPFIX отдаёт агрегаты потоков (без L2), удобен для пер-флоу аналитики/биллинга.
На практике их часто используют вместе: sFlow — обзор и аномалии, NetFlow/IPFIX — детализация по потокам.
Где применяют.
Дата-центры и фабрики leaf–spine, кампусные сети, мульти-тенантные облака, CDN/IX, а также на серверах (агент host-sFlow) — для емкостного планирования, DDoS-детекции, политик QoS и поиска «прожорливых» узлов.
Настройки, которые имеют значение.
- sampling-rate: 1:512, 1:1000, 1:4096… Чем выше скорость линка — тем крупнее коэффициент.
- polling-interval: как часто слать счётчики (например, каждые 20–60 с).
- collector: IP/порт 6343/UDP, иногда несколько коллекторов.
- В коллекторе значения масштабируются по коэффициенту выборки (оценка «истинных» байтов/пакетов).
Плюсы и ограничения.
- Минимальная нагрузка на ASIC/CPU, подходит для 10/25/40/100G+.
- Видно L2 (MAC/VLAN), что важно для оверлеев/агрегаций.
– Это статистическая оценка: короткие микропотоки могут «пролетать мимо».
– UDP-доставка: при бурстах возможны потери; держите буферы и не дробите MTU.
– С NAT/асимметрией можно увидеть «половину» картины — синхронизируйте время (NTP) и учитывайте точку измерения.
С чего начать (идея).
- Включите агент, задайте,
sampling 1000
,polling 30s
.collector 192.0.2.10:6343
- Активируйте на нужных интерфейсах (uplink’и/все порты доступа).
- Поставьте коллектор: ntopng, ElastiFlow, pmacct, sFlow-RT — и постройте дашборды «top N» и задержек.
Мини-примеры (концептуально).
- Arista EOS:
sflow enable sflow agent-ip 10.0.0.5 sflow destination 192.0.2.10 6343 sflow polling-interval 30 sflow sample 1000 interface Ethernet1-48 sflow enable
- Linux (host-sFlow / hsflowd):
# /etc/hsflowd.conf sflow { agentIP 10.0.0.20 collector { ip 192.0.2.10 udpPort 6343 } sampling 1000 polling 30 interfaces 1-eth:*,2-bond:* }
Итог: sFlow даёт лёгкую и масштабируемую «рентген-картину» сетевого трафика — достаточно точную для мониторинга, быстрого поиска аномалий и планирования пропускной способности.