Помогите выяснить причину. no buffer space available
Помогите выяснить причину. no buffer space available
Добрый день.
Для шейпинга использую связку
netgraph + ipfw
Кусок конфига который позволяет нарезать скорость пользователям в зависимости от тарифного плана:
$fwcmd pipe 1024 config bw 1024Kbit/s mask src-ip 0xffffffff # in
$fwcmd pipe 2024 config bw 512Kbit/s mask dst-ip 0xffffffff # out
$cmd pipe tablearg ip from table\(1\) to not table\(100\) out #
$cmd pipe tablearg ip from table\(4\) to not table\(0,100\) out #
$cmd pipe tablearg ip from not table\(100\) to table\(2\) in #
$cmd pipe tablearg ip from not table\(0\) to table\(5\) in #
В чем собственно вопрос.
Если возрастает нагрузка на сервер, получаю ошибку:
no buffer space available
У части людей ложится инет ......
В чем может быть причина ? Сетевухи менять пробовал.
Если я не использую очереди в трубах, может ли это привести к подобной ошибке ?
Система FreeBsd 7.1 Core 2 Duo + 2 Gb
Что прописать в sysctl ?
MPD, pppoe не использую ....
Для шейпинга использую связку
netgraph + ipfw
Кусок конфига который позволяет нарезать скорость пользователям в зависимости от тарифного плана:
$fwcmd pipe 1024 config bw 1024Kbit/s mask src-ip 0xffffffff # in
$fwcmd pipe 2024 config bw 512Kbit/s mask dst-ip 0xffffffff # out
$cmd pipe tablearg ip from table\(1\) to not table\(100\) out #
$cmd pipe tablearg ip from table\(4\) to not table\(0,100\) out #
$cmd pipe tablearg ip from not table\(100\) to table\(2\) in #
$cmd pipe tablearg ip from not table\(0\) to table\(5\) in #
В чем собственно вопрос.
Если возрастает нагрузка на сервер, получаю ошибку:
no buffer space available
У части людей ложится инет ......
В чем может быть причина ? Сетевухи менять пробовал.
Если я не использую очереди в трубах, может ли это привести к подобной ошибке ?
Система FreeBsd 7.1 Core 2 Duo + 2 Gb
Что прописать в sysctl ?
MPD, pppoe не использую ....
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
Полный ipfw скрипт выглядит как:
Как видите здесь нет очередей. Чем это чревато при высоких нагрузках ?
Может имеет смысл переносить гейт на Фрю 6.4 ?
По поводу опций sysctl + loader - перепроверю - отпишусь.
В нете нарыл что 7.1 как то криво с DUMMYNET работает .... (все чаще задумываюсь про FC .... )
Памагите люди добрые

