Обнаружение удаленных DHCP-серверов в .NET

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

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

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

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

Спасибо


person Alex Peck    schedule 03.07.2009    source источник
comment
Я думаю, что если вы зададите вопрос на serverfault.com, вы можете получить какое-то решение, не связанное с программированием. Просто спросите, что делать, если у вас есть два DHCP-сервера в одной сети.   -  person Shay Erlichmen    schedule 04.07.2009


Ответы (2)


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

person Alex Peck    schedule 09.07.2009

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

person Jon Grant    schedule 03.07.2009
comment
Спасибо, я также нашел ‹a href=codeproject.com/KB/ IP/tiny_DHCP_server.aspx›this‹/a› крошечный dhcp-сервер в codeproject — вероятно, полезная ссылка, если я попытаюсь перехватить пакеты dhcp. - person Alex Peck; 03.07.2009