LINUX.ORG.RU
ФорумAdmin

TC: ограничить скорость входящих соединений с диапозона IP

 


0

1

Приветствую! Есть машина-хранилище с gentoo на борту. На неё (в NFS шару) из другого города регулярно сливаются бекапы с нескольких машин (например, 192.168.10.41-192.168.10.43, os Debian), в процессе перелива занимая всю ширину канала между городами (400 мбит). Нужно ограничить на хранилище скорость входящих соединений до 200мбит при соединении с этих машин, не ограничивая скорости соединения с других адресов.

Подскажите пожалуйста как максимально просто и изящно реализовать это с помощью TC.

Пробовал вот так:

#!/bin/bash

ETH=eth1

tc qdisc del dev $ETH root

tc qdisc add dev $ETH root handle 1:  htb default 3
tc class add dev $ETH parent 1: classid 1:1 htb rate 200mbit

tc filter add dev $ETH protocol ip parent 1: prio 1 u32 match ip dst 192.168.10.41 flowid 1:1
tc filter add dev $ETH protocol ip parent 1: prio 1 u32 match ip dst 192.168.10.42 flowid 1:1
tc filter add dev $ETH protocol ip parent 1: prio 1 u32 match ip dst 192.168.10.43 flowid 1:1

но получил только пачку ошибок:

RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
RTNETLINK answers: Invalid argument
We have an error talking to the kernel


Последнее исправление: dpronyaev (всего исправлений: 2)
Ответ на: комментарий от anonymous

eth1 для примера, в реальности enp6s0. Имя единственного действующего интерфейса я посмотрел в выводе ip a - скопировал оттуда без ошибки.

dpronyaev
() автор топика

Проверил скрипт на debian-тачке - работает. Оказалось, дело в отсутствии нужных модулей ядра. После пересборки заработало:)

dpronyaev
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.