Автор Гілка: Знову UA-IX  (Прочитано 2403 раз)

Володимир(Guest)

  • Гість
Знову UA-IX
« : 2005-09-27 18:18:15 »
Доброго дня!
Мені вже скоро буде зле від того, що я намагаюся зробити, але ніяк не виходить.
Є інтернет, гейт під Лінуксом та локальна мережа. Завдання - випускати юзерів з мережі в інтернет.
Але так, щоб якщо вони ходять до UA-IX - то пускати без зайвих запитань, а якщо далі - то треба зробити шейпінг трафіку та рахувати його.
Коли кількість спожитого травіку сягне якоїсь величини - вимкнути, щоб залишився лише український.
Як це взагалі можливо?

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Знову UA-IX
« Відповідей #1 : 2005-09-27 21:02:28 »
Ну є список мереж, які входять в UA-IX: http://colocall.net/ua/  (перевіряється з допомгою traceroute). Для кожної мережі створюється окреме правило "можна без обмежень". Ніби все. :-/
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Знову UA-IX
« Відповідей #2 : 2005-09-27 21:05:36 »
Ще почитай цю гілку на Волі:

http://www.volia.com/forum/service/broadband/1128/2/
[Fedora Linux]

Відсутній old

  • Дописувач
  • **
  • дописів: 60
  • Карма: +0/-0
  • Що новенького?
Re: Знову UA-IX
« Відповідей #3 : 2005-09-28 09:46:56 »
Якщо ідеться про алгоритм реалізації, то на мою думку реальним є наступний варіант:
1) Для маркування пакетів використаємо потік PREROUTING. Тоді у FORWARD-і маємо можливсіть савити правила захисту (заборона тих чи інших портів) а в PREROUTING маркувати трафік.
iptables -A PREROUTING -t mangle -i eth0 -j MARK --set-mark 6
В результаті увесь трафік у нас маркується цифрою 6. Тепер з http://colocall.net/ua/ стягуємо список ір-адрес і для кожної з них робимо
iptables -I PREROUTING -i eth0 -d <UA-IX-ip> -j ACCEPT.
Список на колокалі -- це плейнтекст, його можна просто взяти wget-ом і кинути на вхід елементарному bash-скріпту.
Тобто вставляємо правила вище. Таким чином увесь UA-IX трафік маркуватись не буде, увест решта -- буде.
2) Робимо шейпінг. Рекомендую http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm -- це непогана реалізація шейпінгу. Її можливості цілком достатні. Хоча можливо Вам вистачитьі  простіших способів шейпінгу.
3) Залишилось на створений в п. 2 шейпінг завернути трафік маркований в п. 1
пиблизно так:  tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle 6 fw flowid <шейпінг>.
Взагалі про це добре почитати тут: http://www.lartc.org/lartc.html#LARTC.QDISC.FILTERS
4) Калькуляцію можна робити по статистиці з htb. Блокувати трафік -- тим самим iptables. Тут уже вся фантазія + bash/perl/awk.

Ну тобто реалізувати те, що Ви просите ІМНО цілком реально. Єдиний нез'ясований момент -- який саме шейпінг Ви хочете. Від цього залежатиме вибір реалізації і  можливо трохи зміниться алгоритм. Дуже рекомендую http://www.lartc.org/lartc.html.