Назад | Перейти на главную страницу

Сбой обновления DHCP с несколькими подсетями на одной ссылке

Наша сеть в настоящее время состоит из 3 подсетей на одной ссылке:

Наш хост dhcpd имеет следующие / etc / network / interfaces:

auto lo
iface lo inet loopback

auto eth0
allow-hotplub eth0
iface eth0 inet static
    address 1.2.3.2
    netmask 255.255.255.0
    gateway 1.2.3.1

iface eth0:1 inet static
    address 192.168.0.1
    netmask 255.255.0.0

iface eth0:2 inet static
    address 10.1.0.2
    netmask 255.255.0.0

и этот dhcpd.conf:

authoritative;
# option definitions common to all supported networks...
option domain-name "example.com";
option domain-search "example.com";
option domain-name-servers 8.8.8.8;
option ntp-servers 1.2.3.8;

default-lease-time 600;
max-lease-time 600;


shared-network "corp" {
  include "/etc/nat-classes.conf";

  subnet 1.2.3.0 netmask 255.255.255.0 {
    option subnet-mask 255.255.255.0;
    option broadcast-address 1.2.3.255;
    option routers 1.2.3.1;
    default-lease-time 600; 
    max-lease-time 600; 
    deny unknown-clients;
  }

  subnet 10.1.0.0 netmask 255.255.0.0 {
    option subnet-mask 255.255.0.0;
    option broadcast-address 10.1.255.255;
    option routers 10.1.0.1;
    default-lease-time 600;
    max-lease-time 600;

    include "/etc/nat-pools.conf"; # every user owns a pool of addresses
  }

  subnet 192.168.0.0 netmask 255.255.0.0 {
    pool {
      range 192.168.0.3 192.168.255.254;
      deny known-clients;
    }
    option subnet-mask 255.255.0.0;
    option broadcast-address 192.168.255.255;
    option routers 192.168.0.1;
    option domain-name-servers 192.168.0.1;
    filename "pxelinux.0";
    next-server 192.168.0.1;
    allow unknown-clients;
  }
}
# ... known host definitions ...

Теперь мы наблюдали следующее:

Мы знаем, что есть идентификатор сервера вариант согласно dhcpd.conf (5):

The usual case where the server-identifier statement needs to be sent is
when a physical interface has more than one IP  address,  and
the  one  being  sent  by  default isn't appropriate for some or
all clients served by that interface.  Another common case is when an
alias is defined for the purpose of having a consistent IP
address for the DHCP server, and it is desired that the clients use this IP
address when contacting the server.

Но при установке этого параметра во всех трех соответствующих определениях подсети DHCP перестает работать в подсетях 10.1 / 16 и 192.168 / 16, потому что по какой-то причине ПРЕДЛОЖЕНИЯ DHCP (теперь с правильными заголовками Src IP и DHCP Server Identifier) ​​не доходят до клиентов. больше.

Несмотря на то, что срок аренды 600 в сочетании с нашим адаптивным порталом - это не что иное, как безопасное решение, как мы можем заставить DHCP в разных подсетях правильно работать с клиентами, выпускающими обновления, как только истечет время аренды?

Я наконец решил проблему сам. У нас было включено отслеживание DHCP на коммутаторах, поэтому я ввел IP-адрес 10.1.0.2 в качестве авторизованного IP-адреса на коммутаторах и вернул идентификаторы серверов в конфигурацию и вуаля, это сработало!

shared-network "corp" {
  subnet 1.2.3.0 netmask 255.255.255.0 {
    server-identifier 1.2.3.2;
    # ...
  }
  subnet 10.1.0.0 netmask 255.255.0.0 {
    server-identifier 10.1.0.2;
    # ...
  }
  subnet 192.168.0.0 netmask 255.255.0.0 {
    server-identifier 192.168.0.1;
    # ...
  }
}