Перейти к содержимому
Калькуляторы

Проблема с tc filter add RTNETLINK answers: File exists

Доброго времени суток, коллеги! Есть сервер на CentOS, ядро 3.10.84-1.el6.elrepo.x86_64. На серваке происходит шейпинг абонентского трафика. Шейпинг делается с помощью tc с использованием hash-таблиц.

Заметил, что некоторое время назад при добавлении фильтра командой:

tc filter add dev em2 protocol ip parent 1:0 u32 ht 10:d8: match ip dst 10.0.10.216/32 flowid 1:1772

стала вылезать ошибка:

RTNETLINK answers: File exists
We have an error talking to the kernel

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если ядро говорит что File exists - значит такой объект уже есть. В вашем случае фильтр с теми же параметрами(parent, ht, match ip) уже существует, лечите скрипт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если ядро говорит что File exists - значит такой объект уже есть. В вашем случае фильтр с теми же параметрами(parent, ht, match ip) уже существует, лечите скрипт.

Такого нет. Если поменять эти параметры, ошибка остаётся. Если убрать несколько применённых фильтров, можно будет добавить столько же

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скорее всего место в каких то хешмассивах кончилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Был у меня похожий вопрос к программистам ядра несколько лет назад. Сказали, что нужно всегда указывать handle и лучше использовать replace вместо add.

tc filter replace dev em2 parent 1: handle 10:d8:800 u32 ht 10:d8: match ip dst 10.0.10.216/32 flowid 1:1772

Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Был у меня похожий вопрос к программистам ядра несколько лет назад. Сказали, что нужно всегда указывать handle и лучше использовать replace вместо add.

tc filter replace dev em2 parent 1: handle 10:d8:800 u32 ht 10:d8: match ip dst 10.0.10.216/32 flowid 1:1772

 

В понедельник попробую, спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Был у меня похожий вопрос к программистам ядра несколько лет назад. Сказали, что нужно всегда указывать handle и лучше использовать replace вместо add.

tc filter replace dev em2 parent 1: handle 10:d8:800 u32 ht 10:d8: match ip dst 10.0.10.216/32 flowid 1:1772

 

В понедельник попробую, спасибо!

 

Похоже, что всё работает! Спасибо! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.