特定の接続で特定の IP への接続を防止する

特定の接続で特定の IP への接続を防止する

問題はここにあります。私の DEV マシンには 2 つのネットワーク接続があります。

LAN - 建物のネットワークとインターネットに接続します。IP は DHCP によって割り当てられ、192.168.30.XX です。

ローカル - 1 台のテスト マシンがあるスイッチに接続します。IP は 192.168.25.100 です。テスト マシンは 192.168.25.2 にあります。

現在、TEST マシンをリモートで再起動し、ping を実行して、マシンが復旧したかどうかを確認しています。

問題は、昨日誰かが (おそらく誤って) 建物の LAN に IP 192.168.25.2 を持つマシンを追加したことです。そのため、TEST マシンを再起動して ping を実行すると、LAN 上のこのリモート マシンから応答が返ってきて、ソフトウェアは TEST マシンが復旧したと判断し、ログインしようとします。これは明らかに失敗します。応答しているのは TEST マシンではなく、まだ再起動中だからです。

私の質問は、どうすればいいのかということです:

  1. 192.168.25.2へのすべてのリクエストがLAN経由で送信されないようにする、または
  2. 192.168.25.2 へのすべてのリクエストを LOCAL 経由で送信するように強制する

アップデート: 最善の解決策は、ルーティング テーブルを変更して、192.168.25.2 へのパケットが 1 つのインターフェイス上でブロックされ、他のインターフェイス上で静的にルーティングされるようにすることだと思います。

問題は、これを使用して静的ルートを追加できることです。

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 アドレスを割り当てた場合は、おそらく他の問題も発生しています... 異なるサブネット上にあるために、プリンターや他のマシンに接続できない、その他の奇妙な問題などです。この人物が誰であるかを調べ、その人の PC を正しく (つまり、DHCP で) 設定してください。

サーバーで DHCP スコープが正しく設定されていることを確認し、次に「不正な」 PC のリースがあるかどうかを確認します。見つかった場合は期限切れにします。次に、別のサブネットで使用する PC の DHCP 例外を追加します (まだ存在しない場合)。これらのいずれかを実行した後は、サーバーの DNS をフラッシュすることをお勧めします。

あなたがネットワーク管理者でない場合は、ネットワーク管理者を関与させてください。やり方がわからない人は、ネットワーク上で PC をセットアップすべきではありません。

すでにお分かりのとおり、IP アドレスをブロックする最善の方法は、それをファイアウォールに追加することです。また、ファイアウォールに例外を追加することもできます...

関連情報