Как заставить dhcp сервер прослушивать широковещательные запросы в виртуальной коробке vm - PullRequest
0 голосов
/ 21 марта 2012

Я работаю на udhcpd , облегченном dhcp-сервере , который поставляется с занятым .

Я внес некоторые изменения кодаи чтобы протестировать те, которые мне нужны, чтобы запустить udhcpd, отправить запрос (для получения ip) от клиента и просмотреть его ответ.

Для этого требуется несколько машин, и для меня подходящим вариантом было использование нескольких виртуальных виртуальных машин.

Я использовал две виртуальные машины Linux (Fedora для запуска udhcpd и ubuntu для запуска udhcpc - клиента, который поставляется с ящиком занятых для генерации запросов dhcp).

Теперь в сети есть несколько режимов работы.Виртальная коробка.Я перепробовал их все.NAT, самый простой, позволяет vm использовать мой windows windows без какой-либо конфигурации.

Я пробовал различные типы карт виртуальных ящиков, например, только хост, внутренняя сеть, и назначил адрес fedora 192.168.0.1, который является udhcpd, и отправил dhcpзапросы на обнаружение от клиентов udhcpc.

Оба находятся на одном интерфейсе, то есть eth0, и я могу видеть широковещательный запрос от 0.0.0.0 до 255.255.255.255 для обнаружения dhcp.Но udhcpd - сервер dhcp, никогда не получает и не отвечает на запрос .

Я также пытался сначала назначить ip клиенту dhcp, то есть 192.168.0.2.

Ноникогда не получайте ответ.

Если я использую NAT или другой режим, в котором работает dhcp-сервер собственного Virtual Box, то это тот сервер, который отвечает на обнаружение dhcp, а мой udhcpd from busy box не выбираетпакеты.

Я чувствую, что это как-то связано с маской подсети, возможно, с сервера udhcpd.

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 27 марта 2012

Мой плохой, брандмауэр в виртуальной машине fedora (таблицы ip) по умолчанию блокировал входящие соединения.

Вот способ разрешить это.

Открыть и отредактировать / etc / sysconfig / iptables

vi / etc / sysconfig / iptables

Было бы несколько записей, подобных следующей:

-A RH-Firewall-1-INPUT -m состояние - состояние NEW -m tcp -p tcp --dport 5800 -j ПРИНЯТЬ

-A RH-Firewall-1-INPUT -m состояние - состояние NEW -m tcp -p tcp --dport 5900 -j ПРИНЯТЬ

-A RH-Firewall-1-INPUT -m состояние - состояние NEW -m tcp -p tcp --dport 6000 -j ПРИНЯТЬ

Я добавил запись для моего порта dhcp следующим образом:

-A RH-Firewall-1-INPUT -m состояние - состояние NEW -m udp -p udp --dport 67 -j ПРИНЯТЬ

Сохраните и закройте файл. Перезапустите iptables:

service iptables restart

Обратите внимание, что команды могут отличаться в дистрибутивах Linux на основе Ubuntu или Debian, поскольку таблицы ip на этих платформах могут не работать как служба. Ищите специфические манипуляции с ОС, которые широко документированы.

...