Сервер заDoSил сам себя

Столкнулся с проблемой у одного из клиентов. Сервер работает под Федорой нормально часов так 6-10, а потом ни с того ни с сего падает в кору, при чем время работы разное. По-скольку я приходящий админ, то в консоли посмотреть, что происходит не мог. Туда сыпался всякий мусор, который не имел отношения к факту падения. Вернее инфа о падении убегала с экрана раньше, чем я доезжал. Ковыряние в логах ничего не дало, там все чисто было.

И все таки я дождался момента, когда сервак начал дико глючить и увидел заветную надпись «Neighbour table overflow«. Ковыряние Гугла показало, что проблема с размером таблиц кеша ARP. Увеличение ее до 10000 ничего не дало. Кстати, увеличивается таким макаром:

echo 10000 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo 10000 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo 10000 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

Дальнейшее ковыряние Гугла навело на мысль о том, что сервак находится под атакой вирусняка из внутренней сети. Послушав tcpdump’ом поочереди внутренние интерфейсы выявил нехорошую активность. Но, что самое странное, эта активность была связана с сетью 169.254.0.0/16, т.е. с сетью, которая в принципе у меня не должна быть. При чем сервак сам упорно опрашивал по ARP все IP в этой подсети, т.е. фактически сам себе устроил arpflood и DoS в одном лице.

Таблица роутнига указала на один из внутренних VLANов, где и был обнаружен этот флуд. В принципе все уже было понятно, кроме одного: откуда эта сетка взялась? Оказывается в RedHat-like ОСях это фича ядра. Т.е. этот маршрут удалить нельзя через ip route. Был найден другой путь — во всех конфигах интерфейсов была добавлена строчка:

NOZEROCONF=yes

После рестарта сети маршрут с сетью 169.254.0.0 удалился и флуд закончился. Сервер продолжил работать как часы, оставив после этой проблемы вопросы:

  1. Нафига принудительно пихать мне сеть, которая мне 300 лет не нужна?
  2. Почему до определенного момента все работало и флуда не было?

Сейчас вот проверил на своем серваке. В Убунте нет такого маршрута. В очередной раз убедился, что не зря перелез на нее с Федоры.

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

8 комментариев(я)

  • 18.09.2008 22:43, Katrinka сказал:

    а вот вопросик можно? У вас время после поста указано. Это московское? Просто есть блог с очень похожим постом… расхождение во времени пару часов… Заранее спасибо!

    • 19.09.2008 06:14, selivan сказал:

      В сузе тоже включён по умолчанию. Zeroconf или APIPA «позволяет необученным пользователям соединять компьютеры, сетевые принтеры и другие устройства вместе и получать работающую сеть» … «без настройки DHCP и DNS» (c) wikipedia. Фича сомнительная, ни разу не видел чтобы его использовали

      • 19.09.2008 08:35, Silver Ghost сказал:

        Спасибо за дополнение. Пост писал уже сонный и сильно уставший. Не стал пояснять, что это за подсеть и зачем она нужна.

        А фича действительно весьма сомнительная. В винде еще понятно, а вот в Линухе зачем оно надо — ХЗ.

        • 19.09.2008 10:07, pwlnw сказал:

          много раз видел как это используют. просто люди не знают таких слов. сетевое окружение есть, компы видятся и ладно.
          и в убунте есть пакет avahi и его можно невзначай поставить и он будет делать то же самое что и винда.

          но вот зачем это засунули в ядро (а точно засунули ли ?) непонятно.

          • 20.09.2008 20:38, Yuri Trofimov сказал:

            http://kubuntu.ru/node/364
            😉

            • 20.09.2008 20:43, Yuri Trofimov сказал:

              http://ipesin.linux.kiev.ua/translations/rhm/tipstricks10.htm
              http://www.zeroconf.org/

              • 21.09.2008 14:03, Silver Ghost сказал:

                Катринка, время указано по Киеву.

                • 21.09.2008 14:04, Silver Ghost сказал:

                  Юрий, Спасибо за ссылки. :)

                  (Обязательно)
                  (Обязательно, не публикуется)

                  Я пришел к тебе с дискетой - рассказать, что сеть упала
                  Яндекс.Метрика beget