LINUX.ORG.RU
ФорумAdmin

Настроить DHCPD на раздачу двух подсетей адресов

 


0

1

Доброго времени суток!

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

Возникла идей разбить сетку на подсети 192.168.1.1/24 и 192.168.2.1/24.
IP адреса выдаются DHCP сервером. Мне известны mac-адреса всех устройств. Сейчас сервер выдаёт адреса из 192.168.1.1.
А при попытке прописать в dhcpd.conf выдачу адреса из 192.168.2.1 указанное устройство не получает адреса.

Пробовал назначить интерфейсу сервера адреса из обоих подсетей.
Пробовал поменять маску интерфейса на 255.255.0.0.
Не помогает.

Подскажите, плз!

★★★★★

В таких условиях стало неудобно держать сетку одноранговой.

Одноранговость == равноправие клиентов в сети по своим функциям. Наличие DHCP-сервера в этой сети свидетельствует о том, что сеть не одноранговая. Иначе говоря, адресация IP отношения и влияния на одноранговость (или нет) не имеет.

Возникла идей разбить сетку на подсети 192.168.1.1/24 и 192.168.2.1/24.

192.168.1.1/24 и 192.168.2.1/24 — неправильные записи адресов подсетей. Правильно 192.168.1.0/24 и 192.168.2.0/24. Из таких маленьких неточностей складывается безграмотность.

Просто маску /23 использовать нельзя? И логически распределить адреса поддиапазона 192.168.1.0/24 среди устройств первого типа, а адреса поддиапазона 192.168.2.0/24 среди устройств второго типа?

Пробовал поменять маску интерфейса на 255.255.0.0.

Научитесь считать маски. /23 это 255.255.254.0

Ну и наконец, телепаты ещё не вернулись из отпуска, конфиг в студию.

anonymous
()

Как обычно, несколько вариантов решения задачи. Первый, простой - набить ручками/скриптом соответствие mac-ip в конфиг dhcpd.conf, назначить два айпишника (192.168.1.1/24 и 192.168.2.1/24) на интерфейс в сети, определить подсети в конфиге dhcpd.conf и перезапустить. Второй, сложный - включить radius сервер и всё хранить в базе.

Во-втором случае можно прилепить красивую веб-морду для управления, выбор базы данных за вами (зависит от поддерживаемых хранилищ выбранного radius-сервера).

ЗЫ. Выше уже отметили очевидные ошибки в вопросе.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

Первый, простой - набить ручками/скриптом

Набито, перезапущено. В качестве красивой морды выступает Webmin.

ЗЫ. Выше уже отметили очевидные ошибки в вопросе.

Что есть, то есть. Я уже засыпал, когда набирал пост.

Насчёт логического распределения /24 адресов — сейчас так и сделано. Но адресов скоро будет не хватать. Да и удобно было бы логически отделить компьютеры в классах от компьютеров сотрудников.

Не вижу смысла постить конфиг целиком — это ж перечисление компов. Вот часть:

option domain-name-servers 192.168.1.22;
option subnet-mask 255.255.255.0;
option routers 192.168.1.22;
subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.22;
        option domain-name-servers 192.168.1.22 , 80.79.179.2 , 80.79.176.2;
        authoritative;
        deny client-updates;
        deny unknown-clients;
        range 192.168.1.1 192.168.1.254;
        host Comp1 {
                hardware ethernet 00:00:00:00:00:00;
                fixed-address 192.168.1.101;
                }
       }
subnet 192.168.2.0 netmask 255.255.255.0 {
        option dhcp-server-identifier 192.168.2.22;
        option domain-name-servers 10.0.1.1;
        option routers 192.168.2.33;
        range 192.168.2.1 192.168.2.254;
        host Comp2 {
                hardware ethernet 00:00:00:00:00:01;
                fixed-address 192.168.2.101;
                }
        }
