Перейти до

NAT на freebsd


Рекомендованные сообщения

  • 8 months later...
  • Відповіді 153
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Лучший НАТ на БСД это любой дистрибутив linux

Ага, он поставит сервак типо R210 или G6/7/8 за 400+.

Настройки ядра: /usr/src/sys/amd64/conf/GENERIC - ничего особенного #options      INET6  #disable IPv6 options         IPFIREWALL options         IPFIREWALL_NAT options         IPFIREWALL_DEFAULT

Posted Images

В 12.02.2019 в 20:02, ramsess сказал:

А как у pf_nat обстоят дела с многоядерными системами ? Все еще печалька ?

C 10 версии FreeBSD SMP работает на PF

так что все нормально паралелиться.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 months later...

top -HPS (К.О), а вообще, исходя из Ваших мощностей и нагрузок. Скажу сразу - совсем немного (раза в 3, так) по сравнению с ipwf NAT. Даже на старенькой оборудке, да.

 

P. S.: Сам использовал связку ipwf+pfnat...

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, ISK сказав:

top -HPS

pf не видел в списке потому и спросил может быть есть другой способ увидеть, а получилось что он настолько мало ест ресурсов что просто не попадает в список

Ссылка на сообщение
Поделиться на других сайтах
9 часов назад, WideAreaNetwork сказал:

pf не видел в списке потому и спросил может быть есть другой способ увидеть, а получилось что он настолько мало ест ресурсов что просто не попадает в список

Забыл сказать - если pf у Вас в ядре, то никак...

Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, WideAreaNetwork сказал:

нет не в ядре, но хочу скомпилить ядро с ним

А смысл? В *nix-мире не важно в ядре модуль или отдельно, на скорость это не влияет.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, WideAreaNetwork сказал:

нет не в ядре, но хочу скомпилить ядро с ним

Смотрите в kldstat, есть ли он там? Если да, то все равно не увидите... 

 

44 минуты назад, KaYot сказал:

А смысл? В *nix-мире не важно в ядре модуль или отдельно, на скорость это не влияет.

Смотря какой модуль. Возьмите хотя бы ущербный однопоточный dummynet в ipfw...

Відредаговано ISK
Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, ISK сказал:

Смотря какой модуль. Возьмите хотя бы ущербный однопоточный dummynet в ipfw...

От же ж. Ну почему он ущербный? Однопоточность его - это единственный недостаток, который работе не мешает. Он и в один поток шейпит прекрасно. Чем шейпить-то будете?

Ссылка на сообщение
Поделиться на других сайтах

И ещё, на всякий случай напомню, что dummynet - это только одна из частей ipfw, которая занимается только шейпингом, всё остальное в ipfw прекрасно параллелится.

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Baneff сказал:

Чем шейпить-то будете?

Вот то-то же и оно, что больше нечем...

 

6 минут назад, Baneff сказал:

всё остальное в ipfw прекрасно параллелится.

Вот, расскажу из собственного субъективного опыта:

 

3 года назад юзал ipfw kernel nat, который работал как часы. Но когда абонов резко прибавилась, а нагрузки возросли до 120 kpps (при скорости более 600 Мбит/сек) он начал перманентно загинаться на ровном месте. При этом dummynet, резко начинал грузить 1 ядро CPU в 100% и с ним ничего нельзя было сделать, даже прибить. Остальные 7 ядер тоже были на 98-99%. В общем беда-печаль. Решилось все переходом на связку ipfw+pf_nat. Тянет и по сей день, причем с той поры нагрузка возросла почти в 2 раза. И dummynet теперь 0,1 - 0,5%.

 

Так-то...

Ссылка на сообщение
Поделиться на других сайтах
16 минут назад, ISK сказал:

Вот, расскажу из собственного субъективного опыта:

Ну вы пошли в обход вместо того, чтобы разобраться в чём дело. Я тоже из своего опыта: за много лет никогда не возникало необходимости включать pf и нагрузка как бы давно не 600кбит/с. Большую роль играет правильность составления правил ipfw. Всё должно быть логично, всё что можно - паковать в таблицы, минимум правил. А я встречал конфигурации, где были тысячи правил, так чего ж удивляться. Вот, например ниже график загрузки процессора (зелёный) и отдельно dummynet (синий) на довольно таки нагруженной машинке на боевом дежурстве. Никаких костылей, всё штатно.

