Перейти к содержимому
Local
Новичок я тут

NAT на freebsd

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

Доброго вечера, хотел бы услышать мнение знающих людей, какой фаервол выбрать для ната что удобней, производительней ? ipfw или pf кто что использует

Поделиться сообщением


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

ipfw kernel nat

Поделиться сообщением


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

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

  • Thanks 1
  • Haha 2

Поделиться сообщением


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

На FreeBSD 11.2 и выше только pf NAT.

Поделиться сообщением


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

ipfw kernel nat

 

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

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

 

image.png.9af1c2e7af2da3368b0ba98b0157abbf.png

Изменено пользователем Sоrk

Поделиться сообщением


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

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

 

Процентов 10, может 15 выиграете.

Пробовали и то и другое, разница не такая уж критичная. Сейчас используем pf.

Поделиться сообщением


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

ipfw kernel nat

 

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

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

 

image.png.9af1c2e7af2da3368b0ba98b0157abbf.png

просьба кинуть конфиги, тюнинг, количество процов привязку даминет и сетевок в лс 

Поделиться сообщением


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

так интересно всем же

И мне в личку спасибо 

Поделиться сообщением


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

Настройки ядра: /usr/src/sys/amd64/conf/GENERIC - ничего особенного

#options      INET6  #disable IPv6

options         IPFIREWALL
options         IPFIREWALL_NAT
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         HZ=1000
options         NETGRAPH
options         NETGRAPH_IPFW
options         NETGRAPH_NAT
options         NETGRAPH_NETFLOW
options         NETGRAPH_SPLIT
options         NETGRAPH_ETHER
options         NETGRAPH_KSOCKET
options         NETGRAPH_SOCKET
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_PPTPGRE
options         NETGRAPH_TCPMSS
options         NETGRAPH_VJC
device          lagg

/boot/loader.conf

alias_ftp_load="YES"
alias_pptp_load="YES"
net.inet.tcp.tcbhashsize=4096
net.isr.maxthreads=2
net.isr.defaultqlimit=4096
net.isr.bindthreads=1
cc_htcp_load="YES"
cc_chd_load="YES"
net.inet.tcp.hostcache.cachelimit="0"
net.inet.tcp.tso=0
net.link.ifqmaxlen="2048"
hw.ix.tx_process_limit=-1
hw.ix.rx_process_limit=-1

/etc/sysctl.conf

net.inet.ip.fw.dyn_max=5000000
net.inet.ip.fw.dyn_buckets=65535

net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.inet.ip.ttl=128
kern.ipc.somaxconn=4096
net.link.ether.inet.log_arp_movements=0
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.tcp.rfc1323=1
net.inet.tcp.hostcache.expire=1
net.inet.ip.redirect=0

net.inet.ip.forwarding=1
net.isr.dispatch=direct
net.inet.raw.maxdgram=16384
net.inet.raw.recvspace=16384
net.link.ether.inet.max_age=300
kern.ipc.maxsockbuf=2097152
net.inet.tcp.sendbuf_max=2097152
net.inet.tcp.recvbuf_max=2097152
net.inet.tcp.cc.algorithm=htcp
net.inet.tcp.cc.htcp.adaptive_backoff=1
net.inet.tcp.cc.htcp.rtt_scaling=1
kern.ipc.soacceptqueue=1024
net.inet.tcp.mssdflt=1460
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.syncache.rexmtlimit=0
net.inet.tcp.maxtcptw=40960
net.inet.tcp.tso=0
net.inet.tcp.abc_l_var=44
kern.sync_on_panic=1
net.inet.tcp.syncookies=0
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.hifirst=1024

kern.random.harvest.mask=351
net.route.netisr_maxqlen=2048
hw.intr_storm_threshold=9000
net.inet.tcp.rfc6675_pipe=1

ipfw show

00010    allow ip from me to any
00030    allow icmp from any to me
00040    reject tcp from any to table(63) in via vlan10
00050    reject udp from any to table(63) in via vlan10
00110    nat 123 ip from table(5) to any out via vlan21
00120    nat 124 ip from table(6) to any out via vlan21
00130    nat 125 ip from table(16) to any out via vlan21
00140    nat tablearg ip from table(3) to any out via vlan21
00210    nat 123 ip from any to table(7) in via vlan21
00220    nat 124 ip from any to table(8) in via vlan21
00230    nat 125 ip from any to table(17) in via vlan21
00240    nat tablearg ip from any to table(4) in via vlan21
65535    allow ip from any to any

