У нас есть локальная сеть с ~ 40 рабочими станциями (в основном Windows) и парой серверов. Все они используют внутренний DNS (196.168.0.4
Бег BIND 9.5.0-P2
) и шлюз (192.168.0.1
с запущенным OpenBSD Packet Filter), который является локальным ПК, выступающим в качестве маршрутизатора.
В течение последних двух месяцев в некоторые моменты рабочего дня сеть замедляется до такой степени, что делать что-либо, связанное с Интернетом, невозможно. В те плохие времена звенят 8.8.8.8
дает:
12:16:12.078: Timeout waiting for seq=11a1
12:16:13.484: From 8.8.8.8: bytes=60 SEQ=11a9 TTL=48 ID=0000 time=399.334ms
12:16:15.078: Timeout waiting for seq=11a4
12:16:15.437: From 8.8.8.8: bytes=60 SEQ=11ab TTL=48 ID=0000 time=355.409ms
12:16:18.078: Timeout waiting for seq=11a8
12:16:19.453: From 8.8.8.8: bytes=60 SEQ=11af TTL=48 ID=0000 time=376.317ms
12:16:21.078: Timeout waiting for seq=11aa
12:16:21.078: Timeout waiting for seq=11ac
12:16:21.390: From 8.8.8.8: bytes=60 SEQ=11b1 TTL=48 ID=0000 time=306.727ms
12:16:22.437: From 8.8.8.8: bytes=60 seq=11b2 TTL=48 ID=0000 time=364.351ms
12:16:23.453: From 8.8.8.8: bytes=60 seq=11b3 TTL=48 ID=0000 time=371.944ms
12:16:24.078: Timeout waiting for seq=11ad
12:16:24.078: Timeout waiting for seq=11ae
12:16:26.390: From 8.8.8.8: bytes=60 SEQ=11b6 TTL=48 ID=0000 time=307.729ms
12:16:27.078: Timeout waiting for seq=11b0
12:16:29.437: From 8.8.8.8: bytes=60 SEQ=11b9 TTL=48 ID=0000 time=361.575ms
12:16:30.078: Timeout waiting for seq=11b4
12:16:30.453: From 8.8.8.8: bytes=60 seq=11ba TTL=48 ID=0000 time=367.647ms
12:16:33.078: Timeout waiting for seq=11b5
12:16:33.078: Timeout waiting for seq=11b7
Именно в этот момент, если я включу DNS (в .0.4
) выключится, затем через пару секунд состояние сети снова станет очень хорошим:
12:47:43.046: From 8.8.8.8: bytes=60 seq=190b TTL=48 ID=0000 time=70.555ms
12:47:44.046: From 8.8.8.8: bytes=60 seq=190c TTL=48 ID=0000 time=82.684ms
12:47:45.046: From 8.8.8.8: bytes=60 seq=190d TTL=48 ID=0000 time=72.368ms
12:47:46.062: From 8.8.8.8: bytes=60 seq=190e TTL=48 ID=0000 time=84.310ms
12:47:47.046: From 8.8.8.8: bytes=60 seq=190f TTL=48 ID=0000 time=75.137ms
12:47:48.046: From 8.8.8.8: bytes=60 seq=1910 TTL=48 ID=0000 time=75.791ms
12:47:49.062: From 8.8.8.8: bytes=60 seq=1911 TTL=48 ID=0000 time=94.252ms
12:47:50.046: From 8.8.8.8: bytes=60 seq=1912 TTL=48 ID=0000 time=76.547ms
12:47:51.046: From 8.8.8.8: bytes=60 seq=1913 TTL=48 ID=0000 time=70.251ms
12:47:52.046: From 8.8.8.8: bytes=60 seq=1914 TTL=48 ID=0000 time=83.033ms
12:47:53.046: From 8.8.8.8: bytes=60 seq=1915 TTL=48 ID=0000 time=76.589ms
12:47:54.046: From 8.8.8.8: bytes=60 seq=1916 TTL=48 ID=0000 time=82.060ms
Это очень последовательно и воспроизводимо. То, что я пингую 8.8.8.8
(Общедоступный DNS Google) является полностью случайным, и мне просто нужно проверить подключение к Интернету. Я мог бы пинговать 206.190.36.45
(IP-адрес общедоступного веб-сайта Yahoo).
DNS не открыт для внешнего мира. Поэтому я думаю, что, возможно, одна (или несколько) рабочих станций очень плохо используют DNS (возможно, косвенно, через вирус) и наводняют его запросами или чем-то еще. Проблема в том, что я не могу отследить это. На 0.4
машина top
не обнаруживает подозрительной активности процессора и на 0.1
(шлюз) фильтрация с использованием dst host 192.168.0.4
в pftop
не дает мне никакого внутреннего IP-адреса, использующего DNS.
Я попытался отключить кабели Ethernet от рабочих станций одну за другой, чтобы найти возможную неисправную рабочую станцию, но этот процесс не очень быстрый и точный, и к тому времени, когда сеть стабилизируется, я не совсем уверен, было ли это из-за последней рабочей станции Я отключился или сеть снова вышла из строя.
Есть идеи, где посмотреть дальше?
Основываясь на предоставленной информации, я лично склоняюсь к петле коммутации L2 и / или неправильно настроенной агрегации каналов на DNS-сервере. Это также может быть петля маршрутизации L3, но это менее вероятно. Однако я не могу быть абсолютно уверенным без дополнительной информации.
Уловка-22 заключается в том, что у меня нет репутации, чтобы комментировать вопрос, чтобы прояснить проблему и определить, заслуживает ли этот ответ какой-либо ценности, прежде чем я его отправлю. Надеюсь, это укажет вам правильное направление, и вы скоро найдете ответ.
Я не уверен, что доказательства указывают на DNS. Мне кажется, что ваше интернет-соединение перегружено из-за длительного времени пинга и потери пакетов. Я бы предположил, что отключение DNS-сервера не позволяет одному или нескольким клиентам (возможно, неправильно себя вести из-за вируса, как вы предложили) использовать подключение к Интернету, потому что он больше не может искать имена хостов. Это снижает трафик, и подключение к Интернету начинает работать нормально.
Я бы порекомендовал контролировать подключение к Интернету с помощью чего-то, что может сообщать о самых популярных собеседниках, чтобы помочь вам найти машину-нарушитель.
Если ваш DNS-сервер общедоступен, вы можете стать пешкой в атаке с усилением DNS, и в результате исходящий трафик перегрузит вашу доступную пропускную способность.