1153870448_.png.679561b2af004160b2a8f3ef0761bc31.png

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Baneff сказал:

Большую роль играет правильность составления правил ipfw. Всё должно быть логично, всё что можно - паковать в таблицы, минимум правил.

Ну как бы не первый раз с ipfw дело имел. Набор правил, 2 пайпа для шейпера и таблицы были стандартные от Ubilling + блокировка входящего трафика и всё - всего где-то 17 - 18 правил. Ничего особенного...

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, ISK сказал:

Ну как бы не первый раз с ipfw дело имел. Набор правил, 2 пайпа для шейпера и таблицы были стандартные от Ubilling + блокировка входящего трафика и всё - всего где-то 17 - 18 правил. Ничего особенного...

Ну спорить не буду, у каждого свои ньюансы, всякое может быть.

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, ISK сказав:

Смотрите в kldstat, есть ли он там?

естественно есть) просто модулем загружается

5 часов назад, ISK сказав:

И dummynet теперь 0,1 - 0,5%

можно узнать что использовалось из железа?

 

4 часа назад, Baneff сказав:

отдельно dummynet (синий) на довольно таки нагруженной машинке

интересует железо, и какой трафик бежал (pps, mbit)

Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, WideAreaNetwork сказал:

можно узнать что использовалось из железа?

Старое: HP Proliant DL360G5 2x Intel Xeon 5430 4@2.60GHZ, 8GB DDR2, дополнительно бралась 2-port Intel 82576 (igb).

 

17 минут назад, WideAreaNetwork сказал:

и какой трафик бежал (pps, mbit)

110-130 kpps, 600-700 Mbit/sec...

Ссылка на сообщение
Поделиться на других сайтах
В 08.02.2019 в 13:45, Sоrk сказал:

ipfw kernel nat

 

на  Xeon E5-1650 v4 + Intel X520 + FreeBSD 12.0-RELEASE-p1 результат такой.

Реально ли на PF NAT получить меньшую нагрузку?

 

image.png.9af1c2e7af2da3368b0ba98b0157abbf.png

На чому сьогодні модно шейпити і натити 10г трафіка? Маю на  увазі залізо, система фря.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Конденсат Бозе-Эйнштейна сказал:

На чому сьогодні модно шейпити і натити 10г трафіка? Маю на  увазі залізо, система фря.

Неверно задан вопрос. Правильнее - на какой системе это делать.

Мой NAT-box, centos 6.9 с ядром 4.9.50, Xeon E3-1220 v1, X520-DA2.

nat1.jpg.e3049126274e934993787ae34b1c952a.jpgnat2.jpg.5dd7fff7e32df72826ff0c25530c6ce4.jpg

 

Разительная разница c картинками выше на BSD? E3-1220v1 слабее чем e5-1650v4 раза в 3.

  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, KaYot сказав:

Разительная разница c картинками выше на BSD? E3-1220v1 слабее чем e5-1650v4 раза в 3

да тут надо точно сравнивать, кроме ната есть еще что-то на машинах или нет, может не все озвучили

Ссылка на сообщение
Поделиться на других сайтах

Дайте и я писюном померяюсь. 2*X5672  @ 3.20GHz Старое говнецо HP Proliant DL360G6, а тащит. В ЧНН выдает тариф 200М без соплей. НАТ, Терминация с шейпом, птичка для маршрутов, блокировка запрщенных сайтов. Debian c kernel'ом 4,0,9

2020-02-19_21-37-10.thumb.png.292e6ef7aac2452c30e624d591129480.png

 

Відредаговано Dimkers
  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Dimkers сказал:

Дайте и я писюном померяюсь. 2*X5672  @ 3.20GHz Старое говнецо HP Proliant DL360G6, а тащит. В ЧНН выдает тариф 200М без соплей. НАТ, Терминация с шейпом, птичка для маршрутов, блокировка запрщенных сайтов. Debian c kernel'ом 4,0,9

