Страница 1 из 1
[solved] Проблема с pipe (OUCH! pipe should have been idle!)
Добавлено: 2009-12-17 12:57:08
Dzirt
У меня есть несколько серверов где вполне нормально настроен ipfw + pipe Все режет и все нормально работает.
Установил последний сервер на FreeBSD 8.0 все поднял как и раньше но возникла проблема.
Код: Выделить всё
dummynet: OUCH! pipe should have been idle!
Эти сообщения сыпятся непрерывно в консоль когда кто то начинает работать с интернетом.
Помогите пожалуйста кто уже сталкивался с подобным.
Этот сервер от других отличается тем что у него 2 канала и они жирнее по 4 Мб. и 8 Мб.
Вот конфиги:
rc.conf
Код: Выделить всё
ifconfig_ae0="inet 192.168.17.2 netmask 255.255.255.0"
ifconfig_xl0="inet 192.168.145.126 netmask 255.255.255.0"
ifconfig_xl1="inet 172.16.0.2 netmask 255.255.255.0"
gateway_enable="YES"
named_enable="YES"
sshd_enable="YES"
natd_enable="YES"
natd_program="/sbin/natd"
natd_interface="tun0"
natd_flags="-dynamic -p 8668 -f /etc/natd.conf -punch_fw 50000:999"
natd1_enable="YES"
natd1_program="/sbin/natd"
natd1_interface="xl0"
natd1_flags="-dynamic -p 8669 -f /etc/natd.conf -punch_fw 50000:999"
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/ipfw.conf"
ipfw.conf
Код: Выделить всё
#! /bin/sh
### VAR
ipfw=/sbin/ipfw
wan_u=tun0
wan_m=xl0
lan_if=ae0
lan_net=192.168.17.0/24
###RULES
$ipfw add allow ip from any to any via lo0
##PIPE
#Megalink
$ipfw pipe 1 config bw 2048Kbit/s
$ipfw pipe 2 config bw 1024Kbit/s
$ipfw pipe 3 config bw 1024Kbit/s
#Ukrtel
$ipfw pipe 4 config bw 2048Kbit/s
$ipfw pipe 5 config bw 3072Kbit/s
$ipfw pipe 6 config bw 3072Kbit/s
#Megakink
$ipfw queue 1 config pipe 3 weight 80 queue 20Kbit mask src-ip 0xffffffff
$ipfw queue 11 config pipe 3 weight 80 queue 20Kbit mask dst-ip 0xffffffff
$ipfw queue 2 config pipe 3 weight 20 queue 20Kbit mask src-ip 0xffffffff
$ipfw queue 22 config pipe 3 weight 20 queue 20Kbit mask dst-ip 0xffffffff
#Ukrtel
$ipfw queue 3 config pipe 6 weight 80 queue 20Kbit mask src-ip 0xffffffff
$ipfw queue 33 config pipe 6 weight 80 queue 20Kbit mask dst-ip 0xffffffff
$ipfw queue 4 config pipe 6 weight 20 queue 20Kbit mask src-ip 0xffffffff
$ipfw queue 44 config pipe 6 weight 20 queue 20Kbit mask dst-ip 0xffffffff
## SORTING OUT
#Megakink
$ipfw add pipe 1 udp from any to any 50000-50200 out via $wan_m
$ipfw add skipto 3300 all from any to any 50000-50200 out via $wan_m
$ipfw add pipe 1 udp from any 50000-50200 to any out via $wan_m
$ipfw add skipto 3300 all from any 50000-50200 to any out via $wan_m
$ipfw add pipe 2 all from any to 80.240.216.199 out via $wan_m
$ipfw add skipto 3300 all from any to 80.240.216.199 out via $wan_m
$ipfw add queue 1 all from any to any ftp out via $wan_m
$ipfw add skipto 3300 all from any to any ftp out via $wan_m
$ipfw add queue 1 all from any ftp to any out via $wan_m
$ipfw add skipto 3300 all from any ftp to any out via $wan_m
$ipfw add queue 1 all from any to any 22,8822,9922 out via $wan_m
$ipfw add skipto 3300 all from any to any 22,8822,9922 out via $wan_m
$ipfw add queue 1 all from any 22,8822,9922 to any out via $wan_m
$ipfw add skipto 3300 all from any 22,8822,9922 to any out via $wan_m
$ipfw add queue 2 all from any to any out via $wan_m
#Ukrtele
$ipfw add pipe 4 udp from any to any 50000-50200 out via $wan_u
$ipfw add skipto 3200 all from any to any 50000-50200 out via $wan_u
$ipfw add pipe 4 udp from any 50000-50200 to any out via $wan_u
$ipfw add skipto 3200 all from any 50000-50200 to any out via $wan_u
$ipfw add pipe 5 all from 192.168.17.0/24 to 80.240.216.199 out via $wan_u
$ipfw add skipto 3200 all from any to 80.240.216.199 out via $wan_u
$ipfw add queue 3 all from any to any ftp out via $wan_u
$ipfw add skipto 3200 all from any to any ftp out via $wan_u
$ipfw add queue 3 all from any ftp to any out via $wan_u
$ipfw add skipto 3200 all from any ftp to any out via $wan_u
$ipfw add queue 3 all from any to any 22,8822,9922 out via $wan_u
$ipfw add skipto 3200 all from any to any 22,8822,9922 out via $wan_u
$ipfw add queue 3 all from any 22,8822,9922 to any out via $wan_u
$ipfw add skipto 3200 all from any 22,8822,9922 to any out via $wan_u
$ipfw add queue 4 all from any to any out via $wan_u
##NAT
$ipfw add divert 8668 ip from any to any via $wan_u
$ipfw add divert 8669 ip from any to any via $wan_m
### SORTING IN
#Megakink
$ipfw add pipe 1 udp from any 50000-50200 to any in via $wan_m
$ipfw add skipto 6400 all from any 50000-50200 to any in via $wan_m
$ipfw add pipe 1 udp from any to any 50000-50200 in via $wan_m
$ipfw add skipto 6400 all from any to any 50000-50200 in via $wan_m
$ipfw add pipe 2 all from 80.240.216.199 to any in via $wan_m
$ipfw add skipto 6400 all from 80.240.216.199 to any in via $wan_m
$ipfw add queue 11 all from any ftp to any in via $wan_m
$ipfw add skipto 6400 all from any ftp to any in via $wan_m
$ipfw add queue 11 all from any to any ftp in via $wan_m
$ipfw add skipto 6400 all from any to any ftp in via $wan_m
$ipfw add queue 11 all from any 22,8822,9922 to any in via $wan_m
$ipfw add skipto 6400 all from any 22,8822,992 to any in via $wan_m
$ipfw add queue 11 all from any to any 22,8822,9922 in via $wan_m
$ipfw add skipto 6400 all from any to any 22,8822,9922 in via $wan_m
$ipfw add queue 22 all from any to any in via $wan_m
#Ukrtele
$ipfw add pipe 4 udp from any 50000-50200 to any in via $wan_u
$ipfw add skipto 6400 all from any 50000-50200 to any in via $wan_u
$ipfw add pipe 4 udp from any to any 50000-50200 in via $wan_u
$ipfw add skipto 6400 all from any to any 50000-50200 in via $wan_u
$ipfw add pipe 5 all from 80.240.216.199 to any in via $wan_u
$ipfw add skipto 6400 all from 80.240.216.199 to any in via $wan_u
$ipfw add queue 33 all from any ftp to any in via $wan_u
$ipfw add skipto 6400 all from any ftp to any in via $wan_u
$ipfw add queue 33 all from any to any ftp in via $wan_u
$ipfw add skipto 6400 all from any to any ftp in via $wan_u
$ipfw add queue 33 all from any 22,8822,9922 to any in via $wan_u
$ipfw add skipto 6400 all from any 22,8822,992 to any in via $wan_u
$ipfw add queue 33 all from any to any 22,8822,9922 in via $wan_u
$ipfw add skipto 6400 all from any to any 22,8822,9922 in via $wan_u
$ipfw add queue 44 all from any to any in via $wan_u
## ALLOW ALL
$ipfw add allow all from any to any
sysctl.conf
Код: Выделить всё
net.inet.tcp.keepidle=15000
net.inet.tcp.keepintvl=1000
net.inet.ip.fw.one_pass=0
Заранее всем спасибо.
Re: Проблема с pipe
Добавлено: 2009-12-17 13:26:03
terminus
А погуглить?
http://lists.freebsd.org/pipermail/free ... 13935.html
http://lists.freebsd.org/pipermail/free ... 13943.html
Kevin Smith wrote:
> Oleg Bulyzhin wrote:
>> On Mon, Nov 30, 2009 at 11:58:55PM -0500, Ben Kelly wrote:
>>> I actually have not measured my bandwidth to validate dummynet. I have simply observed these messages repeating in my log:
>>>
>>> dummynet: OUCH! pipe should have been idle!
>>>
>>> Under normal conditions I don't really need the dummynet rules to shape traffic for my configuration to work, so it has not been a high priority for me yet. Do you see the log messages?
>>>
>>> Thanks.
>>>
>>> - Ben
>> It seems i've found the problem. Please test attached patch (it's for R8.0
>> sources and include r198845). I'm interested in some feedback:
>> 1) does it solve 'OUCH' messages problem?
>> 2) does it solve bandwidth problem (if there was any)?
>>
>>
> The patch fixes the problem: now it seems all ok, no more "OUCH"
> messages and pipe bandwidth limiting works again.
> Thank you very much, Oleg!!
> Best regards,
>
this should be made an errata item for 8.0
Re: Проблема с pipe
Добавлено: 2009-12-17 13:31:28
terminus
Вот из-за таких ситуаций, я считаю, что сидеть на RELEASE не стоит - по любому есть резон использовать ветку STABLE.
Для релиза теперь вот не известно выпустят патч в виде advisory или нет. А в CVS ветки STABLE его уже наверняка перенесли.
Re: Проблема с pipe
Добавлено: 2009-12-17 13:52:37
Dzirt
Так вроде это не релиз кандидат!
uname -a
Код: Выделить всё
FreeBSD router.office.com 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Wed Dec 9 12:28:33 EET 2009 dzirt@router.office.com:/usr/obj/usr/src/sys/IPFW i386
качал вот отсюда
ftp://ftp.freebsd.org/pub/FreeBSD/relea ... MAGES/8.0/
Re: Проблема с pipe
Добавлено: 2009-12-17 13:58:52
Dzirt
Ув.
terminus Попытался прочитать но не совсем понял что нужно сделать.
По правде совсем не понял.
Нашел вот это
http://groups.google.ru/group/lucky.fre ... 78d42a57dd
Плиз можешь расписать вкратце что нужно делать.
Re: Проблема с pipe
Добавлено: 2009-12-17 14:26:25
Dzirt
Вроде понял что нужно изменить файлик.
Я его отредактировал как написано в статье
Код: Выделить всё
Index: sys/netinet/ipfw/ip_dummynet.c
===================================================================
--- sys/netinet/ipfw/ip_dummynet.c (revision 252)
+++ sys/netinet/ipfw/ip_dummynet.c (working copy)
@@ -1426,7 +1426,9 @@
q->numbytes += pipe->bandwidth;
}
} else { /* WF2Q. */
- if (pipe->idle_time < curr_time) {
+ if (pipe->idle_time < curr_time &&
+ pipe->scheduler_heap.elements == 0 &&
+ pipe->not_eligible_heap.elements == 0) {
/* Calculate available burst size. */
pipe->numbytes +=
(curr_time - pipe->idle_time - 1) * pipe->bandwidth;
Вот только что теперь ядро пересобрать?
Re: Проблема с pipe
Добавлено: 2009-12-17 14:33:05
hizel
вас агитирую cvsup-нуться до RELENG_8 и пересобрать мир с ядром
Re: Проблема с pipe
Добавлено: 2009-12-17 14:49:36
Dzirt
hizel писал(а):вас агитирую cvsup-нуться до RELENG_8 и пересобрать мир с ядром
Буду очень признателен если подскажешь как!
Сейчас буду гуглить но если есть возможность напиши вкратце.
Re: Проблема с pipe
Добавлено: 2009-12-17 14:53:53
terminus
http://lists.freebsd.org/pipermail/free ... ix.r80.bin
Код: Выделить всё
Index: sys/netinet/ipfw/ip_dummynet.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/ipfw/ip_dummynet.c,v
retrieving revision 1.5.2.1.2.1
diff -u -r1.5.2.1.2.1 ip_dummynet.c
--- sys/netinet/ipfw/ip_dummynet.c 25 Oct 2009 01:10:29 -0000 1.5.2.1.2.1
+++ sys/netinet/ipfw/ip_dummynet.c 1 Dec 2009 17:23:45 -0000
@@ -244,6 +244,17 @@
static int dummynet_io(struct mbuf **, int , struct ip_fw_args *);
/*
+ * Flow queue is idle if:
+ * 1) it's empty for at least 1 tick
+ * 2) it has invalid timestamp (WF2Q case)
+ * 3) parent pipe has no 'exhausted' burst.
+ */
+#define QUEUE_IS_IDLE(q) ((q)->head == NULL && (q)->S == (q)->F + 1 && \
+ curr_time > (q)->idle_time + 1 && \
+ ((q)->numbytes + (curr_time - (q)->idle_time - 1) * \
+ (q)->fs->pipe->bandwidth >= (q)->fs->pipe->burst))
+
+/*
* Heap management functions.
*
* In the heap, first node is element 0. Children of i are 2i+1 and 2i+2.
@@ -1004,7 +1015,7 @@
fs->last_expired = time_uptime ;
for (i = 0 ; i <= fs->rq_size ; i++) /* last one is overflow */
for (prev=NULL, q = fs->rq[i] ; q != NULL ; )
- if (q->head != NULL || q->S != q->F+1) {
+ if (!QUEUE_IS_IDLE(q)) {
prev = q ;
q = q->next ;
} else { /* entry is idle, expire it */
@@ -1134,7 +1145,7 @@
break ; /* found */
/* No match. Check if we can expire the entry */
- if (pipe_expire && q->head == NULL && q->S == q->F+1 ) {
+ if (pipe_expire && QUEUE_IS_IDLE(q)) {
/* entry is idle and not in any heap, expire it */
struct dn_flow_queue *old_q = q ;
@@ -1408,18 +1419,20 @@
if (q->idle_time < curr_time) {
/* Calculate available burst size. */
q->numbytes +=
- (curr_time - q->idle_time) * pipe->bandwidth;
+ (curr_time - q->idle_time - 1) * pipe->bandwidth;
if (q->numbytes > pipe->burst)
q->numbytes = pipe->burst;
if (io_fast)
q->numbytes += pipe->bandwidth;
}
} else { /* WF2Q. */
- if (pipe->idle_time < curr_time) {
+ if (pipe->idle_time < curr_time &&
+ pipe->scheduler_heap.elements == 0 &&
+ pipe->not_eligible_heap.elements == 0) {
/* Calculate available burst size. */
pipe->numbytes +=
- (curr_time - pipe->idle_time) * pipe->bandwidth;
- if (pipe->numbytes > pipe->burst)
+ (curr_time - pipe->idle_time - 1) * pipe->bandwidth;
+ if (pipe->numbytes > 0 && pipe->numbytes > pipe->burst)
pipe->numbytes = pipe->burst;
if (io_fast)
pipe->numbytes += pipe->bandwidth;
Код: Выделить всё
cd /root
fetch http://lists.freebsd.org/pipermail/freebsd-current/attachments/20091201/e05469c6/wf2q-fix.r80.bin
cd /usr/src/sys/netinet/ipfw/
patch < /root/wf2q-fix.r80.bin
cd /usr/src
make buildkernel
make installkernel
reboot
или перейдите на использование STABLE - этот патч уже в нем
http://svnweb.freebsd.org/viewvc/base/s ... iew=markup
Переход на STABLE (если не боитесь и готовы отказаться от freebsd-update в пользу пересборки из сырцов):
http://www.freebsd.org/doc/en_US.ISO885 ... table.html
Re: Проблема с pipe
Добавлено: 2009-12-17 15:07:17
hizel
Dzirt писал(а):hizel писал(а):вас агитирую cvsup-нуться до RELENG_8 и пересобрать мир с ядром
Буду очень признателен если подскажешь как!
Сейчас буду гуглить но если есть возможность напиши вкратце.
Хэндбук пролистайте, там все есть, йоклмн.

Re: Проблема с pipe
Добавлено: 2009-12-18 12:33:31
Dzirt
terminus Огромное спасибо.
Патч помог все работает просто на ура.

Re: [solved] Проблема с pipe (OUCH! pipe should have been idle!)
Добавлено: 2010-01-18 17:48:28
hranitel_y2k
У меня та же проблема, даже после обновления до STABLE... (До этого была 7.2 обновил ее до 8.0 RELEASE, потом после возникновения проблемы с dummynet поднял до 8 STABLE).
В STABLE используется ip_dummynet.с версии 1.5.2.2, сравнил c 1.5.2.1.2.1 (тот что в RELEASE) и с ip_dummynet.c после применения патча из темы. В 1.5.2.2 нехватает:
Код: Выделить всё
} else { /* WF2Q. */
- if (pipe->idle_time < curr_time) {
+ if (pipe->idle_time < curr_time &&
+ pipe->scheduler_heap.elements == 0 &&
+ pipe->not_eligible_heap.elements == 0) {
Видимо из-за них сообщения продолжали сыпаться. Откатился до 8 RELEASE, установил патч из темы и все работает на ура.
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-08 18:37:16
Ck-NoSFeRaTU
Немного не в тему, но у всех нормально работают пайпы на 8ке? У меня шейпят, но вносят совсем дикие задержки в 3-4мс на пайп при нулевой нагрузке. На 6.4 такого бреда не было. Ставил патч, сыпать в dmesg перестало, но с задержками ситуация не улучшилась.
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-09 10:19:57
Dzirt
Ck-NoSFeRaTU писал(а):Немного не в тему, но у всех нормально работают пайпы на 8ке? У меня шейпят, но вносят совсем дикие задержки в 3-4мс на пайп при нулевой нагрузке. На 6.4 такого бреда не было. Ставил патч, сыпать в dmesg перестало, но с задержками ситуация не улучшилась.
С 6.4 конфиг немного изменился ))
Выложи правила фаервола и ipfw pipe show.
Тогда можно будет что то сказать.
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-10 5:33:33
Ck-NoSFeRaTU
Dzirt писал(а):С 6.4 конфиг немного изменился ))
Выложи правила фаервола и ipfw pipe show.
Тогда можно будет что то сказать.
А что там показывать? Ну, пайпы заводятся скриптом примерно так:
Код: Выделить всё
/sbin/ipfw add 906 pipe 906 ip from 10.1.100.3 to 10.1.100.0/24 via ng3 in
/sbin/ipfw pipe 906 config bw 4096Kbit/s queue 10Kbytes
/sbin/ipfw add 907 pipe 907 ip from 10.1.100.0/24 to 10.1.100.3 via ng3 out
/sbin/ipfw pipe 907 config bw 4096Kbit/s queue 10Kbytes
Получаем:
Код: Выделить всё
00907: 4.096 Mbit/s 0 ms 10 KB 1 queues (1 buckets) droptail
burst: 0 Byte
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 icmp 10.1.100.100/0 10.1.100.3/0 6 504 0 0 0
00906: 4.096 Mbit/s 0 ms 10 KB 1 queues (1 buckets) droptail
burst: 0 Byte
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 icmp 10.1.100.3/0 10.1.100.100/0 6 504 0 0 0
Пингуем клиента:
Код: Выделить всё
C:\Documents and Settings\Administrator>ping -t 10.1.100.3
Pinging 10.1.100.3 with 32 bytes of data:
Reply from 10.1.100.3: bytes=32 time=4ms TTL=128
Reply from 10.1.100.3: bytes=32 time=5ms TTL=128
Reply from 10.1.100.3: bytes=32 time=4ms TTL=128
Удаляем пайпы, пингуем клиента:
Код: Выделить всё
^C
C:\Documents and Settings\Administrator>ping -t 10.1.100.3
Pinging 10.1.100.3 with 32 bytes of data:
Reply from 10.1.100.3: bytes=32 time=1ms TTL=128
Reply from 10.1.100.3: bytes=32 time<1ms TTL=128
Reply from 10.1.100.3: bytes=32 time=1ms TTL=128
Т.е. каждый пайп грубо говоря прибавляет минимум 2мс, на клиента по два пайпа (входящий и исходящий) вносят задержку в 4мс, т.е. когда пингует клиент клиента получаем уже задержку в 7-8мс просто за прохождение через пайпы (размер значения не имеет, я пробовал даже гигабит ставить - та же картина). Причём queue, через которые я балансирую нагрузку, этих аномальных задержек не вносят. Только пайпы.
Уже крутил и так и эдак. Пока вижу единственный вариант - переходить на ng_car.
Код: Выделить всё
cat /etc/sysctl.conf
security.bsd.see_other_uids=0
kern.fallback_elf_brand=3
net.inet.ip.fw.one_pass=0
net.inet6.ip6.v6only=0
security.bsd.unprivileged_read_msgbuf=1
security.jail.allow_raw_sockets=0
net.inet.ip.stealth=0
debug.debugger_on_panic=0
debug.ddb.capture.bufsize=5242880
/boot/loader.conf пустой.
Конфиг ядра сделан из GENERIC, в который добавлены те же нестандартные опции, что были на 6.4:
Код: Выделить всё
# GENERIC -- Generic kernel configuration file for FreeBSD/amd64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.531.2.4.2.2 2009/11/09 23:48:01 kensmith Exp $
cpu HAMMER
ident GENERIC
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
# Use the following to compile in values accessible to the kernel
# through getenv() (or kenv(1) in userland). The format of the file
# is 'variable=value', see kenv(1)
#
# env "GENERIC.env"
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_43TTY # BSD 4.3 TTY compat (sgtty)
options COMPAT_IA32 # Compatible with i386 binaries
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options COMPAT_FREEBSD7 # Compatible with FreeBSD7
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options P1003_1B_SEMAPHORES # POSIX-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options AUDIT # Security event auditing
options MAC # TrustedBSD MAC Framework
options FLOWTABLE # per-cpu routing cache
#options KDTRACE_FRAME # Ensure frames are compiled in
#options KDTRACE_HOOKS # Kernel DTrace hooks
# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel
#My Options
options NETGRAPH
options NETGRAPH_ETHER
options NETGRAPH_SOCKET
options NETGRAPH_TEE
options NETGRAPH_ASYNC
options NETGRAPH_BPF
options NETGRAPH_CISCO
options NETGRAPH_ECHO
options NETGRAPH_FRAME_RELAY
options NETGRAPH_HOLE
options NETGRAPH_IFACE
options NETGRAPH_KSOCKET
options NETGRAPH_L2TP
options NETGRAPH_LMI
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
#options TCP_DROP_SYNFIN
#25.04.2008
#options ALTQ
#options ALTQ_CBQ # Class Bases Queuing (CBQ)
#options ALTQ_RED # Random Early Detection (RED)
#options ALTQ_RIO # RED In/Out
#options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
#options ALTQ_PRIQ # Priority Queuing (PRIQ)
#device pf
#device pflog
#device pfsync
#04.05.2008
#options IPSEC
#options IPSEC_ESP
#options IPSEC_DEBUG
options IPFILTER
options IPFILTER_LOG
#pseudo-device gif 4
#pseudo-device bpf 4
#26.06.2008
options HZ=1000
options DEVICE_POLLING
options QUOTA
#27.06.2008
#options ALTQ_CDNR
#options ALTQ_DEBUG
#22.10.2008
options NETGRAPH_BRIDGE
options NETGRAPH_GIF
options NETGRAPH_GIF_DEMUX
options NETGRAPH_IP_INPUT
options NETGRAPH_KSOCKET
options NETGRAPH_MPPC_ENCRYPTION
options NETGRAPH_ONE2MANY
options NETGRAPH_PPP
options NETGRAPH_PPTPGRE
options NETGRAPH_RFC1490
options NETGRAPH_SOCKET
options NETGRAPH_TCPMSS
options NETGRAPH_TTY
options NETGRAPH_UI
options NETGRAPH_VJC
#31.08.2009
options IPSTEALTH
#08.09.2009
options NETGRAPH_CAR
#02.03.2009
options MROUTING
# CPU frequency control
device cpufreq
# Bus support.
device acpi
device pci
# Floppy drives
device fdc
# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering
# SCSI Controllers
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Tekram DC-390(T))
device hptiop # Highpoint RocketRaid 3xxx series
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
#XXX it is not 64-bit clean, -scottl
#device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
#XXX pointer/int warnings
#device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO console
device sc
device agp # support several AGP chipsets
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus
# Serial (COM) ports
device uart # Generic UART driver
# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to sio, uart and/or ppc drivers):
#device puc
# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 Gigabit Ethernet Family
device igb # Intel PRO/1000 PCIE Server Gigabit Family
device ixgbe # Intel PRO/10GbE PCIE Ethernet Family
device le # AMD Am7900 LANCE and Am79C9xx PCnet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device ae # Attansic/Atheros L2 FastEthernet
device age # Attansic/Atheros L1 Gigabit Ethernet
device alc # Atheros AR8131/AR8132 Ethernet
device ale # Atheros AR8121/AR8113/AR8114 Ethernet
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 and various workalikes
device et # Agere ET1310 10/100/Gigabit Ethernet
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet
device lge # Level 1 LXT1001 gigabit Ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device nfe # nVidia nForce MCP on-board Ethernet
device nge # NatSemi DP83820 gigabit Ethernet
#device nve # nVidia nForce MCP on-board Ethernet Networking
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'le')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vge # VIA VT612x gigabit Ethernet
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# Wireless NIC cards
device wlan # 802.11 support
options IEEE80211_DEBUG # enable debug msgs
options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample # SampleRate tx rate control for ath
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device tun # Packet tunnel.
device pty # BSD-style compatibility pseudo ttys
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device rum # Ralink Technology RT2501USB wireless NICs
device uath # Atheros AR5523 wireless NICs
device ural # Ralink Technology RT2500USB wireless NICs
device zyd # ZyDAS zb1211/zb1211b wireless NICs
device urio # Diamond Rio 500 MP3 player
# USB Serial devices
device uark # Technologies ARK3116 based serial adapters
device ubsa # Belkin F5U103 and compatible serial adapters
device uftdi # For FTDI usb serial adapters
device uipaq # Some WinCE based devices
device uplcom # Prolific PL-2303 serial adapters
device uslcom # SI Labs CP2101/CP2102 serial adapters
device uvisor # Visor and Palm devices
device uvscom # USB serial support for DDI pocket's PHS
# USB Ethernet, requires miibus
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
device udav # Davicom DM9601E USB
# FireWire support
device firewire # FireWire bus code
#device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
device fwip # IP over FireWire (RFC 2734,3146)
device dcons # Dumb console driver
device dcons_crom # Configuration ROM for dcons
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-12 11:58:26
Гость
Код: Выделить всё
/sbin/ipfw add 906 pipe 906 ip from 10.1.100.3 to 10.1.100.0/24 via ng3 in
/sbin/ipfw pipe 906 config bw 4096Kbit/s queue 10Kbytes
/sbin/ipfw add 907 pipe 907 ip from 10.1.100.0/24 to 10.1.100.3 via ng3 out
/sbin/ipfw pipe 907 config bw 4096Kbit/s queue 10Kbytes
попробуйте убрать отсюда
queue 10Kbytes и проверьте.
Кстати, если не секрет, откуда взялось и как подсчитывалось это значение?
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-12 12:09:43
terminus
Гость писал(а):
Кстати, если не секрет, откуда взялось и как подсчитывалось это значение?
KOI-8 R
http://freebsd-r16.narod.ru/freebsd/shaper.html
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-12 19:41:20
Гость
Читал, делал настройки по данной статье, вроде сначала все нормально,а потом когда врубается торрент - перекос канала в сторону качающего. А у остальных скорость маленькая и файлы битые скачиваются:(
Потом прочитал это:
ftp://ftp.ee.lbl.gov/papers/early.pdf и пересчитал значения,
вроде сейчас все работает как надо. Но должен сказать что тема расчета параметров dummynet очень плохо описана.
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-14 18:13:16
Ck-NoSFeRaTU
Гость писал(а):попробуйте убрать отсюда queue 10Kbytes и проверьте.
Никакой разницы, я же писал, что даже пробовал выставлять заоблачные значения полосы, чтобы точно все пакеты пропускались - пофиг, пробовал ради интереса даже параметр delay, задержка увеличивается на значение delay+этот искусственный лаг.
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-15 11:41:44
Гость
Ck-NoSFeRaTU писал(а):Гость писал(а):попробуйте убрать отсюда queue 10Kbytes и проверьте.
Никакой разницы, я же писал, что даже пробовал выставлять заоблачные значения полосы, чтобы точно все пакеты пропускались - пофиг, пробовал ради интереса даже параметр delay, задержка увеличивается на значение delay+этот искусственный лаг.
Еще как вариант: sysctl net.inet.ip.dummynet.io_fast=1
Код: Выделить всё
There are two modes of dummynet operation: ``normal'' and ``fast''. The
``normal'' mode tries to emulate a real link: the dummynet scheduler
ensures that the packet will not leave the pipe faster than it would on
the real link with a given bandwidth. The ``fast'' mode allows certain
packets to bypass the dummynet scheduler (if packet flow does not exceed
pipe's bandwidth). This is the reason why the ``fast'' mode requires
less CPU cycles per packet (on average) and packet latency can be signif-
icantly lower in comparison to a real link with the same bandwidth. The
default mode is ``normal''. The ``fast'' mode can be enabled by setting
the net.inet.ip.dummynet.io_fast sysctl(8) variable to a non-zero value.
Re: [solved] Проблема с pipe (OUCH! pipe should have been id
Добавлено: 2010-03-15 12:00:21
Гость
только что проверил вашу конфу на одно из серваков.
С sysctl net.inet.ip.dummynet.io_fast=0
Код: Выделить всё
Reply from 192.168.10.2: bytes=32 time=3ms TTL=64
Reply from 192.168.10.2: bytes=32 time=2ms TTL=64
Reply from 192.168.10.2: bytes=32 time=4ms TTL=64
Reply from 192.168.10.2: bytes=32 time=4ms TTL=64
С sysctl net.inet.ip.dummynet.io_fast=1
Код: Выделить всё
Reply from 192.168.10.2: bytes=32 time<1ms TTL=64
Reply from 192.168.10.2: bytes=32 time<1ms TTL=64
Reply from 192.168.10.2: bytes=32 time<1ms TTL=64
Reply from 192.168.10.2: bytes=32 time<1ms TTL=64