Код: Выделить всё
#!/bin/sh
NatIP="Внешний IP"
oif="msk0"
iif="msk1"
NFlow_coll="IP коллектора "
/sbin/ipfw -q -f flush
/sbin/ipfw -f pipe flush
/etc/ipfw/tableflush
cmd="/sbin/ipfw add"
fwcmd="/sbin/ipfw"
##nat -- nat for table 1
##natA -- nat for unlim speed users
##natB -- nat for only UA-IX unlim speed users
/usr/sbin/ngctl mkpeer ipfw: nat 60 out
/usr/sbin/ngctl mkpeer ipfw: nat 80 out
/usr/sbin/ngctl mkpeer ipfw: nat 100 out
/usr/sbin/ngctl name ipfw:60 nat
/usr/sbin/ngctl name ipfw:80 natA
/usr/sbin/ngctl name ipfw:100 natB
/usr/sbin/ngctl connect ipfw: nat: 61 in
/usr/sbin/ngctl connect ipfw: natA: 81 in
/usr/sbin/ngctl connect ipfw: natB: 101 in
/usr/sbin/ngctl msg nat: setaliasaddr $NatIP
/usr/sbin/ngctl msg natA: setaliasaddr $NatIP
/usr/sbin/ngctl msg natB: setaliasaddr $NatIP
$cmd allow ip from any to any via lo0
$cmd deny ip from any to 127.0.0.0/8
$cmd deny log ip from 127.0.0.0/8 to any
$cmd allow tcp from any to any 88 in via $iif
$cmd allow tcp from any to any 22
#Deny rules
### table 101 deny in world side nets
### table 102 deny nets
#$fwcmd table 101 add 192.168.0.0/16
$fwcmd table 101 add 10.0.0.0/8
$fwcmd table 101 add 172.16.0.0/16
$fwcmd table 101 add 0.0.0.0/8
$fwcmd table 101 add 127.0.0.0/8
$fwcmd table 101 add 169.254.0.0/16
$fwcmd table 101 add 204.152.64.0/23
$fwcmd table 101 add 224.0.0.0/3
$cmd deny all from table\(101\) to any in via $oif
$cmd deny ip from any to any 137 in
$cmd deny ip from any to any 138 in
$cmd deny ip from any to any 139 in
$cmd deny ip from any to any 81 in
$fwcmd table 102 add 72.0.0.0/16
$fwcmd table 102 add 202.97.238.0/16
$fwcmd table 102 add 192.38.38.0/24
$cmd deny all from any to table\(102\)
$cmd deny all from table\(102\) to any
#Allow rules
#$cmd allow all from me to any
#$cmd allow all from any to me
###
## table 0 - table with UA-IX networks
#### Identical speed for World and UA-IX
## table 1 - table with allowed clients IP - OUT to (world+UA-IX)
## table 2 - table with allowed clients IP - IN from (world+UA-IX)
#### Unlim speed for World and UA-IX
## table 3 - table with unlimkbit/s allowed clients
$fwcmd pipe 1024 config bw 1024Kbit/s mask src-ip 0xffffffff # in
$fwcmd pipe 2024 config bw 512Kbit/s mask dst-ip 0xffffffff # out
### 512/256 world tarif
$fwcmd pipe 512 config bw 512Kbit/s mask src-ip 0xffffffff # in
$fwcmd pipe 612 config bw 256Kbit/s mask dst-ip 0xffffffff # out from client
### 512/256 world tarif for "only UA-IX unlim speed clients"
$fwcmd pipe 712 config bw 512Kbit/s mask src-ip 0xffffffff # in
$fwcmd pipe 812 config bw 256Kbit/s mask dst-ip 0xffffffff # out
$cmd pipe tablearg ip from table\(1\) to not table\(100\) out #Traffic to any from 1024/512 clients OUT
$cmd pipe tablearg ip from table\(4\) to not table\(0,100\) out #Traffic to world from 512/256 world speed clients OUT
$cmd netgraph 60 ipv4 from table\(1\) to not table\(100\) out via $oif
$cmd netgraph 80 ipv4 from table\(3\) to not table\(100\) out via $oif
$cmd netgraph 100 ipv4 from table\(6\) to not table\(100\) out via $oif
$cmd netgraph 61 ipv4 from not table\(100\) to $NatIP in via $oif
$cmd netgraph 81 ipv4 from not table\(100\) to $NatIP in via $oif
$cmd netgraph 101 ipv4 from not table\(100\) to $NatIP in via $oif
$cmd netgraph 71 ip from any to any in
$cmd pipe tablearg ip from not table\(100\) to table\(2\) in #Traffic to 1024/512 clients from any (IN)
$cmd pipe tablearg ip from not table\(0\) to table\(5\) in #Traffic from World to 512/256 clients (IN)
$cmd allow ip from any to table\(1\) limit src-addr 30
$cmd allow ip from any to table\(2\) limit src-addr 30
$cmd allow ip from table\(1\) to any limit src-addr 30
$cmd allow ip from table\(2\) to any limit src-addr 30
$cmd allow ip from any to table\(3\) limit src-addr 30
$cmd allow ip from table\(3\) to any limit src-addr 30
$cmd allow ip from any to table\(4\) limit src-addr 30
$cmd allow ip from any to table\(5\) limit src-addr 30
$cmd allow ip from table\(4\) to any limit src-addr 30
$cmd allow ip from table\(5\) to any limit src-addr 30
$cmd allow ip from any to table\(6\) limit src-addr 30
$cmd allow ip from table\(6\) to any limit src-addr 30
$cmd allow all from $NatIP to any out via $oif
$cmd allow all from me to any
$cmd allow all from any to me
$cmd fwd IPhttpserver,88 log logamount 10000 tcp from table\(100\) to any 80
$cmd allow ip from any to table\(100\) src-port 80
$cmd 65534 deny log logamount 100000 ip from any to any
/sbin/sysctl net.inet.ip.fw.one_pass=0
/usr/sbin/ngctl mkpeer ipfw: netflow 71 iface0
/usr/sbin/ngctl name ipfw:71 netflow
/usr/sbin/ngctl connect ipfw: netflow: 70 out0
/usr/sbin/ngctl mkpeer netflow: ksocket export inet/dgram/udp
/usr/sbin/ngctl msg netflow:export connect inet/IP kollektora:9996
/usr/sbin/ngctl msg netflow: setdlt { iface=0 dlt=12 }
/usr/sbin/ngctl msg netflow: setifindex { iface=0 index=5 }
Может имеет смысл переносить гейт на Фрю 6.4 ?
По поводу опций sysctl + loader - перепроверю - отпишусь.
В нете нарыл что 7.1 как то криво с DUMMYNET работает .... (все чаще задумываюсь про FC .... )

Памагите люди добрые


нетграф и дамминет вещи не совместимые
в семерке полностью переписали нетграф и дамминет и они устраивают переполнения стека
да и вообще дамминет ведет себя по странному при нагрузке
ip может в любой пай влететь, не подчиняясь никакой логике
сегодня прислали по рассылке 75 ошибок в ipfw
вообщем либо откатывайся до 6.2
либо шейпь ng_car
в семерке полностью переписали нетграф и дамминет и они устраивают переполнения стека
да и вообще дамминет ведет себя по странному при нагрузке
ip может в любой пай влететь, не подчиняясь никакой логике
сегодня прислали по рассылке 75 ошибок в ipfw
вообщем либо откатывайся до 6.2
либо шейпь ng_car
У меня есть Ядро (стоит отдельно) и отдельно сервер занимающийся натом и ограничением полосы (шлюз для клиентов). Связь между ядром и этим фаерволом организована посредством rfw клиента.
Передаю переменные (unlim, unlim1,unlim2) через правило включения выключения, а на входе rfw клиента в зависимости от тарифного плана (переменной) Ип шник запихивается в ту или иную таблицу.
Может я что то не так делаю ?
Передаю переменные (unlim, unlim1,unlim2) через правило включения выключения, а на входе rfw клиента в зависимости от тарифного плана (переменной) Ип шник запихивается в ту или иную таблицу.
Может я что то не так делаю ?
