I believe your issue stems from defining classes within subnets. Classes
twice. The server is only going to retain the last one of that name.
if option pxe-system-type = 00:06 or option pxe-system-type = 00:07 or option pxe-system-type = 00:09 {
> Hi all,
>
> Since my colleague and I are getting frustrated in getting the solution
> for this weird issue, I'm checking in with the community. The goal is
> to service two different interfaces/subnets with their own
> configuration. I really hope someone can shed some light on this and
> help us figure this out. I hope I provided enough information below.
>
> == Situation:
> - 1 CentOS7 VM (one VMWare)
> -- dhcpd installed
> # rpm -qa |grep -i dhcp
> dhcp-4.2.5-68.el7.centos.1.x86_64
> dhcp-common-4.2.5-68.el7.centos.1.x86_64
> dhcp-libs-4.2.5-68.el7.centos.1.x86_64
>
> -- Two nics:
> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
> group default qlen 1000
> link/ether 00:50:56:b1:36:1f brd ff:ff:ff:ff:ff:ff
> inet 10.38.5.110/24 brd 10.38.5.255 scope global noprefixroute eth0
> valid_lft forever preferred_lft forever
> inet6 fe80::250:56ff:feb1:361f/64 scope link
> valid_lft forever preferred_lft forever
>
> 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
> group default qlen 1000
> link/ether 00:50:56:b1:76:24 brd ff:ff:ff:ff:ff:ff
> inet 10.0.103.110/24 brd 10.0.103.255 scope global noprefixroute
> eth1
> valid_lft forever preferred_lft forever
> inet6 fe80::250:56ff:feb1:7624/64 scope link
> valid_lft forever preferred_lft forever
>
> -- DHCPd config:
> # cat /etc/dhcp/dhcpd.conf
>
> ddns-update-style none;
>
> allow booting;
> allow bootp;
>
> ignore client-updates;
>
>
> set vendorclass = option vendor-class-identifier;
>
> option pxe-system-type code 93 = unsigned integer 16;
>
> subnet 10.38.5.0 netmask 255.255.255.0 {
> option routers 10.38.5.1;
> option domain-name-servers 10.38.5.200, 10.38.5.205;
> option subnet-mask 255.255.255.0;
> range dynamic-bootp 10.38.5.111 10.38.5.125;
> default-lease-time 3600;
> max-lease-time 7200;
> next-server 10.38.5.110;
> class "pxeclients" {
> match if substring (option vendor-class-identifier, 0,
> 9) = "PXEClient";
> if option pxe-system-type = 00:06 or option pxe-system-
> type = 00:07 or option pxe-system-type = 00:09 {
> filename "ipxe.efi";
> } else {
> filename "esxi65u2/pxelinux.0";
> }
> }
> }
>
> subnet 10.0.103.0 netmask 255.255.255.0 {
> option routers 10.0.103.1;
> option domain-name-servers 10.0.103.200, 10.0.103.205;
> option subnet-mask 255.255.255.0;
> range dynamic-bootp 10.0.103.111 10.0.103.125;
> default-lease-time 3600;
> max-lease-time 7200;
> next-server 10.0.103.110;
> class "pxeclients" {
> match if substring (option vendor-class-identifier, 0,
> 9) = "PXEClient";
> if option pxe-system-type = 00:06 or option pxe-system-
> type = 00:07 or option pxe-system-type = 00:09 {
> filename "ipxe.efi";
> } else {
> filename "esxi65u2/pxelinux.0";
> }
> }
> }
>
>
> == Expected result:
> Hosts running PXE/requesting IP in subnet on eth0 get an IP from
> the 10.38.5.x subnet, and hosts running PXE/requesting IP in subnet on
> eth1 get IP from the 10.0.103.x subnet
>
> == Actual result:
> Hosts requesting IP on eth0 do get IP successfully from the 10.38.5.x
> pool. However, hosts requesting IP on eth1 don't get (correctly) IP.
>
>
> == Debug info
> When running dhcpd with one of the other pool active, it works for that
> specific subnet. However, when both pools active, it turns out the
> wrong "Server-IP" is given on reply's on eth1:
>
> ********* OK (@eth0):
> 13:40:54.919721 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none],
> proto UDP (17), length 328)
> 10.38.5.110.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 300,
> xid 0x9b459539, Flags [Broadcast]
> Your-IP 10.38.5.111
> Server-IP 10.38.5.110
> Client-Ethernet-Address 48:df:37:64:cd:a0
> file "ipxe.efi"[|bootp]
>
> ********* FAIL (@eth1):
> 13:45:46.296813 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none],
> proto UDP (17), length 328)
> 10.0.103.110.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length
> 300, xid 0xc7e7af3c, Flags [Broadcast]
> Your-IP 10.0.103.113
> Server-IP 10.38.5.110
> Client-Ethernet-Address 48:df:37:64:cd:a0
> file "ipxe.efi"[|bootp]
>
> ^--- Server-IP should be 10.0.103.110 instead of 10.38.5.110 on eth1
>
> ********* OK (@eth1, when subnet 10.38.5.0/24 has been removed from the
> config):
> 13:56:18.250993 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none],
> proto UDP (17), length 328)
> 10.0.103.110.67 > 10.0.103.111.68: BOOTP/DHCP, Reply, length 300,
> xid 0xf5d07466, secs 18, Flags [none]
> Your-IP 10.0.103.111
> Server-IP 10.0.103.110
> Client-Ethernet-Address 48:df:37:64:cd:a0
> file "ipxe.efi"[|bootp]
>
>
> Meanwhile we tried almost every option dhcp-server-identifier / server-
> identifier combination, but non work. Server starts without errors and
> is responding to requests on the right interfaces:
>
> Dec 20 14:09:27 mydhcpserver systemd: Starting DHCPv4 Server Daemon...
> Dec 20 14:09:27 mydhcpserver dhcpd: Internet Systems Consortium DHCP
> Server 4.2.5
> Dec 20 14:09:27 mydhcpserver dhcpd: Copyright 2004-2013 Internet
> Systems Consortium.
> Dec 20 14:09:27 mydhcpserver dhcpd: All rights reserved.
> Dec 20 14:09:27 mydhcpserver dhcpd: For info, please visit
https://www.
> isc.org/software/dhcp/
> Dec 20 14:09:27 mydhcpserver dhcpd: Not searching LDAP since ldap-
> server, ldap-port and ldap-base-dn were not specified in the config
> file
> Dec 20 14:09:27 mydhcpserver dhcpd: Wrote 0 class decls to leases file.
> Dec 20 14:09:27 mydhcpserver dhcpd: Wrote 3 leases to leases file.
> Dec 20 14:09:27 mydhcpserver dhcpd: Listening on
> LPF/eth1/00:50:56:b1:76:24/eth1
> Dec 20 14:09:27 mydhcpserver dhcpd: Sending
> on LPF/eth1/00:50:56:b1:76:24/eth1
> Dec 20 14:09:27 mydhcpserver dhcpd: Listening on
> LPF/eth0/00:50:56:b1:36:1f/eth0
> Dec 20 14:09:27 mydhcpserver dhcpd: Sending
> on LPF/eth0/00:50:56:b1:36:1f/eth0
> Dec 20 14:09:27 mydhcpserver dhcpd: Sending
> on Socket/fallback/fallback-net
> Dec 20 14:09:27 mydhcpserver systemd: Started DHCPv4 Server Daemon.
> Dec 20 14:09:49 mydhcpserver dhcpd: DHCPDISCOVER from 48:df:37:64:cd:a0
> via eth1
> Dec 20 14:09:50 mydhcpserver dhcpd: DHCPOFFER on 10.0.103.113 to
> 48:df:37:64:cd:a0 via eth1
> Dec 20 14:09:52 mydhcpserver dhcpd: DHCPREQUEST for 10.0.103.113
> (10.0.103.110) from 48:df:37:64:cd:a0 via eth1
> Dec 20 14:09:52 mydhcpserver dhcpd: DHCPACK on 10.0.103.113 to
> 48:df:37:64:cd:a0 via eth1
> Dec 20 14:09:52 mydhcpserver dhcpd: DHCPREQUEST for 10.0.103.113
> (10.0.103.110) from 48:df:37:64:cd:a0 via eth1
> Dec 20 14:09:52 mydhcpserver dhcpd: DHCPACK on 10.0.103.113 to
> 48:df:37:64:cd:a0 via eth1
> (SNIP)
>
> Thanks for anyones time.
>
> Kind regards,
> Onno.
> _______________________________________________
> dhcp-users mailing list
>
[hidden email]
>
https://lists.isc.org/mailman/listinfo/dhcp-users