Jump to content
Local
LENS

Nodeny и проблема со скоростью FreeBSD 11.2

Recommended Posts

Друзья, помогите пожалуйста разобраться с проблемой скорости

 

Nodeny 50.32
Ядро и BRAS на разных серверах.

BRAS сервер HP Proliant G8 360, 2CPU 2,6 Ghz, 8Gb RAM - сетевая Intel 82576
Вход и выход собраны в lagg - итого два гига вход и выход
Абоненты терминируются через PPPoE на mpd. Nat на pf, детализация на ipcad

 

Проблема: при включенном ipfw и именно правилах pipe со скоростью какая то дичь, исхода нет, вход 10-13 мегабит
Как только выключаешь ipfw - все летает, больше гигабита пролетает без проблем. При этом очевидных проблем с перегрузом ядер нет - все равномерно.

FreeBSD bras7 11.2-STABLE FreeBSD 11.2-STABLE #0: Sun Dec 23 20:44:08 EET 2018     root@bras7:/usr/obj/usr/src/sys/BRAS7  amd64

 

В ядро Generic  добавил опции:

# NAS KERNEL OPTIONS
options                 IPFIREWALL
options                 IPFIREWALL_NAT
options                 LIBALIAS
options                 IPDIVERT
options                 DUMMYNET
options                 IPFIREWALL_DEFAULT_TO_ACCEPT
options                 PANIC_REBOOT_WAIT_TIME=3
options                 NETGRAPH
options                 NETGRAPH_BPF
options                 NETGRAPH_IPFW
options                 NETGRAPH_ETHER
options                 NETGRAPH_IFACE
options                 NETGRAPH_PPP
options                 NETGRAPH_PPTPGRE
options                 NETGRAPH_PPPOE
options                 NETGRAPH_SOCKET
options                 NETGRAPH_KSOCKET
options                 NETGRAPH_ONE2MANY
options                 NETGRAPH_SPLIT
options                 NETGRAPH_TEE
options                 NETGRAPH_TCPMSS
options                 NETGRAPH_VJC
options                 NETGRAPH_RFC1490
options                 NETGRAPH_TTY
options                 NETGRAPH_UI


Sysctl.conf

net.inet6.ip6.auto_linklocal=0  
net.inet6.ip6.auto_linklocal=0
#
net.isr.dispatch=deferred
#
dev.igb.0.rx_processing_limit=4096
dev.igb.1.rx_processing_limit=4096
dev.igb.2.rx_processing_limit=4096
dev.igb.3.rx_processing_limit=4096
dev.igb.4.rx_processing_limit=4096
dev.igb.5.rx_processing_limit=4096
dev.igb.6.rx_processing_limit=4096
dev.igb.7.rx_processing_limit=4096
#
net.link.lagg.default_use_flowid=1
#
net.inet.ip.dummynet.pipe_slot_limit=1000
net.inet.ip.dummynet.io_fast=1
net.inet.ip.intr_queue_maxlen=10240
#
kern.ipc.nmbclusters=262144
kern.ipc.maxsockbuf=16777216
kern.ipc.somaxconn=32768
kern.randompid=348
net.inet.icmp.icmplim=50
net.inet.ip.process_options=0
net.inet.ip.redirect=0
net.inet.icmp.drop_redirect=1
net.inet.tcp.blackhole=2
net.inet.tcp.delayed_ack=0
net.inet.tcp.drop_synfin=1
net.inet.tcp.msl=7500
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.path_mtu_discovery=0
net.inet.tcp.recvbuf_max=16777216
net.inet.tcp.recvspace=64395
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.sendspace=64395
net.inet.udp.blackhole=1
net.inet.tcp.tso=0
net.inet.tcp.syncookies=1
net.inet.ip.ttl=226
net.inet.tcp.drop_synfin=1
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
net.route.netisr_maxqlen=4096
net.graph.maxdgram=8388608
net.graph.recvspace=8388608

 

loader.conf

kern.geom.label.gptid.enable=0
kern.geom.label.disk_ident.enable=0
#
hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000
#
net.route.netisr_maxqlen=4096
net.isr.defaultqlimit=4096
net.link.ifqmaxlen=10240

rc.firewall

${f} -f flush

