Jump to content
Калькуляторы

Freebsd 8.0-RELEASE + mpd 5.3 траблы

Всем привет. Если у кого-то есть проблемы с работой mpd 5.3 на FreeBSD 8.0 (туннели разрываются сразу после подключения, и в логах пишет: kernel: ifa_add_loopback_route: insertion failed), то мне лично помогло следующее:

 

Откатить все изменения от коммита http://www.mail-archive.com/svn-src-all@fr...g/msg13536.html

 

И добавить:

 

--- sys/netinet/in.c 12 May 2009 07:41:20 -0000 1.131 
+++ sys/netinet/in.c 12 May 2009 21:18:51 -0000 
@@ -917,6 +917,8 @@ in_ifinit(struct ifnet *ifp, struct in_i 
 info.rti_info[RTAX_GATEWAY] = (struct sockaddr *)&null_sdl; 
 error = rtrequest1_fib(RTM_ADD, &info, &rt, 0); 

+ if (error == EEXIST) 
+ return (0); 
 if (error == 0 && rt != NULL) { 
 RT_LOCK(rt); 
 ((struct sockaddr_dl *)rt->rt_gateway)->sdl_type  = 

 

Ну и потом пересобрать ядро, и ребут. Надеюсь, это не ломает ничего другого. Во всяком случае у меня вроде всё работает ОК. Может, кому-то пригодится :)

Edited by networks

Share this post


Link to post
Share on other sites

Теперь в лог валится:

 

kernel: in_scrubprefix: deletion failed

 

Правда вроде ни на что не влияет, по крайней мере не заметно.

Share this post


Link to post
Share on other sites

Пока вроде работает, спасибо. Если будет что-нибудь негативное напишу позже.

Share this post


Link to post
Share on other sites

Буду еще один VPN-сервер скоро пересобирать, попробую.

Share this post


Link to post
Share on other sites

Вот интересно, у всех так, или только у меня? Нагружается только внешний интерфейс em0, em1, на котором vlanы смотрят внутрь сети, при этом в 0%, но TIME тикает не меньше, чем на em0. Машина Q9550, 2Gb DDR2800, Pro/1000 PT Dual, на ней PPPoE через mpd5.3, шейп на ng_car через radius, nat на pf. Ставил net.isr.maxthreads=4 - толку нету, пробовал и на родных дровах 6.9.14 и на последних 6.9.21, с яндексами 6.9.6 даже ядро не собирается. Странно что даже при net.isr.direct=0 и net.isr.direct_force=0 нагрузка лишь незначительно уходит с em0 на netisr.

Сейчас нагрузки почти нету:

 

ifconfig |grep ng|wc -l

247

 

top -SPHI

last pid: 92681; load averages: 0.17, 0.20, 0.13 up 0+21:30:50 10:28:59

113 processes: 5 running, 87 sleeping, 21 waiting

CPU 0: 0.0% user, 0.0% nice, 11.9% system, 3.7% interrupt, 84.4% idle

CPU 1: 0.0% user, 0.0% nice, 3.0% system, 1.5% interrupt, 95.5% idle

CPU 2: 0.0% user, 0.0% nice, 0.0% system, 7.4% interrupt, 92.6% idle

CPU 3: 0.0% user, 0.0% nice, 0.0% system, 4.4% interrupt, 95.6% idle

Mem: 25M Active, 162M Inact, 299M Wired, 320K Cache, 208M Buf, 1439M Free

Swap: 2048M Total, 2048M Free

 

PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND

11 root 171 ki31 0K 64K RUN 2 19.5H 100.00% {idle: cpu2}

11 root 171 ki31 0K 64K CPU1 1 19.0H 100.00% {idle: cpu1}

11 root 171 ki31 0K 64K CPU3 3 19.6H 94.78% {idle: cpu3}

11 root 171 ki31 0K 64K CPU0 0 979:30 88.38% {idle: cpu0}

0 root -68 0 0K 128K - 0 242:37 10.16% {em0 taskq}

12 root -44 - 0K 336K WAIT 0 73:59 0.78% {swi1: netisr 1}

12 root -44 - 0K 336K WAIT 3 67:37 0.68% {swi1: netisr 2}

12 root -44 - 0K 336K WAIT 2 60:39 0.68% {swi1: netisr 0}

12 root -44 - 0K 336K WAIT 3 62:28 0.59% {swi1: netisr 3}

12 root -32 - 0K 336K WAIT 0 47:48 0.20% {swi4: clock}

 

netstat -w1 -d

input (Total) output

packets errs bytes packets errs bytes colls drops

35665 0 24706790 37274 0 31528991 0 0

37089 0 26246421 38227 0 31710684 0 0

35410 0 24308583 36531 0 30408099 0 0

35931 0 24431910 36969 0 30509032 0 0

35139 0 24225789 36573 0 30711463 0 0

37556 0 26840702 41523 0 38166116 0 0

 

systat -v

Interrupts

9805 total

3 uhci4++ 19

1999 cpu0: time

899 em0 irq256

897 em1 irq257

1999 cpu1: time

2004 cpu2: time

2004 cpu3: time

 

pfctl -ss|wc -l

13171

Edited by _longhorn_

Share this post


Link to post
Share on other sites

options RADIX_MPATH помог, так что можно было сырцы и не ковырять :) Знать бы об этом раньше. Ну да ладно, пока вроде всё работает.

