DHCPD игнорирует мою декларацию подсети

11

eth0мой внутренний интерфейс имеет статический адрес 10.0.0.1. У меня также есть интерфейс p4p1, выступающий в качестве моего внешнего интерфейса. Если это имеет значение, мой внешний интерфейс физически не подключен и iptablesотключен / все еще записывается.

/etc/sysconfig/dhcpd:

DHCPDARGS=eth0

пункт подсети от /etc/dhcpd.conf:

subnet 10.0.0.0 netmask 255.255.255.0 {
  option routers 10.0.0.1;
  option domain-name-servers 10.0.0.1;
  option ntp-servers 10.0.0.1;
  default-lease-time 86400; # 1 day 
  max-lease-time 604800;    # 7 days
  use-host-decl-names on;
  ddns-updates on;

  use-host-decl-names on;
  allow unknown-clients;
  ignore client-updates;

  option domain-name "localdomain";
  ddns-domainname "localdomain";
  next-server 10.0.0.1;
  filename "pxelinux.0";

  group # known hosts
  {
    host host1.localdomain  {hardware ethernet [REDACTED]; fixed-address host1.localdomain;}
    host host2.localdomain  {hardware ethernet [REDACTED]; fixed-address host2.localdomain;}
  {

  pool
  {
    one-lease-per-client true;
    ping-check true;
    range 10.0.0.51 10.0.0.60;
  }
}

Итак, почему я по-прежнему получаю сообщение об ошибке «Нет объявления подсети» при запуске?

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

ОБНОВЛЕНИЕ 4/1 1900h

До сегодняшних экспериментов:

[root@father ~]# ip addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 90:e2:ba:2d:92:4d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0
    inet6 fe80::92e2:baff:fe2d:924d/64 scope link 
       valid_lft forever preferred_lft forever

Я переключил свои внутренние IP-адреса в сети 192.168.100.0/24с соответствующими изменениями, чтобы /etc/dhcpd.confбез изменений в поведении.

[root@father ~]# ip addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 90:e2:ba:2d:92:4d brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.1/24 brd 192.168.100.255 scope global eth0
    inet6 fe80::92e2:baff:fe2d:924d/64 scope link 
       valid_lft forever preferred_lft forever

[root@father ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 p4p1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 p4p1
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth0

О, эй! Там нет ворот! Это легко исправить с GATEWAY=192.168.0.1в ifcfg-eth0и ifcfg-p4p1файлов. service network restartи...

[root@father ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 p4p1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 p4p1
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 p4p1

Итак, у меня есть шлюз, но происходит service dhcpd startсбой с той же ошибкой.

Другие заметки:

  • p4p1 физически не связан.
  • service dhcpd configtestговорит Syntax: OK. Таким образом, это почти наверняка не случай неуместной скобки.
Давит
источник
1
Для RHEL / CentOS 7 с systemd: вы можете сделать копию , /lib/systemd/system/dhcpd.serviceчтобы /etc/systemd/system/и указать интерфейс в Exec линии: ExecStart=/usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid eth0
ILMostro_7

Ответы:

14

Хорошо, я могу получить "D'Oh!" из собрания!

В RHEL6 и производных, конфигурационный файл DHCPD теперь находятся по адресу /etc/dhcp/dhcpd.conf, не /etc/dhcpd.conf. Переместил файл и все хорошо.

Давит
источник
Сейчас все работает нормально или у вас возникли проблемы?
Рахул Патил
3
Сейчас работает нормально. И этот синяк на лбу от того места, где я бился головой о стол ...
dafydd
Раздражает, верно? Я только что получил это.
ewwhite
Когда я искал "centos install dhcpd", результат centos.org, который является первым, относится к centos 5 и ссылается на /etc/dhcpd.conf. Имеет смысл, что могут быть небольшие, но существенные изменения в том, как спроектирован CentOS 6+, как это!
bgStack15
7

Указанная вами маска подсети dhcpd.confдолжна соответствовать маске подсети вашего интерфейса.

Пробег:

/sbin/ifconfig eth0

Вы указали маску подсети как 255.255.255.0, это, скорее всего, неправильно. Измените ваш, dhcpd.confчтобы соответствовать вашему интерфейсу.

Интерфейс, на котором прослушивает сервер DHCP, должен иметь статический IP-адрес той же подсети, которую вы используете в своей конфигурации DHCP.

Рахул Патил
источник
ifconfig сообщает маску сети как 255.255.255.0, что соответствует настройке NETMASK = 255.255.255.0, которую я вставил в ifcfg-eth0.
dafydd
какой у вас IP сервера и роутера, после выхода/sbin/route -n
Rahul Patil
Я обновил основной вопрос информацией.
dafydd
@dafydd Теперь все работает нормально, или вы столкнулись с любой проблемой
Рахул Патил