問題就在這裡。我的 DEV 電腦上有兩個網路連線。
LAN - 連接到建築物網路和網際網路。 IP由DHCP分配,為192.168.30.XX。
本地 - 連接到具有測試機器的交換器。 IP 為 192.168.25.100。測試機位址為192.168.25.2。
現在,我遠端重新啟動測試機器,然後 ping 查看它何時恢復。
問題是,昨天有人(可能是意外地)將一台機器添加到IP 為192.168.25.2 的建築物LAN 中,所以現在當我的測試機器重新啟動並對其執行ping 操作時,我會從LAN 上的這台遠端機器獲得回應,我的軟體認為測試機器已備份,並嘗試登入。
我的問題是,我該如何:
- 阻止所有對 192.168.25.2 的請求透過 LAN 發出,或者
- 強制所有對 192.168.25.2 的請求透過 LOCAL 發出
更新: 我認為最好的解決方案是修改路由表,以便在一個介面上阻止發送到 192.168.25.2 的資料包,並在另一個介面上靜態路由。
問題是,雖然我可以使用以下命令新增靜態路由:
route add 192.168.25.100 mask 255.255.255.255 192.168.25.2
但如果靜態路由失敗,Windows 仍會自動故障還原到 LAN 並嘗試 ping 那裡。
是否有辦法阻止路由表中特定介面或網關的流量?
答案1
不知道為什麼我沒有早點想到這一點,但最簡單的解決方案是在 Windows 防火牆內建立自訂規則,以阻止特定介面或連線類型上與指定 IP 的連線。
更新:也沒有真正解決問題。這只會導致 ping 返回“一般失敗”,而不是超時或目的地無法到達。 「一般失敗」會導致 C# 中出現異常,我必須編寫一個處理程序來捕獲它。
同樣,我可以編寫一個異常處理程序,但這不是很優雅。
答案2
如果有人在網路上「新增一台機器」並為其提供了DHCP 範圍之外的靜態IP 位址,那麼他們可能也會遇到其他問題...由於以下原因而無法連接到印表機/其他機器/其他奇怪的問題位於不同的子網路上。找出這個人是誰並正確設定他們的電腦(即在 DHCP 上!)。
檢查您的伺服器 DHCP 範圍是否設定正確,然後查看是否有「惡意」PC 的租用。如果找到則使其過期。然後為您想要在不同子網路上使用的 PC 新增 DHCP 例外(如果尚未存在)。完成上述操作後刷新伺服器上的 DNS 可能是個好主意。
如果您不是網路管理員,請讓他們參與其中 - 如果人們不知道如何操作,就不應該在您的網路上設定 PC!
正如您已經想到的 - 阻止 IP 位址的最佳方法是將其添加到防火牆中,您也可以將例外添加到防火牆中...