Share this post


Link to post
Share on other sites

ну - не все с ним (RADIX_MPATH) так просто, У меня дамп к какой-то момент получился...

 

Share this post


Link to post
Share on other sites

А вы обновлялись до 8ки или ставили с нуля? У меня была такая проблема когда я, обновлял с 7.2 до 8ки. Поставил с нуля, собрал ядро с netgraph всё заработало. Пробовал как модули ядра погрузить netgraph не работало хотя на 6ке и 7ке прокатывало.

Share this post


Link to post
Share on other sites

получается, восьмерку в продакшн ставить совсем-совсем рано?

(у меня с ng какая-то муть идет -- не разобрался еще, мои кривые или какие незамеченные изменения)

Share this post


Link to post
Share on other sites

Недавно один из VPN-серверов с Freebsd 8.0 + mpd 5.3 сам ребутнулся. Написал такое:

 

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x24
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc5b36e0c
stack pointer           = 0x28:0xe7d5293c
frame pointer           = 0x28:0xe7d52950
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 847 (ng_queue0)
trap number             = 12
panic: page fault
cpuid = 0
Uptime: 27d12h40m7s
Cannot dump. Device not defined or unavailable.
Automatic reboot in 15 seconds - press a key on the console to abort
panic: bufwrite: buffer is not busy???
cpuid = 0

 

На нем как раз ядро с RADIX_MPATH собирал, чтобы mpd работал. У кого-нибудь еще такое было? На самом сервере только mpd + zebra&ripd + несколько правил ipfw, никакого NAT-а, шейпа и нетфлов нету.

Share this post


Link to post
Share on other sites

На нем как раз ядро с RADIX_MPATH собирал

Ядро с RADIX_MPATH в 8.0 падает при удалении большого числа маршрутов быстро (т.е. не через route del) а, например, при падении одного из bgp пиров или отваливании кучи юзеров с mpd. Так же при большом кол-ве "голов" (замечено на >4) валится _mtx_lock_wait при включеном ADAPTIVE_MUTEXES . Собирайте дебаговое ядро и смотрите, где падает, еще через ddb желательно поизучать поподробнее.

Edited by bitbucket

Share this post


Link to post
Share on other sites

Еще есть довольно странная проблема, появилась после перехода на 8.0 + mpd 5.2 (до этого было 6.3 + mpd 4.3). Правда конфиг тоже менялся, так что может где-то там косяк.

 

В общем, суть в чем. Иногда у некоторых абонентов происходит следующее - сам VPN-сеанс есть, но трафик в туннель от них не уходит, соответственно от них ничего не пингуется и не работает. После переподключения VPN - все приходит в норму. Проблема появляется в разных сегментах сети, как на win-системах, так и на soho-роутерах.

 

Никто не сталкивался? Может, что-то подкрутить надо?

Share this post


Link to post
Share on other sites

есть такое же на 7.х + mpd5.3 и на 8.х + mpd 5.4 (на 5.4 намного реже бывает)

Share this post


Link to post
Share on other sites

На днях ставил на один PPPoE концентратор, просто обновился до последнего STABLE и все нормально работает, надо посмотреть, может патч в него уже включили.

Share this post


Link to post
Share on other sites

