Hier ist das Problem. Ich habe zwei Netzwerkverbindungen auf meiner DEV-Maschine.
LAN – Verbindung zum Gebäudenetzwerk und zum Internet. Die IP wird per DHCP zugewiesen und lautet 192.168.30.XX.
LOKAL - Verbindet sich mit einem Switch, der über eine TEST-Maschine verfügt. Die IP ist 192.168.25.100. Und die Test-Maschine befindet sich unter 192.168.25.2.
Im Moment starte ich die TEST-Maschine per Fernzugriff neu und pinge dann, um zu sehen, wann sie wieder hochgefahren ist.
Das Problem besteht darin, dass gestern jemand (wahrscheinlich aus Versehen) eine Maschine mit der IP-Adresse 192.168.25.2 zum LAN des Gebäudes hinzugefügt hat. Wenn meine TEST-Maschine jetzt neu gestartet wird und ich einen Ping an sie sende, erhalte ich eine Antwort von dieser Remote-Maschine im LAN. Meine Software denkt, die TEST-Maschine sei wieder aktiv und versucht, sich anzumelden. Dies schlägt offensichtlich fehl, da nicht die TEST-Maschine antwortet und sich noch mitten im Neustart befindet.
Meine Frage ist, wie kann ich entweder:
- alle Anfragen für 192.168.25.2 über das LAN zu verhindern, oder
- erzwingen, dass alle Anfragen für 192.168.25.2 über LOCAL ausgehen
AKTUALISIEREN: Ich denke, die beste Lösung wäre, die Routing-Tabelle so zu ändern, dass Pakete an 192.168.25.2 über eine Schnittstelle blockiert und statisch über die andere geroutet werden.
Die Sache ist, dass ich mit Folgendem eine statische Route hinzufügen kann:
route add 192.168.25.100 mask 255.255.255.255 192.168.25.2
Wenn diese statische Route jedoch fehlschlägt, führt Windows weiterhin automatisch ein Failback zum LAN durch und versucht, dort einen Ping-Befehl auszuführen.
Gibt es eine Möglichkeit, den Datenverkehr zu einer bestimmten Schnittstelle oder einem bestimmten Gateway innerhalb der Routing-Tabelle zu blockieren?
Antwort1
Ich weiß nicht genau, warum ich nicht früher darauf gekommen bin, aber die einfachste Lösung besteht darin, einfach eine benutzerdefinierte Regel innerhalb der Windows-Firewall zu erstellen, um Verbindungen zu/von der angegebenen IP über eine bestimmte Schnittstelle oder einen bestimmten Verbindungstyp zu blockieren.
UPDATE: Löst das Problem auch nicht wirklich. Dies führt nur dazu, dass Pings als „Allgemeiner Fehler“ zurückgegeben werden, anstatt als Timeout oder Ziel nicht erreichbar. „Allgemeiner Fehler“ verursacht eine Ausnahme in C#, und ich müsste einen Handler schreiben, um sie abzufangen.
Auch hier KÖNNTE ich einen Ausnahmehandler schreiben, aber das ist nicht sehr elegant.
Antwort2
Wenn jemand eine Maschine zum Netzwerk hinzugefügt und ihr eine statische IP-Adresse außerhalb des DHCP-Bereichs zugewiesen hat, treten wahrscheinlich auch andere Probleme auf ... Keine Verbindung zu Druckern/anderen Maschinen/andere seltsame Probleme, weil sich die Person in einem anderen Subnetz befindet. Finden Sie heraus, wer diese Person ist, und richten Sie ihren PC richtig ein (d. h. auf DHCP!).
Überprüfen Sie auf Ihrem Server, ob der DHCP-Bereich richtig eingestellt ist, und prüfen Sie dann, ob eine Lease für den „nicht autorisierten“ PC vorhanden ist. Lassen Sie diese ablaufen, wenn sie gefunden wird. Fügen Sie dann DHCP-Ausnahmen für Ihre PCs hinzu, die Sie in einem anderen Subnetz verwenden möchten, falls diese noch nicht vorhanden sind. Es könnte auch eine gute Idee sein, den DNS auf dem Server zu leeren, nachdem Sie dies getan haben.
WENN Sie nicht der Netzwerkadministrator sind, beziehen Sie ihn mit ein – niemand sollte in Ihrem Netzwerk PCs einrichten, wenn er nicht weiß, wie das geht!
Wie Sie bereits herausgefunden haben, besteht die beste Möglichkeit zum Blockieren einer IP-Adresse darin, sie zur Firewall hinzuzufügen. Sie können der Firewall auch Ausnahmen hinzufügen …