Jump to content
Local
VitalyMoiseev

PPPoE: MPD+FreeBSD vs ACCEL-PPP+ubuntu

Recommended Posts

День добрый!

 

Хочу посоветоваться:

 

Есть средняя сеть, в которой и фттх, и пон, и умные свитчи (разные), и местами тупарики остаются, работает на PPPoE (в общем - нормально работает). PPPoE приниматеся на тазиках с фрей и МПД. Биллинг самописный.

 

Есть желание хотя-бы часть сети перевести на IPoE (vlan-per-user + IP Unnumbered), через ACCEL-PPP.

 

В связи с этим встал вопрос: есть ли смысл (и стоит ли вообще) менять НАСы с MPD+FreeBSD на ACCEL-PPP+ubuntu? Так как, с одной стороны, хочется единообразия на серверах, а с другой стороны - "работает - не трожь!"

Сервера: интел И7 с сетевухами ЕТ, на каждый сервер попадает по 600-700 клиентов с 600-800 Мбит/с трафика.

Share this post


Link to post
Share on other sites

А почему бы и нет? Accel-ppp хорошая и надежная штука и по-моему единственная в своем роде имеющая ipoe как таковую и прочие протоколы.

Share this post


Link to post
Share on other sites

Нельзя нарушать главную заповедь "работает - не трогай".

У меня pppoe сервера стоят 2009ого года сборки, работают, кушать не просят. Обновлять даже мысли нет, со временем все на ipoe переедет да поразбираю старичков.

Share this post


Link to post
Share on other sites

А почему бы и нет? Accel-ppp хорошая и надежная штука и по-моему единственная в своем роде имеющая ipoe как таковую и прочие протоколы.

хорошая - да

можна даже сказать единственная - да

но надежная .... тут я бы с этим поаккуратней.... да надежная при определенном количестве абонентов и при определенных условиях задачи....

Edited by Lynx100

Share this post


Link to post
Share on other sites

 

А почему бы и нет? Accel-ppp хорошая и надежная штука и по-моему единственная в своем роде имеющая ipoe как таковую и прочие протоколы.

хорошая - да

можна даже сказать единственная - да

но надежная .... тут я бы с этим поаккуратней.... да надежная при определенном количестве абонентов и при определенных условиях задачи....

 

Accel штука хорошая, но при больших нагрузках прийдется колдовать, на фре с распределением на ядра лучше работает, а для ацела нужна не убунта а хотябы дебиан с пересобраным ядром чтобы большие нагрузки пережевать и для распределения по ядрам прерывания прийдется поиграться так как линуха сама с сетевух не умеет корректно распределять прерывания. Просто пробовали ацелом заменить PPPoE всплыло много проблем, хотя у ацела производительность намного выше в будущем тоже хотел бы перевести сетку на ацел!

Share this post


Link to post
Share on other sites

Accel штука хорошая, но при больших нагрузках прийдется колдовать, на фре с распределением на ядра лучше работает, а для ацела нужна не убунта а хотябы дебиан с пересобраным ядром чтобы большие нагрузки пережевать и для распределения по ядрам прерывания прийдется поиграться так как линуха сама с сетевух не умеет корректно распределять прерывания. Просто пробовали ацелом заменить PPPoE всплыло много проблем, хотя у ацела производительность намного выше в будущем тоже хотел бы перевести сетку на ацел!

Чушь какая-то.

Намешали в кучу Фрю, Линукс, дистрибутивы, ядра, прерывания. Никакой связи между этими словами в данном контексте нет, получился просто сумбурный поток мыслей.

Share this post


Link to post
Share on other sites

 

Accel штука хорошая, но при больших нагрузках прийдется колдовать, на фре с распределением на ядра лучше работает, а для ацела нужна не убунта а хотябы дебиан с пересобраным ядром чтобы большие нагрузки пережевать и для распределения по ядрам прерывания прийдется поиграться так как линуха сама с сетевух не умеет корректно распределять прерывания. Просто пробовали ацелом заменить PPPoE всплыло много проблем, хотя у ацела производительность намного выше в будущем тоже хотел бы перевести сетку на ацел!

Чушь какая-то.

Намешали в кучу Фрю, Линукс, дистрибутивы, ядра, прерывания. Никакой связи между этими словами в данном контексте нет, получился просто сумбурный поток мыслей.

 

согласен что с разгона намешал все в кучу =)  единственное что хотел сказать что у меня долгое время все под Фрей работает, как только на брас поставил дебиан с ацелом начались проблемы с балансировкой по ядрам процессора - одно ядро нагружено под 100% а остальные три по 20% и пришлось играться чтобы как-то их уровнять, может конечно это еще побочный ефект агрегации (трафик 1.6 Г). Но пока остаюсь на Фре руки не доходят разобраться до конца в чем дело, но аццел это вещь он более производителен!

Share this post


Link to post
Share on other sites