Внутри подсетей есть ещё группы, с разными шлюзами и DNS. Надеюсь, сейчас это не важно. Так как Comp2 просто не получает адреса.

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

Из таких маленьких неточностей складывается безграмотность.

Выше я написал, что печатал уже засыпая. Но не стоит быть слишком резким. Посмотрим:

192.168.1.1/24 и 192.168.2.1/24 — неправильные записи адресов подсетей. Правильно 192.168.1.0/24 и 192.168.2.0/24.

Строго говоря, вы правы. Но предложите nmap просканировать сеть 192.168.1.1/24 и он спокойно вас поймёт. Можете попробовать даже 192.168.1.254/24. Это правильная, хотя и не каноническая нотация.

Научитесь считать маски. /23 это 255.255.254.0

Здесь нет ошибки. Мне не нужна маска /23.

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

Если Comp1 получает неверный ip - из какой сети он его получает 192.168.1.0 или 192.168.2.0?

Аналогично опишите ситуацию с Comp2.

mildok
()
Ответ на: комментарий от fractaler

Вынесите authoritative наверх, вне блока subnet 192.168.1.0 или добавьте ее во вторую подсеть.

Какие настройки у сетевых интерфейсов? Что показывают tcpdump и dhcpd -d?

ilya82
()
Ответ на: комментарий от fractaler

фиксированные адреса следует выдавать за пределами range.

Elyas ★★★★★
()

как-то это идеологически неправильно.. логичней было бы разделить сеть на две части (виланы) и в каждой из них выдавать адреса со своей сетевухи??

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

Размести объявление обоих сетей внутри shared-network, сервер должен знать что обе сети находятся в одном сегмете.
Из man dhcpd.conf (твой случай):

Some  installations  have  physical  networks on which more than one IP
subnet operates.   For example, if there  is  a  site-wide  requirement
that  8-bit subnet masks be used, but a department with a single physi-
cal ethernet network expands to the point where it has  more  than  254
nodes,  it may be necessary to run two 8-bit subnets on the same ether-
net until such time as a new physical network can be added.    In  this
case,  the  subnet declarations for these two networks must be enclosed
in a shared-network declaration.

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

T.e. правильный конфиг примерно такой:

authoritative;
option domain-name-servers 192.168.1.22;
shared-network mynet {
subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.22;
        option domain-name-servers 192.168.1.22 , 80.79.179.2 , 80.79.176.2;

        deny client-updates;
        deny unknown-clients;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
        option dhcp-server-identifier 192.168.2.22;
        option domain-name-servers 10.0.1.1;
        option routers 192.168.2.33;
}        
}

#тут можно объявлять хосты
        host Comp1 {
                hardware ethernet 00:00:00:00:00:00;
                fixed-address 192.168.1.101;
                }


range не нужно, если прибиваешь адреса статиком.

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

Агромаднейшее спасибо! Сделал по твоему образцу и всё заработало.
Комментарии прояснили мне понимание логики происходящего.

Правда, делал через интерфейс Вебмина. Вебмин объявления хостов сделал внутри объявления сетей. Есть разница?

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

как-то это идеологически неправильно.. логичней было бы разделить сеть на две части (виланы) и в каждой из них выдавать адреса со своей сетевухи??

Я думал об этом. И я бы так сделал, если бы был необходим нормальный уровень безопасности. У меня же удобство использования заметно важнее безопасности.

fractaler ★★★★★
() автор топика

Лично у меня при задании статических адресов в конфиге при записи

host Comp1 { hardware ethernet 00:00:00:00:00:00; fixed-address 192.168.1.101; }

компу выдается только Ip адрес. Чтобы выдавались все параметры прописываю все опции вручную:

host lenovou310 { hardware ethernet 9C:4E:36:7D:2F:70; fixed-address 192.168.2.20; option domain-name-servers 192.168.48.4; option domain-name «office.local»; option routers 192.168.2.1; option broadcast-address 192.168.3.255; option subnet-mask 255.255.254.0; }

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