LINUX.ORG.RU
ФорумAdmin

DHCP на subinterface


0

1

Добрый день!

Есть шлюз на Debian, на нем поставил isc-dhcp-server. На шлюзе две физические NIC и один субинтефрейс eth0:1

Как сделать так, чтобы dhcp слушал eth0:1?

я не понимаю, почему на циске это делается легко и просто а не всеми любимом опенсорсе это никак не реализовать....:(



Последнее исправление: r1sh (всего исправлений: 1)

Что ты называешь «субинтерфейсом»?

Deleted
()

dhcp это L2 уровень. eth0:1 это уже уровень L3 (если не прав поправьте...).

Соответственно раздавать адреса без привязки к MAC можно только в одном диапазоне.

Если хочешь разадать из другого диапазона с привязкой по MAC то пожалуйста - можешь это делать на одном интерфейсе. Иначе - только через VLAN. Можешь на один физ. интерфейс сделать несколько VLAN и раздавать.

DALDON ★★★★★
()
Последнее исправление: DALDON (всего исправлений: 1)

какие проблемы ?

Броадкаст все равно приходит только на основной интерфейс. Понять куда пришел броадкаст на основной интерфейс или на алиас нельзя.

Для работы с алиасами у isc dhcpd есть shared-network.

Дальше либо ты классифицируешь запросы ( статиком или более хитро ), либо адреса выбираются по мере исчерпания пулов.

Единственная проблема в isc dhcpd - нельзя привязать fixed-address к конкретной подсети (без патчей).

vel ★★★★★
()

eth0:1 это не сабинтерфейс, а просто alias к физическому. на циске это просто secondary ip. Сабинтерфейс это чаще всего eth0.X (с дополнительной eth-инкапсуляцией в виде vlan)

srg666
()
Ответ на: комментарий от vel

спасибо за помощь, так и сделал, прописал shared-network, стали выдаваться ip адреса из созданного пула:)

подскажите, как сделать фильтр в пуле по маку? например чтобы мак-адресам, которые начинаются 08:00:27 выдавать ip из другого пула, я сделал так:

subnet 192.168.4.0 netmask 255.255.255.0 { class «virtual» { match if substring (hardware,1,3) = 08:00:27; } pool { range 192.168.4.2 192.168.4.254; allow members of «virtual»; deny unknown-clients; }

но не работает:(

r1sh
() автор топика
Ответ на: комментарий от r1sh

Давно я не отлаживал dhcpd :)

Я помню, что помогало разобраться с классами протоколирование

set cl-mac = binary-to-ascii(16, 8, "-", substring(hardware, 2, 6));
log (info, concat("Query from client:",cl-mac));

Не могу сейчас вспомнить, почему бралось именно «substring(hardware,2,6)», а не «substring(hardware,1,6)»

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.