2020-02-19_21-37-10.thumb.png.292e6ef7aac2452c30e624d591129480.png

 

А яка мережева карточка?

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, KaYot сказал:

Неверно задан вопрос. Правильнее - на какой системе это делать.

Мой NAT-box, centos 6.9 с ядром 4.9.50, Xeon E3-1220 v1, X520-DA2.

nat1.jpg.e3049126274e934993787ae34b1c952a.jpgnat2.jpg.5dd7fff7e32df72826ff0c25530c6ce4.jpg

 

Разительная разница c картинками выше на BSD? E3-1220v1 слабее чем e5-1650v4 раза в 3.

На BSD, на почти аналогичном Вашему трафику 3.5Г в пике и почти аналогичном камне литография 22nm, не Xeon, на x520-DA2 на NAT-е ровно такие же цифры загрузки проца 30% в пике.

Відредаговано sanyadnepr
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від Nejron
      Всем здрям! ))
      Изложу суть :
      Имеется некий сервис (в данном случае IPTV личного производства)
      Хотелось бы контролировать с билинга доступ к нему.
      В профиле пользователя создал дополнительное поле с типом "TRIGGER".
       
      А вот дальше хочу спросить как правильно заполнить свою таблицу для ipfw?
      Добавлять/удалять от туда ip клиентов и возможно еще что то посоветуете.
      Возможно кто то что то подобное делал,
      не оставте начинающего админа без совета ?
       
    • Від Oleg2018
      Посоветуйте ,такая ситуация при сканировании хоста с биллингом во внешней сети открытые порты 5555 (stargazer), и 80 (apache). Если их нужно наверное спрятать от внешней сети, то как правильно написать правило ipfw ,касательно этих портов.Все остальное что вылезло после установки я закрыл, а здесь не получается никак. Спаибо заранее. 
    • Від Baneff
      Всем привет.
      Давно использую freebsd + ipfw + dummynet + kernel nat + ещё куча всякого разного и всё на одном серваке. Менять платформу не хочу - старый я уже для этого. Так вот. Нагрузка постепенно растёт, пора как-бы железо менять в очередной раз, но есть проблема. Всё в этой схеме прекрасно параллелится на мультиядерной системе. Всё, кроме старичка DUMMYNET. В очередной раз смотрю на процесс kernel{dummynet} и в очередной раз вижу конкретное узкое место во всй системе. Обойти невозможно, работает только в один поток и когда загрузка превышает 80-90% начинаются естественные проблемы. Все остальное работает с большим запасом по нагрузке. Вот и вопрос: как-то эту проблему удаётся решать? Чем шейпить юзеров, если не дамминетом? Или может появилась возможность как-то его параллелить? Или, возможно, какие-то новые методы позволяют как-то снизить нагрузку на дамминет? В документации появились некие новые варианты настроек CoDel, PIE, FQ-CoDel и FQ-PIE в дополнение к старым, может они помогут? Кто-то пробовал?
      Спасибо.
    • Від rusol
      Здравствуйте, голова уже болит, мысли закончились, может кто-то подскажет чего...

      Ситуация такая:

      Клиент жалуется, что c их ftp, который находиться в России, плохая скорость (прыгает от 10 Мбит/с до 30 Мбит/с, по тарифу должна быть 100 Мбит/с), проверили на ftp другого хостинга - все нормально, 100 Мбит.

      Я бы не писал сюда, но есть одно большое НО.. когда я захожу на главный маршрутизатор (FreeBSD + Nodeny 50.32 + IPFW + PF), то с главного сервака скорость отличная, а за серваком (в сети) скорость падает, при этом на другие ftp скорость хорошая с сети...

      То-есть без связки Nodeny + IPFW + PF - скорость отличная (на главном серваке).

      Подставлял реальный IP сервака на локальную машину, думал может ftp по IP что-то ограничивает, эффекта не дало...

      Может кто подскажет куда поглядеть, у меня уже мысли заканчиваются...
    • Від 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 все работает нормально.
      С меня бутылка хорошего горячительного средства или скажите сколько если устали пить

×
×
  • Створити нове...