Что значит более производителен?

PPPoE, если что, в linux терминируется ядром уже лет 5 как. Accel не более чем управляюшая обертка, userspace приложение.

И на производительность сервера он оказывается абсолютно минимальное влияние..

Share this post


Link to post
Share on other sites

Что значит более производителен?

PPPoE, если что, в linux терминируется ядром уже лет 5 как. Accel не более чем управляюшая обертка, userspace приложение.

И на производительность сервера он оказывается абсолютно минимальное влияние..

Тогда возможно я ошибаюсь или что то не дочитал! Вам спасибо что разьяснили!

Share this post


Link to post
Share on other sites

 

Что значит более производителен?

PPPoE, если что, в linux терминируется ядром уже лет 5 как. Accel не более чем управляюшая обертка, userspace приложение.

И на производительность сервера он оказывается абсолютно минимальное влияние..

Тогда возможно я ошибаюсь или что то не дочитал! Вам спасибо что разьяснили!

 

Что accel, что mpd являются всего лишь софт-обертками над обработкой всего в ядре.

В линуксе модули ядра занимаются pppoe/pptp/etc, во фре подсистема NETGRAPH.

И там, и там есть баги, мешающие плодотворно эксплуатировать софт-решения на высоких нагрузках. О чем уже много страниц исписано на различных форумах.

 

Поэтому независимо от того, что вы выберете, вы получите высокопроизводительный брас, но с растущей вероятностью падения при увеличении нагрузки.

В FreeBSD ошибки в большей части в районе шейпера и ната (на стыке с dummynet), в линуксе последние проблемы были найдены в обработке pppoe пакетов.

Edited by adeep

Share this post


Link to post
Share on other sites

высокопроизводительный брас, но с растущей вероятностью падения при увеличении нагрузки.

Чисто поржать, самосборный нормально нагруженный сервер(до 1.5к онлайна)

[kayot@nas3 ~]$ uptime
 15:37:12 up 587 days, 11:15,  1 user,  load average: 0.00, 0.01, 0.00
[kayot@nas3 ~]$ cat /proc/net/pppoe | wc -l
1115

Share this post


Link to post
Share on other sites

 

 

Сервера: интел И7 с сетевухами ЕТ, на каждый сервер попадает по 600-700 клиентов с 600-800 Мбит/с трафика.

линь с accel-ppp такой трафик на целероне легко прожует в общем-то.

 

 

 

в линуксе последние проблемы были найдены в обработке pppoe пакетов.

это вылезло в последних ядрах (эдак 3.19, в 4.1 точно есть, в 3.10 точно нет), и в основном в связи с 1) внедрением асинхронной обработки событий типа дисконнекта и 2) тем, что accel-ppp пытается сам обрабатывать pppoe дисконнекты, в то время как rp-pppoe, которым пользуется основная масса, этого не умеет (этим занимается ядро, итог - race condition на accel-ppp).

Share this post


Link to post
Share on other sites

 

высокопроизводительный брас, но с растущей вероятностью падения при увеличении нагрузки.

Чисто поржать, самосборный нормально нагруженный сервер(до 1.5к онлайна)

[kayot@nas3 ~]$ uptime
 15:37:12 up 587 days, 11:15,  1 user,  load average: 0.00, 0.01, 0.00
[kayot@nas3 ~]$ cat /proc/net/pppoe | wc -l
1115

1115 терминаций с LA=0? Это как так?

Share this post


Link to post
Share on other sites

Это linux, нормальное железо и вылизанный софт. Никакой магии.

Share this post


Link to post
Share on other sites

 

высокопроизводительный брас, но с растущей вероятностью падения при увеличении нагрузки.

Чисто поржать, самосборный нормально нагруженный сервер(до 1.5к онлайна)

[kayot@nas3 ~]$ uptime
 15:37:12 up 587 days, 11:15,  1 user,  load average: 0.00, 0.01, 0.00
[kayot@nas3 ~]$ cat /proc/net/pppoe | wc -l
1115

Я кажется видел вас в теме нага про аццель ;)

Мы тоже ржали, пока до 2к+ на хост не добрались...

Share this post


Link to post
Share on other sites

Это linux, нормальное железо и вылизанный софт. Никакой магии.

Не верю!

Хотя-бы сетевуха немного дала на LA. Разве что из всех подключенных никто интернетом не пользуется ))

Share this post


Link to post
Share on other sites

 

 

высокопроизводительный брас, но с растущей вероятностью падения при увеличении нагрузки.

Чисто поржать, самосборный нормально нагруженный сервер(до 1.5к онлайна)

[kayot@nas3 ~]$ uptime
 15:37:12 up 587 days, 11:15,  1 user,  load average: 0.00, 0.01, 0.00
[kayot@nas3 ~]$ cat /proc/net/pppoe | wc -l
1115

 

Я кажется видел вас в теме нага про аццель ;)