Ни у кого не было, что FreeBSD 8.0-STABLE amd64 c mpd 5.4 работает ~неделю крича в логи - kernel: ifa_del_loopback_route: deletion failed потом падала? При этом замечается утечка ~1Gb оперативки (за неделю). mpd 5.4 шейпинг, quagga/ospf. Клиентов ~200-300.

 

Share this post


Link to post
Share on other sites

От какого числа STABLE? Что за железо? У меня такого не было, поэтому пока могу посоветовать обновиться до последнего STABLE с пересборкой мира и ядра.

Share this post


Link to post
Share on other sites

vadislaus: ifa_del_loopback_route: deletion failed - у меня на такое ругался. Правда не падал, но проблемы с VPN были (сеанс не разрывается, но трафик ходить перестает). У меня правда не amd64, а i386.

 

Поставил патч: http://lists.freebsd.org/pipermail/freebsd...ber/024030.html

 

И всё чудесным образом починилось :) Пока полет нормальный. Попробуйте и вы.

Edited by networks

Share this post


Link to post
Share on other sites

Данный патч включили в STABLE, во всяком случае у меня STABLE от 11 января и эти изменения уже есть. Можно его накатить или обновиться полностью, эффект должен быть одинаково положительный :)

Share this post


Link to post
Share on other sites

FreeBSD поставил 28 декабря, обновил 30 декабря 2009. Железо: два XEON X5560 на мамке супермикро, 4 Gb RAM. Сетевухи встроенные igb, чипсет 82576EB.

Сегодня обновил систему, рано утром перезагружу, посмотрю.

to networks: Этот патч я сразу поставил. ;)

Share this post


Link to post
Share on other sites

Ужас, не знаю даже куда и копать. Все обновил, в dmesg больше ничего критичного. Квага только продолжает ругаться:

ZEBRA: if_ioctl(SIOCGIFFLAGS) failed: Device not configured

ZEBRA: Can't lookup mtu by ioctl(SIOCGIFMTU)

когда поднимаются/опускаются ng интерфейсы.

 

Но все равно, BSD с неким, непонятным, интервалом падала. При этом она выдавала: такую ерунду.

 

c9c8ffd9ca89.jpg

 

Отключил sendmail в rc.conf, тоже самое. Переименовал файл sendmail в senmail.bk

BSD виснуть перестала, стал тупо виснуть mpd. Лечится только перезагрузкой. mpd интерфейсов больше 230 не видел.

ядро:

 

cpu HAMMER

ident MY

 

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

 

options SMP # Symmetric MultiProcessor Kernel

####################

options IPI_PREEMPTION

device atpic # Optional legacy pic support

device mptable

options DEVICE_POLLING

options HZ=2000

maxusers 512

options NBUF=2048

 

options ALTQ

options NETGRAPH

options NETGRAPH_NETFLOW

options NETGRAPH_BPF

options NETGRAPH_BRIDGE

options NETGRAPH_CAR

options NETGRAPH_ETHER

options NETGRAPH_DEVICE

options NETGRAPH_EIFACE

options NETGRAPH_IP_INPUT

options NETGRAPH_IPFW

options NETGRAPH_KSOCKET

options NETGRAPH_NAT

options NETGRAPH_ONE2MANY

options NETGRAPH_PIPE

options NETGRAPH_PPP

#options NETGRAPH_PPPOE

options NETGRAPH_PPTPGRE

#options NETGRAPH_PRED1

options NETGRAPH_RFC1490

options NETGRAPH_SOCKET

#ptions NETGRAPH_SPLIT

#ptions NETGRAPH_SPPP

#ptions NETGRAPH_TAG

options NETGRAPH_TCPMSS

options NETGRAPH_TEE

options NETGRAPH_UI

options NETGRAPH_VJC

options DUMMYNET

device vlan

device pf

device pflog

device pfsync

 

options IPFIREWALL

options IPFIREWALL_VERBOSE

options IPFIREWALL_VERBOSE_LIMIT=1000

options IPFIREWALL_DEFAULT_TO_ACCEPT

options IPFIREWALL_FORWARD

options IPFIREWALL_NAT

options IPDIVERT

options IPFILTER

options IPFILTER_LOG

options IPFILTER_LOOKUP

 

options RADIX_MPATH

......... Дальше стандартно

Edited by vadislaus

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this