Статическое шейпирование трафика

Технические вопросы по UTM 5.0
Ответить
CarTer
Сообщения: 62
Зарегистрирован: Пн май 26, 2008 09:18

Статическое шейпирование трафика

Сообщение CarTer »

Все доброе время суток!

Помогите сделать анализ методов шейпирования трафика для создания высокопроизводитьного сервера на ОС FreeBSD, в качестве NAS -- mpd 5.4

На данный момент исполльзую связку со статический pipe + ipfw, параметры для ограничения передаются через radius-атрибуты в mpd.
Ограничивается скорость в платный и бесплатный диапозон трафика.
Достоинства этого метода:
1. Простота реализации
2. Возможность разграничить скорость в платный и бесплатный диапозоны трафика
3. Возможность установить приоритет очереди

Недостатки этого метода:
1. При большом количестве пользователей в ipfw создаются очень много правил (количество online пользователей*4)

Связка статические pipe + ipfw используется на сервере:
Процессор -- 2.83GHz Intel® Core™ 2 Quad Q9550 EM64T
ОЗУ -- 2 х 2048Mb DDR-II ECC PC2-6400 DIMM
Сетевой адаптер -- 1000Мбит Intel Gigabit ET Server Adapter

При этом максимальное кол-во клиентов на нем 250 - 300 пользователей, после чего идут очень большие задержки пакетов порядка 150-200 мс
и загрузка процессора 100%.

Хотелось бы услышить Ваше мнение по ng_car + ng_bpf; динамические pipe + ipfw. Будет ли ощутимы прирост ?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

учуете очень даже. Статические пайпы - это зло. Динамика на tablearg - уже лучше. По хорошему наименее затратен будет Ng_car

CarTer
Сообщения: 62
Зарегистрирован: Пн май 26, 2008 09:18

Сообщение CarTer »

mikkey finn писал(а):учуете очень даже. Статические пайпы - это зло. Динамика на tablearg - уже лучше. По хорошему наименее затратен будет Ng_car
При использовании ng_car у многих при большой плотности клиентов идет переполнение стека и как итог kernel panic. Как с ним бороться. Решена ли эта проблема в FreeBSD 8.0

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

большая плотность - это сколько?
1300 клиентов pptp на одной коробке - это большая плотность? Кернель-паников не вижу. При том, что достаточно жестко дергаю нетграф еженощно для ускорений =)

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

CarTer писал(а):
mikkey finn писал(а):учуете очень даже. Статические пайпы - это зло. Динамика на tablearg - уже лучше. По хорошему наименее затратен будет Ng_car
При использовании ng_car у многих при большой плотности клиентов идет переполнение стека и как итог kernel panic. Как с ним бороться. Решена ли эта проблема в FreeBSD 8.0
это сколько в пиках у вас?

dwemer
Сообщения: 276
Зарегистрирован: Чт янв 25, 2007 05:59

Сообщение dwemer »

2000 pptp в пиках на одной машине, ng_car, ng_netflow - все ок. bsd 7.2

CarTer
Сообщения: 62
Зарегистрирован: Пн май 26, 2008 09:18

Сообщение CarTer »

На данном этапе провожу тестирование на собранном стенде. На стенде свич D-Link DES-3526, 10 генераторов трафа и тестовый сервер (ng_car).
Без тюнинга ядра фря первый раз встала колом где то мин за 40 -45.
После применения вот этих параметров:
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.icmp.icmplim=50
kern.ipc.somaxconn=4096
hw.syscons.bell=0
net.inet.tcp.rfc1323=1
net.inet.tcp.delayed_ack=0
kern.ipc.maxsockbuf=2097152
net.inet.tcp.sendspace=65535
net.inet.tcp.recvspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344
net.local.stream.recvspace=65535
net.local.stream.sendspace=65535
net.inet.tcp.log_in_vain=1
net.inet.udp.log_in_vain=1
net.link.ether.inet.max_age=1200
# Для FreeBSD > 7.0 не актуально
#kern.polling.enable=1
#kern.polling.user_frac=50
# Отрубаем ip-редиректы
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.graph.maxdgram=128000
net.graph.recvspace=128000
kern.ipc.nmbclusters=32768
kern.ipc.maxsockets=204800
net.inet.ip.intr_queue_maxlen=5120
net.inet.ip.dummynet.hash_size=512
net.inet.ip.dummynet.max_chain_len=32
net.inet.ip.fw.dyn_buckets=1024
Бегает уже 3 часа.

при этом радиус при подключении передает вот такие параметры:
mpd-filter += "1#1=match dst net 192.168.0.0/24"
mpd-filter += "1#2=match src net 192.168.0.0/24"
mpd-filter += "1#3=match dst net 192.168.1.0/24"
mpd-filter += "1#4=match src net 192.168.1.0/24"
mpd-filter += "1#5=match dst net 192.168.2.0/24"
mpd-filter += "1#6=match src net 192.168.2.0/24"
mpd-filter += "1#7=match dst net 192.168.3.0/24"
mpd-filter += "1#8=match src net 192.168.3.0/24"

mpd-limit += "in#1=flt1 shape 1024000000 pass"
mpd-limit += "out#1=flt1 shape 1024000000 pass"
mpd-limit += "in#2=all rate-limit 1024000 150000 300000"
mpd-limit += "out#2=all rate-limit 1024000 150000 300000"

Возник только вопрос возможно ли объединить диапозоны ip адресов, которые надо шейпить с другой скоростью в одно два правила (таблицу). Если возможно то можно пример :)

gil
Сообщения: 355
Зарегистрирован: Вт ноя 11, 2008 14:28

Сообщение gil »

CarTer писал(а):На данном этапе провожу тестирование на собранном стенде. На стенде свич D-Link DES-3526, 10 генераторов трафа и тестовый сервер (ng_car).
Без тюнинга ядра фря первый раз встала колом где то мин за 40 -45.
как-то странно.. сколь трафика генерят они? pps?

ilya_evseev
Сообщения: 48
Зарегистрирован: Сб ноя 25, 2006 05:05
Откуда: Saint-Petersburg, Russia
Контактная информация:

Сообщение ilya_evseev »

Я использую самописный генератор для ipfw/dummynet:
http://forum.nag.ru/forum/index.php?showtopic=54379

mpd/ng_car не использую - сеть управляемая, для неё ещё один костыль:
http://forum.nag.ru/forum/index.php?showtopic=54023

Ответить