${f} add 50 allow tcp from any to me 22 via lagg1
${f} add 51 allow tcp from me 22 to any via lagg1
#${f} add 65 allow tcp from any to me 1723
#${f} add 65 allow tcp from me 1723 to any
#${f} add 65 allow gre from any to me
#${f} add 65 allow gre from me to any
#
#
# PRIVATBANK + LIQPAY FREE ACCESS
${f} add 66 allow tcp from not "table(0)" to "table(17)" dst-port 80,443
#
# Blocked URL
${f} add 67 fwd 127.0.0.1,8082 tcp from "table(0)" to "table(18)" dst-port 80 in
${f} add 68 reject tcp from "table(0)" to "table(18)"
${f} add 69 deny ip from "table(0)" to "table(18)"
#
# DENY TRACEROUTE & PING
${f} add 70 allow ip from any to any via lo0
${f} add 71 allow icmp from 10.10.1.1 to any
${f} add 72 allow icmp from any to 10.10.1.1
${f} add 74 deny icmp from me to any
${f} add 75 deny icmp from 10.10.0.0/24 to 10.190.0.0/16 icmptype 0,11
${f} add 76 deny icmp from any to me

${f} add 110 allow ip from any to any via lo0
${f} add 120 skipto 1000 ip from me to any
${f} add 130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${f} add 160 skipto 2000 ip from any to me
#
${f} add 170 allow tcp from any to ${main_server} 80,443
${f} add 175 allow tcp from ${main_server} 80,443 to any

${f} add 180 allow tcp from any to ${main_server} 80,443
${f} add 185 allow tcp from ${main_server} 80,443 to any

${f} add 187 allow tcp from any to ${site_server} 80
${f} add 188 allow tcp from ${site_server} 80 to any

${f} add 190 allow udp from any to ${dns} 53
${f} add 195 allow udp from ${dns} 53 to any

${f} add 200 skipto 500 ip from any to any via lagg1

# message module========
${f} add 280 fwd 127.0.0.1,8081 tcp from "table(35)" to not me dst-port 80 in
${f} add 290 fwd 127.0.0.1,8080 tcp from not "table(0)" to not me dst-port 80 in
#=======================

${f} add 300 skipto 4500 ip from any to any in

${f} add 400 skipto 450 ip from any to any recv lagg1
${f} add 420 tee 1 ip from any to any
${f} add 450 tee 2 ip from any to "table(0)"
${f} add 490 allow ip from any to any

${f} add 500 skipto 32500 ip from any to any in
${f} add 510 tee 1 ip from any to any
${f} add 540 allow ip from any to any


${f} add 1000 allow udp from any 53,7723 to any
${f} add 1010 allow tcp from any to any setup keep-state
${f} add 1020 allow udp from any to any keep-state
${f} add 1100 allow ip from any to any

${f} add 2000 check-state
${f} add 2010 allow icmp from any to any
${f} add 2020 allow tcp from any to any 80,443
${f} add 2030 allow ip from ${bras_server} to any
${f} add 2050 deny ip from any to any via lagg1
${f} add 2060 allow udp from any to any 53,7723

${f} add 2100 deny ip from any to any

${f} add 32490 deny ip from any to any

 

nofire.pl добавляет  еще правила:

05000 skipto 33010 ip from table(1) to table(37)
05001 skipto 33010 ip from table(37) to table(1)
05002 deny ip from not table(0) to any
05003 skipto 5010 ip from table(127) to table(126)
05004 skipto 5030 ip from any to not table(2)
05005 deny ip from any to not table(1)
05006 pipe tablearg ip from table(21) to any
05007 deny ip from any to any
05010 pipe tablearg ip from table(127) to any
05030 deny tcp from table(15) to any 25
05400 pipe tablearg ip from table(11) to any
32000 deny ip from any to any
32490 deny ip from any to any
33000 pipe tablearg ip from table(126) to table(127)
33001 skipto 33010 ip from not table(2) to any
33002 pipe tablearg ip from any to table(20)
33003 deny ip from any to any
33400 pipe tablearg ip from any to table(10)

 

Вот эти два правила, удалив которые все работает без проблем (либо сделать ipfw -f):
33002 pipe tablearg ip from any to table(20)
33400 pipe tablearg ip from any to table(10)

 

Подскажите, что может быть источником данной проблемы - при том, что на старой версии FreeBSD 7.4 все работает нормально.
С меня бутылка хорошего горячительного средства или скажите сколько если устали пить :)

Share this post


Link to post
Share on other sites

попробуй убрать правила с tee - посмотри загрузку

и сколько трафика и абонентов через него идет?

Share this post


Link to post
Share on other sites

Число ipfw правил уменьшайте максимально.

Я у себя оставлял только шейперы. После них общий запрет.

Реально помогает.

 

Share this post


Link to post
Share on other sites