Мы тоже ржали, пока до 2к+ на хост не добрались...

 

Год назад на этих же серверах было по 1.5-2к онлайна, потихоньку юзеры на IPoE переезжают.

 

Вот вам с accel-машины, 3к онлайн пиковый. Еще и IPoE, оно побольше кушает чем PPPoE.

[root@IPoE1 ~]# accel-cmd show stat
sessions:
  starting: 0
  active: 2634
  finishing: 0
ipoe:
  starting: 0
  active: 2634
  delayed: 0
Тут конечно LA не 0, но тоже далеко не предел для недорогого сервера.

[root@IPoE1 ~]# uptime
 17:07:40 up 64 days,  4:43,  2 users,  load average: 0.39, 0.58, 0.74
Edited by KaYot

Share this post


Link to post
Share on other sites

 

Это linux, нормальное железо и вылизанный софт. Никакой магии.

Не верю!

Хотя-бы сетевуха немного дала на LA. Разве что из всех подключенных никто интернетом не пользуется ))

 

Я ж не заставляю верить, и в свою секту никого не зову. Трафика бегает гиг, самый обычный BRAS.

Если будем спорить на пиво - дам ssh доступ самому поглядеть :)

Share this post


Link to post
Share on other sites

можно деталей

 

конфиг и версию ядра 

sysctl

настройки сетевых

 

Спасибо :)

 

 

 

Это linux, нормальное железо и вылизанный софт. Никакой магии.

Не верю!
Хотя-бы сетевуха немного дала на LA. Разве что из всех подключенных никто интернетом не пользуется ))

 

Я ж не заставляю верить, и в свою секту никого не зову. Трафика бегает гиг, самый обычный BRAS.
Если будем спорить на пиво - дам ssh доступ самому поглядеть :)

 

Share this post


Link to post
Share on other sites

можно деталей

Ядро древнее, 2.6.32 вроде бы

Конфиг ядра дефолтный "все галочки включить" + патчи на добавление IMQ/ipset.

В sysctl увеличение ARP-таблицы.

у сетевых увеличен ring buffer.

Считай обычная линукс-машина.

Share this post


Link to post
Share on other sites

а acel какой для pptp и какой для ipoe? 

 

Благодарю :)

 

 

можно деталей

Ядро древнее, 2.6.32 вроде бы
Конфиг ядра дефолтный "все галочки включить" + патчи на добавление IMQ/ipset.
В sysctl увеличение ARP-таблицы.
у сетевых увеличен ring buffer.
Считай обычная линукс-машина.

 

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 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 Baneff
      Всем привет.
      Давно использую freebsd + ipfw + dummynet + kernel nat + ещё куча всякого разного и всё на одном серваке. Менять платформу не хочу - старый я уже для этого. Так вот. Нагрузка постепенно растёт, пора как-бы железо менять в очередной раз, но есть проблема. Всё в этой схеме прекрасно параллелится на мультиядерной системе. Всё, кроме старичка DUMMYNET. В очередной раз смотрю на процесс kernel{dummynet} и в очередной раз вижу конкретное узкое место во всй системе. Обойти невозможно, работает только в один поток и когда загрузка превышает 80-90% начинаются естественные проблемы. Все остальное работает с большим запасом по нагрузке. Вот и вопрос: как-то эту проблему удаётся решать? Чем шейпить юзеров, если не дамминетом? Или может появилась возможность как-то его параллелить? Или, возможно, какие-то новые методы позволяют как-то снизить нагрузку на дамминет? В документации появились некие новые варианты настроек CoDel, PIE, FQ-CoDel и FQ-PIE в дополнение к старым, может они помогут? Кто-то пробовал?
      Спасибо.
    • By FosterUA
      Сегодня на появилось
      cam status uncorrectable parity/crc error
      Reatrying command
      Write fpdma queued
       
      Подскажите что это ? Спасибо
    • By Baneff
      Доброго всем дня. А остались ли тут специалисты по FreeBSD? Или все уже перешли на сторону Темнейшего?
      Вопрос вот возник. Изучаю возможность внедрения технологии vlan-per-user и понадобилось вот создать на машинке под FreeBSD несколько тысяч пользовательских виланов. Как кошернее это делать? Сгенерировать конфиг скриптом и просто добавить в rc.conf ? Не трогать rc.conf и генерить всю эту байду стартовым скриптом? Сколько времени займёт тогда процесс генерации например 4000 виланов? И вообще, как сама FreeBSD среагирует на такое издевательство, не вылезет ли какая нехватка буферов, дескрипторов и тому подобное. Возможно под такой случай требуется какой-то тюнинг фри? Поделитесь опытом, плиз. Спасибо.
    • By LENS
      Друзья, помогите пожалуйста разобраться с проблемой скорости
       
      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 все работает нормально.
      С меня бутылка хорошего горячительного средства или скажите сколько если устали пить
×