Здравствуйте!
У нас стоит сервер на Freebsd 7.4 STABLE, железо: Dell 710 (2x Xeon E5540 2.53 Ghz), 8 гиг. оперативки.
Сетевые - встроенная на 4 порта bce (Broadcom NetXtreme II BCM5709), дополнительно вставлена 2-х портовая Intel igb.Изначально схема подключения сетевых была такая:
1. igb0 - внешний линк
2. bce1 - линк в городскую сеть
3. bce2 - линк между сервером и биллингом
На сервере был поднят IPFW NAT, MPD 5.
Клиенты подключались по pptp. Онлайн около 3х тысяч, трафик - 400 мбит/с. В качестве биллинга был UTM5.
НАС сервер работал нормально, никаких проблем не было.
Несколько дней назад перешли на BGbilling. Так же получили пул внешних адресов, и решили отказаться от НАТа.
На НАС сервере убрали правила файрвола отвечающие за NAT. Абонентам адреса начали выдавать из пула. Всё заработало, но с разной периодичностью сервер НАС стал отваливаться. Причем не обязательно в часы пик. Сервер мог зависнуть ночью, когда онлайн маленький и трафика тоже мало. В логах последняя запись была: bce1: discard frame w/o packet header.
Никаких изменений на сервере больше не делали. Только убрали НАТ (сервер наоборот должен был разгрузиться), и начали абонентам выдавать адреса динамически из пула (ранее в УТМ каждому абоненту прописывали локальный адрес для НАТа).
Вчера попробовали линк в городскую сеть перенести с bce1 на igb1. Но сервер всё равно завис, правда в логах уже писало: bce2: discard frame w/o packet header.
Трафик на bce2 - минимальный, там только обмен между НАС и биллингом.
Кто нибудь сталкивался с подобным?
Подскажите что ещё можно предпринять?
cat /boot/loader.conf
### intel driver
if_igb_load="YES"
hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.enable_aim=0
hw.igb.low_latency=1000
hw.igb.ave_latency=2000
hw.igb.bulk_latency=4000
hw.igb.rx_process_limit=100
hw.igb.fc_setting=0
hw.igb.num_queues=0
hw.igb.lro=0
# mem for kernel
vm.kmem_size=3G
kern.hz=4000
### network
kern.ipc.nmbclusters="524288"
kern.ipc.maxsockets="524288"
net.graph.maxalloc="327680"
net.graph.maxdata="327680"
net.graph.recvspace="128000"
net.inet.tcp.tcbhashsize=32000
kern.ipc.maxpipekva="32000000"
kern.ipc.maxsockbuf=1048576
net.inet.tcp.tcbhashsize="4096"
kern.ipc.somaxconn=300000
#onther
kern.maxfiles="409600"
kern.maxfilesperproc="400000"
kern.maxusers="2048"
kern.maxvnodes=300000
cat /etc/sysctl.conf
## ipfw
net.inet.ip.fw.verbose=0
net.inet.ip.fw.enable=1
net.inet.ip.fw.dyn_max=65535
net.inet.ip.fw.dyn_buckets=4096
### /// otvet na zakriti port
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
####
net.inet.ip.fw.one_pass=0
net.isr.direct=1
net.inet.ip.fastforwarding=1
####
net.inet.tcp.syncookies=0
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.recvbuf_auto=1
kern.ipc.maxsockbuf=26214400
net.inet.tcp.maxtcptw=40960
net.inet.icmp.icmplim=0
net.local.stream.recvspace=65535
net.local.stream.sendspace=65535
net.inet.ip.dummynet.io_fast=1
net.inet.ip.dummynet.hash_size=10240
net.inet.tcp.sendspace=655360
net.inet.tcp.recvspace=655360
net.inet.tcp.sendbuf_max=26777216
net.inet.tcp.recvbuf_max=26777216
net.inet.tcp.slowstart_flightsize=54
net.inet.ip.intr_queue_maxlen=512
net.route.netisr_maxqlen=512
#### igb
dev.igb.0.enable_aim=0
dev.igb.0.flow_control=0
dev.igb.0.rx_processing_limit=2048
dev.igb.1.enable_aim=0
dev.igb.1.flow_control=0
dev.igb.1.rx_processing_limit=2048