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

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-ы на самом компе) + неполное понимание процесса (то что вы заметили в моих логах, сам не доглядел :( ) не всегда приводят к нужному результату. Еще раз спасибо!!!

 

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

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


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас