Перейти к содержимому
Калькуляторы

DHCP class & pool

Добрый день. Никак не могу решить такую проблему, вроде бы и на форуме народ писал про нее, но решения я так и не увидел.

 

Хочу раздавать по dhcp IP привязанные к свичам и портам (option 82). Настраиваю по народным рецептам

 

Мой dhcpd.conf

 

option domain-name "example.org";

option domain-name-servers 10.10.1.3;

authoritative;

ddns-update-style none;

default-lease-time 120;

max-lease-time 180;

min-lease-time 60;

use-lease-addr-for-default-route on;

one-lease-per-client on;

deny duplicates;

deny bootp;

option arp-cache-timeout 120;

option netbios-node-type 1;

log-facility local7;

local-address 10.250.250.1;

if exists agent.circuit-id {

log ( info, concat( "Lease for ", binary-to-ascii (10, 8, ".", leased-address),

" raw option-82 info is CID: ", binary-to-ascii (10, 8, ".", option agent.circuit-id),

" AID: ", binary-to-ascii(16, 8, ".", option agent.remote-id),

" suffix agent.circuit-id:", binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)),

" suffix agent.remote-id: ", binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6))

));

}

class "dlink" {

match if binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) = "0:21:91:8c:95:28" ;

}

class "port-5" {

match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5" ;

}

shared-network "clients" {

subnet 10.250.250.0 netmask 255.255.255.0 {

pool {

range 10.250.250.23; allow members of "port-5";

}

pool {

range 10.250.250.33; allow members of "dlink";

}

}

}

 

в итоге хочу получить, чтобы с порта 5го выдавался 10.250.250.23, а слюбого другого 10.250.250.33.

В логе вижу вот такое

 

Oct 27 11:30:17 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via vlan1: network clients: no free leases

Oct 27 11:30:17 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.9 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:9 suffix agent.remote-id: 0:21:91:8c:95:28

Oct 27 11:30:17 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via 10.250.250.3

Oct 27 11:30:17 server dhcpd: DHCPOFFER on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3

Oct 27 11:30:18 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 via vlan1: lease 10.250.250.33 unavailable.

Oct 27 11:30:18 server dhcpd: DHCPNAK on 10.250.250.33 to 00:26:18:6a:ab:75 via vlan1

Oct 27 11:30:18 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.9 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:9 suffix agent.remote-id: 0:21:91:8c:95:28

Oct 27 11:30:18 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 (netbook) via 10.250.250.3

Oct 27 11:30:18 server dhcpd: DHCPACK on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3

 

и так до бесконечности. погуглил в инете проблема есть, решения не нашел. Все советы сводятся к тому, что match не проходит, специально в лог вывожу, тоже самон значение :( .Почему имено dhcpd пишет no free leases, а потом lease 10.250.250.33 unavailable

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

потому, что классы и пулы между собой никак не связаны

 

shared-network "clients" {
  subnet 10.250.250.0 netmask 255.255.255.0 {
    class "dlink" {
        match if binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) = "0:21:91:8c:95:28";
    }
    class "port-5" {
        match if binary-to-ascii (10, 8, "", suffix( option agent.circuit-id, 1)) = "5";
    }
    pool {
        range 10.250.250.23; allow members of "port-5";
    }
    pool {
        range 10.250.250.33; allow members of "dlink";
    }
  }
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

потому, что классы и пулы между собой никак не связаны

Дико извиняюсь, а как их связать? подскажите

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

потому, что классы и пулы между собой никак не связаны

Дико извиняюсь, а как их связать? подскажите

насколько я понял выше в примере описано

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

насколько я понял выше в примере описано

неподходит :(

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

описание классов внутри, описания subnet, так и выше ее. Нигде не оговаривалось обязательное месторасположение описания class.

 

Убрал shared-network оставил только

    subnet 10.250.250.0 netmask 255.255.255.0 {
        class "dlink" {
            match if binary-to-ascii (16, 8, ":", suffix( option agent.remote-id, 6)) = "0:21:91:8c:95:28";
        }
        pool {
            range 10.250.250.33; allow members of "dlink";
        }
  }

все равно выдает в логи

Oct 28 16:17:08 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via vlan1: network 10.250.250.0/24: no free leases        
Oct 28 16:17:08 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.17 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:17 suffix agent.remote-id: 0:21:91:8c:95:28                                                              
Oct 28 16:17:08 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via 10.250.250.3                                          
Oct 28 16:17:08 server dhcpd: DHCPOFFER on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3             
Oct 28 16:17:08 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 via vlan1: lease 10.250.250.33 unavailable.                                                                                                            
Oct 28 16:17:08 server dhcpd: DHCPNAK on 10.250.250.33 to 00:26:18:6a:ab:75 via vlan1                                       
Oct 28 16:17:08 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.17 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:17 suffix agent.remote-id: 0:21:91:8c:95:28                                                              
Oct 28 16:17:08 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 (netbook) via 10.250.250.3                                                                                                                      
Oct 28 16:17:08 server dhcpd: DHCPACK on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3               
Oct 28 16:17:09 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via vlan1: network 10.250.250.0/24: no free leases        
Oct 28 16:17:09 server dhcpd: Lease for 10.250.250.33 raw option-82 info is CID: 0.4.0.1.0.17 AID: 0.6.0.21.91.8c.95.28 suffix agent.circuit-id:17 suffix agent.remote-id: 0:21:91:8c:95:28                                                              
Oct 28 16:17:09 server dhcpd: DHCPDISCOVER from 00:26:18:6a:ab:75 via 10.250.250.3                                          
Oct 28 16:17:09 server dhcpd: DHCPOFFER on 10.250.250.33 to 00:26:18:6a:ab:75 (netbook) via 10.250.250.3             
Oct 28 16:17:09 server dhcpd: DHCPREQUEST for 10.250.250.33 (10.250.250.1) from 00:26:18:6a:ab:75 via vlan1: lease 10.250.250.33 unavailable.                                                                                                            
Oct 28 16:17:09 server dhcpd: DHCPNAK on 10.250.250.33 to 00:26:18:6a:ab:75 via vlan1

 

в логах еще видно что mac свича правильно выделяю, почему этот запрос в класс не попадает?, непонятно :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У Вас же все в одном влане: клиент, релей-агент и сервер. И происходит что то типа: прилетает бродкастовый дисковер, на что сервер отвечает no free leases. Потом отрелеенный на который сервер предлагает адрес из пула, после чего на сервер прилетает бродкастовый (без agent.remote-id) request "хочу адрес 10.250.250.33" на что сервер говорит не положено: DHCPNAK...

Уж если пользуетесь рецептами, то для начала, приготовьте хотя бы один в точности как написано и все получится :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ОГРОМНОЕ спасибо!!!

Так и получилось. К сожалению тестовый стенд возможно иметь из подручных средств (виртуальные машины и vlan-ы на самом компе) + неполное понимание процесса (то что вы заметили в моих логах, сам не доглядел :( ) не всегда приводят к нужному результату. Еще раз спасибо!!!

 

Уж если пользуетесь рецептами, то для начала, приготовьте хотя бы один в точности как написано и все получится :)
Да это один из тех рецептов по которым готовил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.