vlan10 - внутрнний
vlan21 - внешний

table 3     #внутренние сети dynamic nat tablearg  (ipfw table 3 add 172.17.0.0/16 5)
table 5     #внутренние адреса static nat 123
table 6     #внутренние адреса static nat 124
table 16    #внутренние адреса static nat 125

table 4      #внешние адреса dynamic nat tablearg (ipfw table 4 add 99.88.77.66/32 5)
table 7      #внешние адреса static nat 123
table 8      #внешние адреса static nat 124
table 17     #внешние адреса static nat 125

пример настройки статик-нат (таких трансляций более 500)

ipfw nat 123 config log unreg_only  redirect_addr 172.18.1.1 99.88.77.11 redirect_addr 172.18.1.2 99.88.77.12 redirect_addr ...
ipfw nat 124 config log unreg_only  redirect_addr 172.18.2.2 99.88.77.13 redirect_addr 172.18.2.3 99.88.77.14 redirect_addr ...
ipfw nat 125 config log unreg_only  redirect_addr 172.18.3.4 99.88.77.15  redirect_addr 172.18.3.5 99.88.77.16 redirect_addr ...

Пример настройки динамик-ната (таких трансляций более 100)

ipfw table 3 add 172.17.0.0/16 5
ipfw table 4 add 99.88.77.66/32 5
ipfw nat 5 config ip 99.88.77.66 log deny_in unreg_only reset

ipfw nat show log

