TGViewer
Серверная Админа | Компьютерные сети Серверная Админа | Компьютерные сети @school_network · 26.6K subscribers
Post #2742 4.62K
👋 Привет, сетевой друг!

Сегодня разберём ещё 5 полезных фишек для Cisco IOS, которые реально экономят время и нервы.

🟣ECN через tc на уровне интерфейса - тонкая настройка вместо глобального sysctl:

tc qdisc show dev eth0

# fq_codel с явным ECN
tc qdisc replace dev eth0 root fq_codel ecn

# Или fq для BBR
tc qdisc replace dev eth0 root fq flow_limit 200 ecn

# Статистика дропов и ECN-меток
tc -s qdisc show dev eth0


fq_codel меряет latency очереди и маркирует пакеты ECN до того как начинает дропать. В отличие от глобального tcp_ecn=1 работает на уровне конкретного интерфейса и не зависит от поддержки на промежуточном оборудовании.

🟣Receive Packet Steering - распределяем обработку входящих пакетов по CPU без аппаратного RSS:

nproc

# Включаем RPS на интерфейсе для всех CPU (4-core = f)
echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus

# RFS — направляем пакеты на тот CPU где живёт приложение
sysctl -w net.core.rps_sock_flow_entries=32768
echo 2048 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt


На однопоточном NIC без аппаратного multiqueue весь входящий трафик обрабатывается одним CPU. RPS разносит нагрузку программно.

🟣tcp_notsent_lowat - контролируем сколько данных накапливается в send buffer не отправленными:

sysctl -w net.ipv4.tcp_notsent_lowat=16384


Без этого при медленном получателе send buffer забивается и приложение блокируется на write() даже когда реально может отправить данные. Критично для HTTP/2 серверов с приоритизацией потоков.

🟣Отключаем GRO на интерфейсах где важна латентность:

ethtool -k eth0 | grep generic-receive

ethtool -K eth0 gro off
ethtool -K eth0 tso off gso off


GRO объединяет входящие пакеты в большие chunks перед передачей в стек - хорошо для throughput, плохо для латентности. На торговых системах и VoIP это принципиально.

🟣ip_local_reserved_ports - резервируем порты которые не должны занимать эфемерные соединения:

sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sysctl -w net.ipv4.ip_local_reserved_ports="8080,8443,9090-9100"


Без резервирования при высоком RPS эфемерное соединение может занять порт на котором должен подняться сервис, и сервис не стартует с EADDRINUSE.

Серверная Админа | Zeroday | #Cisco
  • 👍 6
  • ❤ 3
  • 👎 1
  • 🔥 1
More from @school_network
  1. Oct 2, 2026👋 Привет, сетевой друг! Ещё три функции MikroTik, которые легко пропустить, пока не столк…
  2. Oct 2, 2026Для тех, кто работает с Kubernetes и облачной инфраструктурой, в октябре намечается отличн…
  3. Oct 1, 2026👋 Привет, сетевой друг! Сегодня про UUCP - протокол и набор утилит, через которые Unix-ма…
  4. Sep 30, 2026👋 Привет, сетевой друг! Давай разберём несколько TCP-флагов и состояний, которые особенно…
  5. Sep 29, 2026👋 Привет, сетевой друг! Сегодня про webcensus - инструмент для довольно специфичной задач…
  6. Sep 28, 2026Почему SAML снова и снова ломается на одном и том же месте? SAML больше 20 лет отвечает за…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →