本地 DNS 啟動時,40 個節點的網路速度大幅下降
我們有一個帶有大約 40 個工作站(主要是 Windows)和幾台伺服器的 LAN。它們都使用一個內部 DNS(
196.168.0.4
執行BIND 9.5.0-P2
)和一個網關(192.168.0.1
執行 OpenBSD 包過濾器),它是一臺本地 PC,充當路由器。在過去的幾個月裡,在工作日的某些時候,網路速度變慢到無法進行任何與網際網路相關的事情的程度。在那些糟糕的時期,ping
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 (at
.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
這是非常一致和可重複的。我 ping (Google的公共 DNS)的事實
8.8.8.8
是完全隨機的,只是我必須測試網際網路連接的一種方式。我可能正在ping206.190.36.45
(雅虎公共網站的IP)。DNS 不對外界開放。因此,我認為可能有一個(或多個)工作站非常糟糕地使用了 DNS(可能間接通過病毒)並用請求或其他東西淹沒了它。問題是我無法追溯。在
0.4
機器top
上沒有給我任何 CPU 可疑活動,並且在0.1
(網關)上使用dst host 192.168.0.4
in過濾pftop
不會給我任何使用 DNS 的內部 IP。我已經嘗試將工作站的乙太網電纜一個接一個地拔掉,以找到一個可能有問題的工作站,但這個過程不是非常快速和準確,當網路穩定時,我不確定這是否是由於最後一個工作站我拔掉了電源,或者網路是否又好了。
關於下一步看哪裡的任何想法?
根據提供的資訊,我個人傾向於在 DNS 伺服器上使用 L2 交換循環和/或錯誤配置的鏈路聚合。它也可能是 L3 路由循環,但這似乎不太可能。但是,如果沒有更多資訊,我根本無法確定。
catch-22 是我沒有聲譽來評論這個問題,以澄清問題並在我發布之前確定這個答案是否有任何價值。希望這將為您指明正確的方向,並且您很快就會找到答案。