nat 5: icmp=0, udp=16, tcp=278, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=294
nat 7: icmp=6, udp=306, tcp=7075, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=7387
nat 8: icmp=34, udp=658, tcp=8342, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=9034
nat 10: icmp=30, udp=1539, tcp=11562, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=13131
nat 11: icmp=23, udp=548, tcp=11726, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=12297
nat 12: icmp=53, udp=1650, tcp=42239, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=43942
nat 13: icmp=31, udp=2079, tcp=29572, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=31682
nat 14: icmp=22, udp=1399, tcp=34059, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=35480
nat 16: icmp=41, udp=1350, tcp=31768, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=33159
nat 17: icmp=8, udp=1592, tcp=14672, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=16272
nat 18: icmp=57, udp=1170, tcp=28944, sctp=0, pptp=0, proto=1, frag_id=0 frag_ptr=0 / tot=30172
nat 19: icmp=19, udp=566, tcp=13708, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=14293
nat 20: icmp=12, udp=854, tcp=10584, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=11450
nat 21: icmp=18, udp=400, tcp=4506, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=4924
nat 22: icmp=43, udp=1546, tcp=20871, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=22460
nat 23: icmp=49, udp=1829, tcp=25230, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=27108
nat 24: icmp=26, udp=62, tcp=2269, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2357
nat 25: icmp=35, udp=611, tcp=16542, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=17188
nat 26: icmp=14, udp=193, tcp=1122, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=1329
nat 27: icmp=1, udp=80, tcp=2590, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2671
nat 28: icmp=48, udp=2055, tcp=26846, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=28949
nat 29: icmp=12, udp=397, tcp=9285, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=9694
nat 30: icmp=33, udp=1770, tcp=27310, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=29113
nat 31: icmp=78, udp=836, tcp=19699, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=20613
nat 32: icmp=69, udp=1807, tcp=32956, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=34832
nat 33: icmp=1, udp=29, tcp=2796, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2826
nat 34: icmp=69, udp=479, tcp=24091, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=24639
nat 35: icmp=3, udp=140, tcp=4799, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=4942
nat 37: icmp=17, udp=251, tcp=4281, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=4549
nat 38: icmp=63, udp=2679, tcp=43268, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=46010
nat 64: icmp=0, udp=199, tcp=2941, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=3140
nat 65: icmp=0, udp=610, tcp=2999, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=3609
nat 66: icmp=1, udp=1690, tcp=7648, sctp=0, pptp=2, proto=0, frag_id=2 frag_ptr=0 / tot=9343
nat 67: icmp=4, udp=1061, tcp=6268, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=7333
nat 68: icmp=0, udp=1567, tcp=3770, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=5337
nat 69: icmp=65, udp=652, tcp=5133, sctp=0, pptp=0, proto=0, frag_id=86 frag_ptr=0 / tot=5936
nat 70: icmp=4, udp=2047, tcp=6630, sctp=0, pptp=2, proto=0, frag_id=0 frag_ptr=0 / tot=8683
nat 71: icmp=4, udp=315, tcp=5447, sctp=0, pptp=4, proto=0, frag_id=0 frag_ptr=0 / tot=5770
nat 72: icmp=3, udp=338, tcp=3401, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=3742
nat 73: icmp=3, udp=1012, tcp=6264, sctp=0, pptp=1, proto=0, frag_id=0 frag_ptr=0 / tot=7280
nat 74: icmp=5, udp=1799, tcp=11373, sctp=0, pptp=3, proto=0, frag_id=0 frag_ptr=0 / tot=13180
nat 75: icmp=9, udp=2026, tcp=12259, sctp=0, pptp=8, proto=0, frag_id=0 frag_ptr=0 / tot=14302
nat 76: icmp=1, udp=597, tcp=4629, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=5227
nat 77: icmp=2, udp=328, tcp=2967, sctp=0, pptp=3, proto=0, frag_id=0 frag_ptr=0 / tot=3300
nat 78: icmp=6, udp=3333, tcp=16732, sctp=0, pptp=58, proto=0, frag_id=97 frag_ptr=0 / tot=20226
nat 79: icmp=2, udp=647, tcp=3746, sctp=0, pptp=1, proto=0, frag_id=0 frag_ptr=0 / tot=4396
nat 80: icmp=1, udp=2256, tcp=13327, sctp=0, pptp=20, proto=0, frag_id=0 frag_ptr=0 / tot=15604
nat 81: icmp=7, udp=1887, tcp=10885, sctp=0, pptp=9, proto=0, frag_id=0 frag_ptr=0 / tot=12788
nat 82: icmp=29, udp=1353, tcp=8849, sctp=0, pptp=5, proto=0, frag_id=0 frag_ptr=0 / tot=10236
nat 83: icmp=2, udp=495, tcp=4295, sctp=0, pptp=28, proto=0, frag_id=0 frag_ptr=0 / tot=4820
nat 84: icmp=8, udp=821, tcp=6017, sctp=0, pptp=0, proto=0, frag_id=1 frag_ptr=0 / tot=6847
nat 85: icmp=0, udp=42, tcp=610, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=652
nat 87: icmp=6, udp=637, tcp=5908, sctp=0, pptp=2, proto=0, frag_id=0 frag_ptr=0 / tot=6553
nat 88: icmp=6, udp=3040, tcp=5745, sctp=0, pptp=0, proto=0, frag_id=4 frag_ptr=0 / tot=8795
nat 90: icmp=4, udp=576, tcp=5988, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=6568
nat 91: icmp=0, udp=1237, tcp=2647, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=3884
nat 92: icmp=4, udp=1155, tcp=5125, sctp=0, pptp=2022, proto=0, frag_id=0 frag_ptr=0 / tot=8306
nat 93: icmp=6, udp=1085, tcp=10667, sctp=0, pptp=2, proto=0, frag_id=0 frag_ptr=0 / tot=11760
nat 94: icmp=13, udp=277, tcp=1646, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=1936
nat 95: icmp=2, udp=583, tcp=3391, sctp=0, pptp=2, proto=0, frag_id=0 frag_ptr=0 / tot=3978
nat 96: icmp=1, udp=136, tcp=2157, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2294
nat 97: icmp=3, udp=26, tcp=573, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=602
nat 98: icmp=1, udp=1006, tcp=4728, sctp=0, pptp=1, proto=0, frag_id=0 frag_ptr=0 / tot=5736
nat 99: icmp=8, udp=903, tcp=6259, sctp=0, pptp=1, proto=0, frag_id=0 frag_ptr=0 / tot=7171
nat 100: icmp=3, udp=216, tcp=4377, sctp=0, pptp=3, proto=0, frag_id=0 frag_ptr=0 / tot=4599
nat 101: icmp=0, udp=20, tcp=165, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=185
nat 102: icmp=16, udp=7776, tcp=10331, sctp=0, pptp=13, proto=0, frag_id=3 frag_ptr=0 / tot=18139
nat 103: icmp=0, udp=14, tcp=121, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=135
nat 104: icmp=0, udp=13, tcp=298, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=311
nat 105: icmp=0, udp=2, tcp=91, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=93
nat 109: icmp=3, udp=1335, tcp=8232, sctp=0, pptp=15, proto=0, frag_id=0 frag_ptr=0 / tot=9585
nat 111: icmp=5, udp=384, tcp=1994, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=2383
nat 112: icmp=0, udp=11, tcp=140, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=151
nat 116: icmp=0, udp=49, tcp=472, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=521
nat 118: icmp=0, udp=42, tcp=236, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=278
nat 119: icmp=5, udp=32, tcp=782, sctp=0, pptp=11, proto=0, frag_id=0 frag_ptr=0 / tot=830
nat 123: icmp=0, udp=0, tcp=15, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=15
nat 124: icmp=0, udp=1, tcp=16, sctp=0, pptp=2, proto=0, frag_id=0 frag_ptr=0 / tot=19
nat 125: icmp=140, udp=3929, tcp=24986, sctp=0, pptp=380, proto=5, frag_id=0 frag_ptr=0 / tot=29440
nat 128: icmp=0, udp=20, tcp=1858, sctp=0, pptp=0, proto=0, frag_id=0 frag_ptr=0 / tot=1878

