From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <3F92CADD.3070500@yauza.ru> Date: Sun, 19 Oct 2003 21:33:17 +0400 From: "Pavel S. Khmelinsky" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030710 X-Accept-Language: ru, en-us, en MIME-Version: 1.0 To: devel-kernel@altlinux.ru X-Enigmail-Version: 0.76.1.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit Subject: [d-kernel] kernel: Neighbour table overflow. (after many ip nei replace and ip nei add) X-BeenThere: devel-kernel@altlinux.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: ALT Linux kernel packages development List-Id: ALT Linux kernel packages development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Oct 2003 17:33:19 -0000 Archived-At: List-Archive: List-Post: Есть сеть. Каждый пользователь этой сети прописан в файл со строками вида: Периодически на этот файл напускается скрипт, который по этим строкам генерирует настройки файервола и обновляет arp таблицу ядра. Сегодня днем программно отвалилась целая сеть, в логах вижу: Oct 19 20:56:31 portal kernel: Neighbour table overflow. Oct 19 20:56:37 portal kernel: NET: 41 messages suppressed. nmap либо вообще ничего не отображает либа ругает на sendto. Как ругается к сожалению не помню. при этом: [root@portal root]# ip nei show dev eth0 | wc -l 458 [root@portal root]# ip nei show dev eth2 | wc -l 104 [root@portal root]# ip nei flush dev eth0 [root@portal root]# ip nei flush dev eth2 Nothing to flush. Т.е. один ифейс флашится а другой нет при этом оба не пустые ip nei show dev ethX выдает по строчке $ip lladdr $mac nud permanent на каждого пользователя. При этом не понятно какой может быть Neighbour table overflow если на два и-фейса всего с полтыщи записей? Ребутнул сервер все заработало. Понятно что это связанно с моим скриптом, решил проверить раз по десять его прогнал -- повторилось. Теперь о том что из себя предтавляет скрипт: Каждый пользователь добавляется строчкой ip nei replace to $ip lladdr $mac dev $if nud permanent Т.е. если нет добавляется если есть то меняется. Если у пользователя в файле задан один тольк ИП, то запускается ip nei del to $ip dev $if Независимо от того был ли он добавлен или нет. Это нужно для того чтобы пользователя можно было отвязать от мака. Эта строчка естественно выдает ощибку если такой записи не было (может из за этого вся чехарда происходит) Это все так для справки. В общем как бы там ни работал мой скрипт поведение ядра все равно странное... Может бага? Может измение арп таблицы както протоколируется и именно из-за этого происходит переполнение? Прошу кого-нибудь сведущего прокомментировать.