Трохи роботи .)
Щойно дописав підтримку IPv6 для свого конфігуратора (Django/Python) шейпера (HTB/Linux).
«Воно жахливе, але працює чудово»™ .)
around the essentials…
Щойно дописав підтримку IPv6 для свого конфігуратора (Django/Python) шейпера (HTB/Linux).
«Воно жахливе, але працює чудово»™ .)
I’ve decided to make it available after some nice people asked for this.
Now i have no time and, let’s say, health to make it better, so please don’t complain :-)
I guess it maybe would be better to make it available somewhere at code.google.com — i would like to work on this code later, surely.
Anyway. Now — as it now is. With incomplete README:
Hash-tables based shaper can act as an effective firewall; just take a look.
Now our shaper configurator generates, let’s say, this script for a client’s connection (excerpt):
# # Contract I-1082, # connection 606 (0x25e). # # input: /sbin/tc class add dev clients0 classid 1:25e parent 1:fe10 htb rate 96kbit ceil 128kbit quantum 1500 burst 7500 cburst 12500 prio 50 /sbin/tc filter add dev clients0 protocol 802.1q parent 1:0 prio 100 u32 ht 133:5c match ip dst X.X.133.92 flowid 1:25e /sbin/tc filter add dev clients0 protocol 802.1q parent 1:0 prio 100 u32 ht 133:5d match ip dst X.X.133.93 flowid 1:25e /sbin/tc filter add dev clients0 protocol 802.1q parent 1:0 prio 100 u32 ht 133:5e match ip dst X.X.133.94 flowid 1:25e /sbin/tc filter add dev clients0 protocol 802.1q parent 1:0 prio 100 u32 ht 133:5f match ip dst X.X.133.95 flowid 1:25e |
Now let’s assume we have a lot of DoS traffic from IP 173.204.53.138 to IP X.X.133.94 — a lot of packets, a client’s bandwidth is exhausted. (Yes, that’s real IP, that was a real DoS attack,-)
All we need is to write a filter into a proper hash table cell:
Well.. I’ve done my django based configurator for my HTB shaper (bridge/linux).
I will try to translate this post in english; if you can read Ukrainian, try here.
*subj* :-)
Давно було зрозуміло, що без нормального конфігуратора керувати нормальним шейпером «важкувато», але… все ускладнювала одна обставина — я не програміст (тм).
Чим мене не влаштовують наявні інструменти?
По-перше, всі знайдені вирішують трохи інші задачі, простіші; зокрема, я так і не знайшов конфігуратора для «свого шейпера» — шейпера на мості (bridge/linux), з використанням хеш-таблиць. Для великої кількості клієнтів, для великої кількості IP адрес.
Отже, мені треба було написати щось своє.
Я собі спростив задачу:
Мій шейпер (тм,-) використовує хеш-таблиці; ці таблиці створює вищезгаданий «окремий скрипт», а заповнюються вони вже скриптами, які генеруються автоматично, засобами django, через специфічні представлення даних.
Отже, «схема» містить такі сутності: