|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Pavel Makarenko 2:5025/14 17 Oct 2007 21:49:12 To : All Subject : ping: sendto: No buffer space available -------------------------------------------------------------------------------- два канала в инет от разных isp, adsl и sdsl. один потолще, он основной. другой резервный. балансировка трафика между ними не нужна, только backup канал. в сервер приходят на 2 разные сетевые карты. на сервере 6.2stable, squid, httpd, dns, dhcp, ipnat для smtp/pop3/rdp/клиент-банк работоспособность каждого канала проверяется пингование ns соответствующего isp в примитивном скрипте (он ниже по тексту, замечания по нему так же интересны) ежеминутно по cron и, в зависимости от результатов проверки, переключается или нет дефолтный роутер. при пропадании основного линка и продолжающих идти от нескольких десятков юзеров запросах к прокси скрипт становиться неработоспособным и переключения на резервный канал не происходит: ping возвращает сообщение: ping: sendto: No buffer space available даже не может проверить состояние резервного канала, хотя тот жив. без нагрузки (или когда активность пользунов совсем мала) переключение каналов происходит, естественно, нормально. не помогают и вариации размеров: net.inet.tcp.sendspace net.inet.tcp.recvspace kern.ipc.nmbclusters=65535 kern.ipc.nmbclusters=131071 состояние просматривалось netstat -m ifconfig iface up/down для "прочистки" буферов не помогает скрипт (/tmp чистим при перезагрузке, index.html - это индикатор активного в данный момент канала, копируем из заранее состряпанных шаблонов): #!/bin/sh TestIP1=ip.ns.isp1.ru TestIP2=ip.ns.isp2.ru GW1=шлюз.ip.isp1.ru GW2=шлюз.ip.isp2.ru /sbin/ping -q -c 5 -o -s 1 -S мой.исходящий.ip.isp1.ru $TestIP1 > /dev/null 2>&1 if [ $? != 0 ]; then /sbin/ping -q -c 5 -o -s 1 -S мой.исходящий.ip.isp2.ru $TestIP2 > /dev/null 2>&1 if [ $? = 0 ]; then if [ ! -f /tmp/gw.changed ]; then /sbin/route change default $GW2 > /dev/null 2>&1 touch /tmp/gw.changed > /dev/null 2>&1 rm -rf /tmp/gw.none > /dev/null 2>&1 cp /var/www/virtual/www.local.domain/channel/isp2.html /var/www/virtual/www.local.domain/channel/index.html fi else rm -rf /tmp/gw.changed > /dev/null 2>&1 touch /tmp/gw.none > /dev/null 2>&1 cp /var/www/virtual/www.local.domain/channel/noroute.html /var/www/virtual/www.local.domain/channel/index.html fi else if [ -f /tmp/gw.changed ]; then /sbin/route change default $GW1 > /dev/null 2>&1 rm /tmp/gw.changed > /dev/null 2>&1 cp /var/www/virtual/www.local.domain/channel/isp1.html /var/www/virtual/www.local.domain/channel/index.html else if [ -f /tmp/gw.none ]; then /sbin/route change default $GW1 > /dev/null 2>&1 rm -rf /tmp/gw.none > /dev/null 2>&1 cp /var/www/virtual/www.local.domain/channel/isp1.html /var/www/virtual/www.local.domain/channel/index.html fi fi fi pm --- * Origin: default error (2:5025/14) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/181447164d90.html, оценка из 5, голосов 10
|