Не по теме:  мы ушли от решения на фри( до гига работало все четко ) ,  сейчас стоят линуксы с акселеми , нодени апдейтнули до  нодени+  на линуксе, вам рекомендую поставить модуль соа/радиус и отдельно сервер доступа , или через виртуализацию ( мы сразу  сделали так : фрю перенесли в виртуалку а на ебунту поставили аксель , кстати то же было 2 езера в ласпе) .

Share this post


Link to post
Share on other sites
4 часа назад, 911 сказал:

попробуй убрать правила с tee - посмотри загрузку

и сколько трафика и абонентов через него идет?

Убирал правила - не помогло.

Ошибка выскакивает даже при 100 абонентах

Share this post


Link to post
Share on other sites
28 минут назад, LENS сказал:

Ошибка выскакивает даже при 100 абонентах

Какая ошибка ? 

Проблема воспроизводится при 100 абонентах ?

Share this post


Link to post
Share on other sites

Ошибки нет нигде никакой.

Ядра загружены равномерно на 4-5%

Просто увеличивается пинг у клиентов до 100мс, начинаются потери и скорость падает у всех, кто авторизован на сервере.

Как только отключаешь правила с pipe или отключаешь весть ipfw - сразу все нормально

Share this post


Link to post
Share on other sites

kern.hz="1000" в /boot/loader.conf и ребут.

Если используется только pppoe переписать правила фаера с pipe tablearg я б пробовал навесить на внешний интерфейс.

Если на внешке не проканает то заменить igb0 на "ng*"

Вроде бы pf nat включится в цепочку трафика уже после ipfw что даст полисеру нормально отработать.

Допустим что внешняя сетевка - igb0, например вот так:

33002 pipe tablearg ip from any to table(20) in recv igb0
05006 pipe tablearg ip from table(21) to any out xmit igb0

Вот правда не могу точно сказать должен там быть in recv или же out xmit, помоему всё таки in recv в данном случае

Edited by l1ght

Share this post


Link to post
Share on other sites