привязка прерываний к ядру (HT отключен):

cpuset -l 0 -x 264
cpuset -l 1 -x 265
cpuset -l 2 -x 266
cpuset -l 3 -x 267

cpuset -l 0 -x 269
cpuset -l 1 -x 270
cpuset -l 2 -x 271
cpuset -l 3 -x 272

пропатчен размер таблицы:

/sys/netinet/libalias/alias_local.h
#define LINK_TABLE_OUT_SIZE        63997
#define LINK_TABLE_IN_SIZE         63997

 

  • Like 3

Поделиться сообщением


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

и да, сервер занимается исключительно задачей NAT - никаких dummynet, dns, webserver, netflow/ipcad, dhcp

 

rc.conf

ifconfig_ix0="-tso4 -tso6 -lro -vlanhwtso"
ifconfig_ix1="-tso4 -tso6 -lro -vlanhwtso"

powerd_enable="YES"
powerd_flags="-a maximum"

tcp_restrict_rst="YES"
tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
icmp_bmcastecho="NO"
tcp_extensions="YES"

все сети для статик-нат отправлены в blackhole (если такого не сделать и этот IP почему-то не попал в трансляцию/не занят весь входящих трафик на него будет попадать в L3 петлю BORDER<->NAT SERVER до истечения TTL)

route add -net 99.88.77.0/25 127.0.0.1 -blackhole

 

  • Like 2

Поделиться сообщением


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

Спасибо, тюнинг норм. Патчить libalias никогда не пробовал, нужно будет попробовать.

Рекомендации от меня:

это на хрен выкинуть с сервера НАТ:

cc_htcp_load="YES"
cc_chd_load="YES"
net.inet.tcp.cc.algorithm=htcp
net.inet.tcp.cc.htcp.adaptive_backoff=1
net.inet.tcp.cc.htcp.rtt_scaling=1

выше указанные параметры нужны для апаче.

 

И к стати не пробовали второй проц поставить, и разделить прерывания по 4 на каждый проц?

 

Изменено пользователем Pautiina
  • Like 1

Поделиться сообщением


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

И к стати не пробовали второй проц поставить, и разделить прерывания по 4 на каждый проц?

Вы как попробуете поставить 2шт e5-1650, сразу нам напишите. Посмеемся вместе.

И в чем смысл выделять по 4 прерывания на 6ти ядерный проц?)

Изменено пользователем KaYot

Поделиться сообщением


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

Вы как попробуете поставить 2шт e5-1650, сразу нам напишите. Посмеемся вместе.

И в чем смысл выделять по 4 прерывания на 6ти ядерный проц?)

Мог бы и не ржать, а сказать: ты там ошибся, наверное по 6-ть имел ввиду?!

Поделиться сообщением


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

Вопрос на засыпку, есть разница будет pf вкомпилен в ядро или подгружаться модулем? какое влияние на производительность.

Поделиться сообщением


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

Никакой разницы.

Изменено пользователем KaYot

Поделиться сообщением


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

#options      INET6  #disable IPv6

После этой опции можно не смотреть дальше.
Выпиливание этой опции приводит к странным последствиям в TCP стеке.
PR с такой опцией стараются не решать.

Поделиться сообщением


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

После этой опции можно не смотреть дальше.
Выпиливание этой опции приводит к странным последствиям в TCP стеке.
PR с такой опцией стараются не решать.

Да что вы говорите? :D:D:D

Расскажите это тем у кого PPPOE и MPD :))))

У меня на уйме своих и тех что я веду акцесниках вырезан нах@р IPV6 в ядре - несколько лет полет нормальный.

  • Like 1

