Начинаешь прогонять файл через NAS сервер - всё ок, посчиталось ровно столько, сколько передал. Далее устанавливаешь NAS сервер на "мясо", сидит на нём порядка 200-300 сессий, снова прогоняешь файл: считает правильно...
Проходит 1-2 недели uptime, прогоняешь файл: считает не весь. При том проанализировав ситуацию было выяснено, что при передаче ниже 9 Мбит/с всё посчитается 100%, но если передавать с более высокой скоростью, начинаются потери. При том потери довольно высокие, порой до 95%.
Было перепроверено все: логика подсчёта трафика, логика подсчёта трафика при загруженном сервере биллинга с большими пачками netflow трафика, пересмотрена не однократно конфигурация FreeRadius, MPD5, но всё в бестолку, потери всё-равно есть. Даже от бессилия, чтоб уж наверняка, была написана своя система подсчёта трафика, но ситуация не изменилась.
Изначально считали что проблема в шейпере, но подняли NAS сервер вообще без шейпера, ситуация не изменилась.
Стоят самые последние версии MPD5, netflow, freeradius, постоянно стараемся следить за обновлениями, ибо есть подозрение что всёже ошибка там.
Причём направление трафика не играет роли: либо передача файла идёт внутри НАСа, либо между НАСами.
По поводу железа: тест проводился на самых различных сетевых картах: гигабитные, 100Мбитные, с 1 интерфейсом, с 2-мя интерфейсами в 1 сетевой карте(Intel). Процессоры в основном используем 4-х ядерные.
Шаблоном *Название* зашифрованы адреса/пароли
Конфигурация mpd5:
Код: Выделить всё
startup:
set global enable tcp-wrapper
set console self *IP_NAS* 5005
set user admin *Пароль* admin
set console open
#set web self 0.0.0.0 5006
#set web open
#Netflow options
set netflow peer 127.0.0.1 9995
set netflow self 127.0.0.1 9990
set netflow timeouts 5 15
set netflow hook 9000
set ippool add pool1 *От* *До*
default:
load pptp_server
load pppoe_server
load pppoe_server2
load pppoe_server3
pptp_server:
create bundle template B
set iface enable tcpmssfix
set iface disable proxy-arp
set iface idle 3600
set iface enable netflow-in netflow-out
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set ipcp yes vjcomp
set iface enable netflow-once
set ipcp ranges *IP_NAS*/32 ippool pool1
set ipcp dns *От* *До*
create link template L pptp
set link action bundle B
set link enable report-mac
set link enable peer-as-calling
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set link mtu 1492
set pptp self 0.0.0.0
set pptp disable windowing
set link enable incoming
load radius
pppoe_server:
create bundle template E
set iface idle 3600
set iface enable tcpmssfix
set iface disable proxy-arp
set ipcp no vjcomp
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set iface enable netflow-in
set iface enable netflow-out
set iface enable netflow-once
set ipcp ranges *IP_NAS*/32 ippool pool1
set ipcp dns *От* *До*
create link template G pppoe
set link action bundle E
set pppoe acname "*Name*"
set pppoe iface em0
set pppoe service "*Name*"
load server_common
pppoe_server2:
create bundle template R
set iface idle 3600
set iface enable tcpmssfix
set iface disable proxy-arp
set ipcp no vjcomp
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set iface enable netflow-in
set iface enable netflow-out
set iface enable netflow-once
set ipcp ranges *IP_NAS*/32 ippool pool1
set ipcp dns *От* *До*
create link template H pppoe
set link action bundle R
set pppoe acname "*NAME*"
set pppoe iface em0
set pppoe service "*NAME*"
load server_common
pppoe_server3:
create bundle template W
set iface idle 3600
set iface enable tcpmssfix
set iface disable proxy-arp
set ipcp no vjcomp
set iface up-script "/usr/abills/libexec/linkupdown mpd up"
set iface down-script "/usr/abills/libexec/linkupdown mpd down"
set iface enable netflow-in
set iface enable netflow-out
set iface enable netflow-once
set ipcp ranges *IP_NAS*/32 ippool pool1
set ipcp dns *От* *До*
create link template J pppoe
set link action bundle W
set pppoe acname "*NAME"
set pppoe iface em0
set pppoe service "*"
load server_common
server_common:
set link no pap eap
set link yes chap-md5
set link keep-alive 30 120
set link enable incoming
set link no acfcomp protocomp
load radius
radius:
set radius server *IP_RADIUS* *PASS* 1812 1813
set radius retries 3
set radius timeout 10
set auth acct-update 300
set auth enable radius-auth
set auth enable radius-acct
set auth disable internal