Контактуйте в приват, спробую допомогти.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By a_n_h
      Всем доброго дня!
      Подскажите как правильно объединить vlans bridge? Что-то Гугл плохо помогает...
    • By Kto To
      Сегодня вечером словил странный глюк на следующей связке.
      FreeBSD 11.2-RELEASE-p9
      MPD version: 5.8
      Клиенты подключаются по PPPOE.
      Онлайна на машине в районе 1600 абонентов
       
      Стали звонить под вечер клиенты с проблемой на неработающий интернет. Причем некоторые.
      Стали разбираться
      В результате выяснился странный глюк
       
      [] show sessions ip 10.10.0.9 ng1865 10.10.0.9 C-1866 7956732-C-1866 vlan60-1137 1137 7956732-vlan60-1137 vova 54:e6:fc:fe:5d:53 ng2233 10.10.0.9 C-2234 7959914-C-2234 vlan60-2290 2290 7959914-vlan60-2290 vova 54:e6:fc:fe:5d:53 ng2151 10.10.0.9 C-2152 7960268-C-2152 vlan60-2298 2298 7960268-vlan60-2298 vova 54:e6:fc:fe:5d:53 ng2112 10.10.0.9 C-2113 7960073-C-2113 vlan60-2299 2299 7960073-vlan60-2299 vova 54:e6:fc:fe:5d:53 [] show sessions ip 10.10.51.184 ng1710 10.10.51.184 C-1711 7933915-C-1711 vlan63-468 468 7933915-vlan63-468 051184 00:30:67:f9:8b:87 ng608 10.10.51.184 C-609 7879576-C-609 vlan63-727 727 7879576-vlan63-727 051184 00:30:67:f9:8b:87 ng883 10.10.51.184 C-884 7933023-C-884 vlan63-1028 1028 7933023-vlan63-1028 051184 00:30:67:f9:8b:87 ng1071 10.10.51.184 C-1072 7932679-C-1072 vlan63-1177 1177 7932679-vlan63-1177 051184 00:30:67:f9:8b:87 ng1643 10.10.51.184 C-1644 7933515-C-1644 vlan63-1714 1714 7933515-vlan63-1714 051184 00:30:67:f9:8b:87 ng1671 10.10.51.184 C-1672 7928866-C-1672 vlan63-1751 1751 7928866-vlan63-1751 051184 00:30:67:f9:8b:87 ng1701 10.10.51.184 C-1702 7931011-C-1702 vlan63-1769 1769 7931011-vlan63-1769 051184 00:30:67:f9:8b:87 ng1709 10.10.51.184 C-1710 7932364-C-1710 vlan63-1777 1777 7932364-vlan63-1777 051184 00:30:67:f9:8b:87 ng2269 10.10.51.184 C-2270 7961076-C-2270 vlan63-2050 2050 7961076-vlan63-2050 051184 00:30:67:f9:8b:87 ng2229 10.10.51.184 C-2230 7960448-C-2230 vlan63-2273 2273 7960448-vlan63-2273 051184 00:30:67:f9:8b:87 ng1425 10.10.51.184 C-1426 7959795-C-1426 vlan63-2280 2280 7959795-vlan63-2280 051184 00:30:67:f9:8b:87 ng2216 10.10.51.184 C-2217 7960721-C-2217 vlan63-2287 2287 7960721-vlan63-2287 051184 00:30:67:f9:8b:87 ng2252 10.10.51.184 C-2253 7960944-C-2253 vlan63-2301 2301 7960944-vlan63-2301 051184 00:30:67:f9:8b:87 ng2236 10.10.51.184 C-2237 7960217-C-2237 vlan63-2302 2302 7960217-vlan63-2302 051184 00:30:67:f9:8b:87 ng2270 10.10.51.184 C-2271 7961240-C-2271 vlan63-2313 2313 7961240-vlan63-2313 051184 00:30:67:f9:8b:87 ng2248 10.10.51.184 C-2249 7960285-C-2249 vlan63-2318 2318 7960285-vlan63-2318 051184 00:30:67:f9:8b:87 ng1899 10.10.51.184 C-1900 7962171-C-1900 vlan63-2347 2347 7962171-vlan63-2347 051184 00:30:67:f9:8b:87 ng2299 10.10.51.184 C-2300 7962389-C-2300 vlan63-2363 2363 7962389-vlan63-2363 051184 00:30:67:f9:8b:87 ng194 10.10.51.184 C-195 7962428-C-195 vlan63-2373 2373 7962428-vlan63-2373 051184 00:30:67:f9:8b:87 ng2260 10.10.51.184 C-2261 7960890-C-2261 vlan63-2378 2378 7960890-vlan63-2378 051184 00:30:67:f9:8b:87 и так далее Почему-то перестали удаляться старые неактивные сессии клиентов. Руками удаляю все сессии - клиент подключается и работает но я так думаю это до следующего реконнекта.
       
      Вот конфиг мпд (может там что-то довписать надо, хотя конфиг переносится от сервака к серваку уже долгие годы)
      pppoe_server: create bundle template C set bundle disable encryption set bundle disable compression set ccp disable mppc set ipcp dns 8.8.8.8 1.1.1.1 set ipcp range a.b.c.d/32 0.0.0.0/0 set iface enable tcpmssfix create link template oe pppoe set link action bundle C set link disable chap pap eap set link enable pap chap set link enable peer-as-calling load radius create link template vlan2 oe set link max-children 1000 set pppoe iface vlan2 set pppoe service "*" set link enable incoming ...... Почему мпд создает ng интерфейс с тем же ип если уже такой существует? Ну и почему не удаляются старые сессии?
       
      Подскажите может сталкивался кто и как побороть.
    • By NewNet
      Компания "Новая Связь" нуждается в модуле по ведению учёта оборудования на складе для биллинга NoDeny+.
      Есть разработанное ТЗ, готовы заказать за умеренную цену.

      C уважением, команда компании "Новая Связь".

       
    • By Impulsee
      День добрый!
      Есть Связка Ubilling+NAS на freebsd. 
      Настроена на Виртуалке VMware. 
      Без VLAN все работает идеально. Трафик бегает, IP раздается, Денюжка зачисляется и т.д.
      Появилась потребность поднять 3 VLAN на локальном интерфейсе для Абонов. 
      Сделал: /etc/rc.conf
       
      Вывод /etc/firewall.conf 
       
       
      Сети, шаблоны NAS, в биллинге прописал. Абоны IP получают через VLAN. Интернет есть....
       
      НО:
       
      При отрицательном балансе на em1 все отключается мгновенно, и отправляет в кабинет. 
      А на VLAN сетях Интернет есть. 
       
      Кусок /var/stargazer/allconnect.log

       
      кусок /var/log/stargazer.log
       
       
      Подскажите, плиз, в какую сторону копать?
       
    • By Nejron
      Всем здрям! ))
      Изложу суть :
      Имеется некий сервис (в данном случае IPTV личного производства)
      Хотелось бы контролировать с билинга доступ к нему.
      В профиле пользователя создал дополнительное поле с типом "TRIGGER".
       
      А вот дальше хочу спросить как правильно заполнить свою таблицу для ipfw?
      Добавлять/удалять от туда ip клиентов и возможно еще что то посоветуете.
      Возможно кто то что то подобное делал,
      не оставте начинающего админа без совета 😉
       
×