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

DHCP: одна сетевая карта и несколько подсетей

Я настраиваю Debian для работы в качестве шлюза для сети небольшого офиса. Мне нужно иметь три подсети для разных областей внутри компании, и я определю, какие компьютеры получат IP на основе их MAC-адресов.

Мой вопрос: можно ли обрабатывать DHCP для 3 подсетей с помощью одной сетевой карты? как?

Я пробовал настроить виртуальный интерфейс для каждой сети следующим образом:

# ip addr show dev eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 6c:f0:49:a4:47:38 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth2
    inet 10.1.2.1/24 brd 10.1.2.255 scope global eth2:1
    inet 10.1.3.1/24 brd 10.1.3.255 scope global eth2:2
    inet 10.1.1.1/24 brd 10.1.1.255 scope global eth2:0
    inet6 fe80::6ef0:49ff:fea4:4738/64 scope link 
       valid_lft forever preferred_lft forever

Примечание: eth2 использует 192.168.1.10, потому что ящик в настоящее время не является сетевым шлюзом. Это временно.

Затем я настроил свой dhcpd.conf следующим образом:

ddns-update-style interim;
option domain-name "mydomain.com";
option domain-name-servers ns1.mydomain.com;
default-lease-time 86400;
max-lease-time 86400;
authoritative;
log-facility local7;

subnet 10.1.1.0 netmask 255.255.255.0 {
        range 10.1.1.100 10.1.1.254;
        default-lease-time 86400;
        max-lease-time 86400;
        option routers 10.1.1.1;
        option ip-forwarding off;
        option broadcast-address 10.1.1.255;
        option subnet-mask 255.255.255.0;
        option ntp-servers 10.1.1.1;
        option domain-name-servers 10.1.1.1;
}

subnet 10.1.2.0 netmask 255.255.255.0 {
        range 10.1.2.100 10.1.2.254;
        default-lease-time 86400;
        max-lease-time 86400;
        option routers 10.1.2.1;
        option ip-forwarding off;
        option broadcast-address 10.1.2.255;
        option subnet-mask 255.255.255.0;
        option ntp-servers 10.1.2.1;
        option domain-name-servers 10.1.2.1;
}

subnet 10.1.3.0 netmask 255.255.255.0 {
        range 10.1.3.100 10.1.3.254;
        default-lease-time 86400;
        max-lease-time 86400;
        option routers 10.1.3.1;
        option ip-forwarding off;
        option broadcast-address 10.1.3.255;
        option subnet-mask 255.255.255.0;
        option ntp-servers 10.1.3.1;
        option domain-name-servers 10.1.3.1;
}

Но когда я пытаюсь запустить dhcpd, я получаю следующее:

# dhcpd -4 eth2:0 eth2:1 eth2:2
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.

No subnet declaration for eth2:2 (no IPv4 addresses).
** Ignoring requests on eth2:2.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface eth2:2 is attached. **


No subnet declaration for eth2:1 (no IPv4 addresses).
** Ignoring requests on eth2:1.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface eth2:1 is attached. **


No subnet declaration for eth2:0 (no IPv4 addresses).
** Ignoring requests on eth2:0.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface eth2:0 is attached. **


Not configured to listen on any interfaces!

Я новичок в DHCP, поэтому я, вероятно, упускаю что-то очевидное. Некоторое время я искал в Google, но я не могу найти ответы, которые мне нужны, или я ищу неправильно.

Поскольку три подсети используют один и тот же носитель (eth2), они должны быть объявлены внутри одного и того же shared-network:

shared-network my-net {
  subnet 10.1.1.0 netmask 255.255.255.0 {
    ...
  }

  subnet 10.1.2.0 netmask 255.255.255.0 {
    ...
  }

  subnet 10.1.3.0 netmask 255.255.255.0 {
    ...
  }
}

На самом деле есть только два способа сделать это;

  1. Задайте IP-адрес DHCP-сервера в качестве «адреса помощника DHCP» на коммутаторе L3 для каждой VLAN, а затем определите области для тех, что на вашем сервере.
  2. Установите порт сетевой карты DHCP-сервера на коммутаторе как магистраль .1q, по которой передаются все соответствующие VLAN, затем настройте отдельные vNIC на своем сервере с соответствующими IP-адресами для каждой VLAN и переходите оттуда.

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