2009-07-03 2 views
1

Использование Hyper-V Я построил приватный домен Windows, который отгорожен от нашей основной сети. В конечном счете, я хочу предоставить этот домен другим пользователям для разработки и тестирования, поэтому они могут быть администратором домена.Обнаружение удаленных DHCP-серверов в .NET

Контроллер домена выполняет службу dhcp (другие системы в моем домене имеют зависимости от dhcp). Проблема в том, что если какой-то идиот (то есть я) случайно подключит контроллер домена к основной сети, он ответит на запросы dhcp (это предположение) и выдаст неверные конфигурации ip.

Итак, я хотел бы написать службу Windows .NET, которая запускает локальную службу dhcp только тогда, когда нет других серверов dhcp. В идеале это может периодически проверяться в фоновом режиме, поэтому, если вы измените конфигурацию виртуальной сети во время работы компьютера, dhcp можно будет автоматически остановить, а потенциальный ущерб будет ограничен.

Я немного зациклился на том, как обнаружить удаленные серверы dhcp. До сих пор я подумывал написать обертку для инструмента командной строки dhcploc, но есть ли лучшая/более простая альтернатива, которая могла бы достичь цели? Есть ли какие-либо оговорки, о которых я должен знать?

Благодаря

+1

Я думаю, что если вы зададите вопрос на serverfault.com, вы можете получить некоторое решение, которое не связано с программированием. Просто спросите, что делать, если у вас есть два сервера dhcp в одной сети. –

ответ

1

Как предложил Шей Эрлихмен, я разместил вопрос о ошибке сервера here. Оказывается, вы можете указать, что DHCP-сервер назначает IP-адреса только известным MAC-адресам. Учитывая, что мои виртуальные машины (могут) все знают MAC, я могу использовать это для блокировки DHCP-сервера частного домена.

0

Кто-то написал C# network sniffer вы могли адаптироваться к вашим целям, но это, казалось бы слишком сложным. В структуре нет встроенной поддержки DHCP, поэтому нет простого метода, который вы можете просто вызвать. Я думаю, что для ваших целей вы, вероятно, лучше всего придерживаетесь обертывания инструмента командной строки, как вы говорите, что делаете.

+0

Спасибо, я также нашел this крошечный сервер dhcp на codeproject - возможно, полезная ссылка, если я пытаюсь перехватить dhcp-пакеты. –

Смежные вопросы