asid2006 Опубликовано 26 марта, 2015 (изменено) · Жалоба Доброго времени суток, коллеги! Был старый сервер с настроенным TC+NAT (настраивал не я). Нагрузка где-то 1000 абонентов. Сервер перестал справляться с нагрузкой и решили заменить его новым. Поставил на новый сервер CentOS 6.5, обновил, скопировал скрипты настройки интерфейсов, настройки iptables и TC. Увеличил net.netfilter.nf_conntrack_max и /sys/module/nf_conntrack/parameters/hashsize. В итоге новый сервер вместо 10 мбит для абонента выдаёт 6, есть потеря пакетов как в сторону интернета, так и в локалку. TC настроен только в сторону локалки. Канал не забивается, нагрузка на ЦП низкая. Если убрать фильтры с интерфейса (т.е. отдавать клиентам весь канал без ограничения скорости), канал забивается полностью. В /var/log/messages чисто. При загрузке (boot.log) тоже везде ОК. На сервере также стоит named и dhcpd. TC для фильтрации использует хэш-таблицы. На сервере поднято 180 интерфейсов (вланы). Укороченный скрипт TC: #!/bin/bash tc qdisc del dev em2 root tc qdisc add dev em2 root handle 1: htb default 100 tc class add dev em2 parent 1: classid 1:1 htb rate 1000mbit tc class add dev em2 parent 1:1 classid 1:10 htb rate 1mbit ceil 500mbit tc class add dev em2 parent 1:1 classid 1:20 htb rate 500mbit tc class add dev em2 parent 1:1 classid 1:30 htb rate 50mbit tc qdisc add dev em2 parent 1:10 handle 10: sfq perturb 10 tc filter add dev em2 protocol ip parent 1: u32 match ip src 10.0.0.1 flowid 1:10 tc class add dev em2 parent 1:20 classid 1:100 htb rate 500kbit ceil 10mbit quantum 2000 #Создаем корневой фильтр tc filter add dev em2 parent 1:0 protocol ip u32 #Создаем 3 хеш таблицы для 1-3 октета tc filter add dev em2 parent 1:0 handle 1: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 2: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 3: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 10: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 11: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 12: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 13: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 14: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 15: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 16: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 17: protocol ip u32 divisor 256 tc filter add dev em2 parent 1:0 handle 18: protocol ip u32 divisor 256 #Создаем фильтр направлящий весь трафик в хеш таблицу с ID 1 tc filter add dev em2 parent 1:0 protocol ip u32 ht 800:: match ip dst 0.0.0.0/0 hashkey mask 0xff000000 at 16 link 1: # ======= 1-й октет ======= tc filter add dev em2 parent 1:0 protocol ip u32 ht 1:a: match ip dst 10.0.0.0/8 hashkey mask 0xff0000 at 16 link 2: #Добавляем правило в 2 хеш таблицу, если второй октет равен 0, то оправляем пакет в 3 хеш таблицу tc filter add dev em2 parent 1:0 protocol ip u32 ht 2:0: match ip dst 10.0.0.0/16 hashkey mask 0xff00 at 16 link 3: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:a: match ip dst 10.0.10.0/24 hashkey mask 0xff at 16 link 10: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:b: match ip dst 10.0.11.0/24 hashkey mask 0xff at 16 link 11: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:c: match ip dst 10.0.12.0/24 hashkey mask 0xff at 16 link 12: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:d: match ip dst 10.0.13.0/24 hashkey mask 0xff at 16 link 13: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:e: match ip dst 10.0.14.0/24 hashkey mask 0xff at 16 link 14: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:f: match ip dst 10.0.15.0/24 hashkey mask 0xff at 16 link 15: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:10: match ip dst 10.0.16.0/24 hashkey mask 0xff at 16 link 16: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:11: match ip dst 10.0.17.0/24 hashkey mask 0xff at 16 link 17: tc filter add dev em2 parent 1:0 protocol ip u32 ht 3:12: match ip dst 10.0.18.0/24 hashkey mask 0xff at 16 link 18: # Абоненты tc class add dev em2 parent 1:20 classid 1:120 htb rate 256kbit ceil 2097152 quantum 3000 tc filter add dev em2 protocol ip parent 1:0 u32 ht 10:a: match ip dst 10.0.10.10/32 flowid 1:120 tc class add dev em2 parent 1:20 classid 1:103 htb rate 256kbit ceil 51200000 quantum 75000 tc filter add dev em2 protocol ip parent 1:0 u32 ht 10:2: match ip dst 10.0.10.2/32 flowid 1:103 tc class add dev em2 parent 1:20 classid 1:1241 htb rate 256kbit ceil 5365760 quantum 7500 tc filter add dev em2 protocol ip parent 1:0 u32 ht 11:26: match ip dst 10.0.11.38/32 flowid 1:1241 Полагаю, что нужно настроить что-то ещё, чтобы всё работало как надо. Подскажите, куда копать? Изменено 27 марта, 2015 пользователем asid2006 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...