Поделиться сообщением


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

После этой опции можно не смотреть дальше.
Выпиливание этой опции приводит к странным последствиям в TCP стеке.
PR с такой опцией стараются не решать.

с какой версии фри ?

Поделиться сообщением


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

с какой версии фри ?

c 4й

В смысле выпиливать в6 начали с 4й. полет нормальный.

Изменено пользователем maxx
  • Like 1
  • Haha 1

Поделиться сообщением


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

Если не используется ipnat то ipV6 вырезаю тоже, для ipnat нужен этот параметр в ядре, по крайней мере так было в 10.* и 11, как в 12-й ветке не знаю, не тестировал.

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

 

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: 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 все работает нормально.
      С меня бутылка хорошего горячительного средства или скажите сколько если устали пить
    • Автор: zaza12
      В общем после пользования  приоритета трафика около 3 лет на nas микротик, с переходом на nas freebsd ubilling ощутимо сказывается на пользовании. Поскольку сеть маленькая , в глубинке и почти все клиенты   на точках , то 3м в трубе заполнить на раз, два и последующие запросы , игры или просто серфинг,  пинг ого. Биллинг работает как часы , без нареканий. Привязал очереди к уже готовым трубам для каждого ip , перепробовал множество вариаций , но пока не могу запустить , может кто ткнет где не туда смотрю? К каждой трубе для каждого пользователя привязал 4 очереди с разными портами (потом можно добавить и по размеру файлов) . Очереди как бы заполняются , но скорость (например 3m) для каждого pipe  почему то общая и для других ip , но по идее должна быть для каждого . Это одна из нескольких конфигураций , возможно кто подскажет где не так? Копию рабочего биллинга установил на виртуалку для оттачивания , чтобы клиенты не прибили за эксперименты!
       
      #onconnect
       
      #SPEED CONTROL ${fwcmd} pipe `expr $ID + 18101` config bw $SPEED$SCOUNT   mask dst-ip 0xffffffff ${fwcmd} pipe `expr $ID + 101` config bw $UPSPEED$SCOUNT   mask src-ip 0xffffffff    # WAN -> LAN ${fwcmd} queue 111 config weight $wot   queue 50 pipe `expr $ID + 18101`  mask dst-ip 0xffffffff   ${fwcmd} queue 112 config weight $http  queue 50 pipe `expr $ID + 18101`  mask dst-ip 0xffffffff  ${fwcmd} queue 113 config weight $tcp   queue 50 pipe `expr $ID + 18101`  mask dst-ip 0xffffffff ${fwcmd} queue 114 config weight $all   queue 50 pipe `expr $ID + 18101`  mask dst-ip 0xffffffff   # LAN -> WAN ${fwcmd} queue 211 config weight $wot   queue 50 pipe `expr $ID + 101` mask src-ip 0xffffffff ${fwcmd} queue 212 config weight $http  queue 50 pipe `expr $ID + 101` mask src-ip 0xffffffff ${fwcmd} queue 213 config weight $tcp   queue 50 pipe `expr $ID + 101` mask src-ip 0xffffffff ${fwcmd} queue 214 config weight $all   queue 50 pipe `expr $ID + 101` mask src-ip 0xffffffff   #firewall.conf   # WAN -> LAN ${FwCMD} add 13011 queue 111 ip from any ${wot} to any via ${LAN_IF}  out ${FwCMD} add 13022 queue 112 ip from any ${http} to any via ${LAN_IF} out ${FwCMD} add 13033 queue 113 ip from any ${tcp} to any  via ${LAN_IF} out ${FwCMD} add 13044 queue 114 ip from any not ${wot},${http},${tcp}  to any via ${LAN_IF}  out   # LAN -> WAN ${FwCMD} add 13055 queue 211 ip from any to any ${wot} via ${LAN_IF} in ${FwCMD} add 13066 queue 212 ip from any to any ${http} via ${LAN_IF} in ${FwCMD} add 13077 queue 213 ip from any to any ${tcp} via ${LAN_IF} in ${FwCMD} add 13088 queue 214 ip from any to any not ${wot},${http},${tcp}     via ${LAN_IF} in   root@billing:~ # ipfw queue show q00213  50 sl. 0 flows (64 buckets) sched 101 weight 33 lmax 0 pri 0 droptail     mask:  0x00 0xffffffff/0x0000 -> 0x00000000/0x0000 q00212  50 sl. 2 flows (64 buckets) sched 101 weight 50 lmax 0 pri 0 droptail     mask:  0x00 0xffffffff/0x0000 -> 0x00000000/0x0000 BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp   6 ip       10.10.100.6/0             0.0.0.0/0      132     5762  0    0   0  14 ip       10.10.100.2/0             0.0.0.0/0       29     1330  0    0   0 q00214  50 sl. 1 flows (64 buckets) sched 101 weight 1 lmax 0 pri 0 droptail     mask:  0x00 0xffffffff/0x0000 -> 0x00000000/0x0000  14 ip       10.10.100.2/0             0.0.0.0/0       60     4800  0    0   0 q00211  50 sl. 0 flows (64 buckets) sched 101 weight 100 lmax 0 pri 0 droptail     mask:  0x00 0xffffffff/0x0000 -> 0x00000000/0x0000 q00111  50 sl. 0 flows (64 buckets) sched 18101 weight 100 lmax 0 pri 0 droptail     mask:  0x00 0x00000000/0x0000 -> 0xffffffff/0x0000 q00114  50 sl. 1 flows (64 buckets) sched 18101 weight 1 lmax 0 pri 0 droptail     mask:  0x00 0x00000000/0x0000 -> 0xffffffff/0x0000  22 ip           0.0.0.0/0         10.10.100.2/0       45     2664  0    0   0 q00113  50 sl. 0 flows (64 buckets) sched 18101 weight 33 lmax 0 pri 0 droptail     mask:  0x00 0x00000000/0x0000 -> 0xffffffff/0x0000 q00112  50 sl. 1 flows (64 buckets) sched 18101 weight 50 lmax 0 pri 0 droptail     mask:  0x00 0x00000000/0x0000 -> 0xffffffff/0x0000  18 ip           0.0.0.0/0         10.10.100.6/0      107    73002 15 10860   0     root@billing:~ # ipfw show 00004    58     3793 allow ip from table(2) to 10.10.100.1 dst-port 53 via em0 00004    58    10586 allow ip from 10.10.100.1 to table(2) src-port 53 via em0 00004     0        0 allow ip from table(2) to me dst-port 80 via em0 00004     0        0 allow ip from me to table(2) src-port 80 via em0 00005     0        0 fwd 127.0.0.1,80 ip from table(47) to not me dst-port 80 00005     0        0 fwd 127.0.0.1,80 ip from 172.32.0.0/20 to not me dst-port 80 00005     0        0 reset ip from 172.32.0.0/20 to any dst-port 443 00006     0        0 reset ip from table(47) to any dst-port 443,444 00006     0        0 allow ip from me to 172.32.0.0/20 via em0 out 00006     0        0 allow ip from 172.32.0.0/20 to me via em0 in 00101    28     1840 allow ip from me to 10.10.100.0/24 via em0 out 00102     1      328 allow ip from 10.10.100.0/24 to me via em0 in 06000 25885 13463718 nat 1 ip from table(2) to not table(9) out xmit em1 06001 23082 18714879 nat 1 ip from any to me in recv em1 13011     0        0 queue 111 ip from any 53,9081,9100,9090,8086,3724,9091,8087,6112,6881-6999 to any via em0 out 13022 22702 18675566 queue 112 ip from any 80,443,3128,8080,8081 to any via em0 out 13033     0        0 queue 113 ip from any 20,21,22,23,25,110,179,2222,3389 to any via em0 out 13044   276    18704 queue 114 ip from any not 53,9081,9100,9090,8086,3724,9091,8087,6112,6881-6999,80,443,3128,8080,8081,20,21,22,23,25,110,179,2222,3389 to any via em0 out 13055     0        0 queue 211 ip from any to any dst-port 53,9081,9100,9090,8086,3724,9091,8087,6112,6881-6999 via em0 in 13066 25736 13635783 queue 212 ip from any to any dst-port 80,443,3128,8080,8081 via em0 in 13077     0        0 queue 213 ip from any to any dst-port 20,21,22,23,25,110,179,2222,3389 via em0 in 13088   397    37455 queue 214 ip from any to any not dst-port 53,9081,9100,9090,8086,3724,9091,8087,6112,6881-6999,80,443,3128,8080,8081,20,21,22,23,25,110,179,2222,3389 via em0 in 14000     0        0 pipe tablearg ip from table(3) to any via em0 in 14001     0        0 pipe tablearg ip from any to table(4) via em0 out 65533     0        0 deny ip from table(2) to any via em0 65535  4667   857482 allow ip from any to any    
×