Dhcp Server Application For Windows 10 DHCP, or Dynamic Host Control Protocol, is the service used to hand out IP addresses and other network settings by network appliances and servers. The DHCP Server built into macOS Server 5.2 on Sierra is similar to the DHCP service that was included in Server 10.2 from the good ‘ole Panther days. Aug 11, 2010 The DHCP search tool then displays the IP address of the DHCP server and the configuration information offered, including client IP address, netmask, and gateway. This is also useful for troubleshooting client-based DHCP problems. Since DHCP Find is a portable application, you can launch it easily on a client that has problems receiving TCP/IP.
Use the MAC address option if, on a given routing switch, it does not matter to the DHCP server which VLAN is the source of a client request (that is, use the MAC address option if the IP addressing policies supported by the target DHCP server do not distinguish between client requests from ports in different VLANs in the same routing switch.). The mail server comes with a lot of newer improvements over the old Server.app Mail server that makes it a lot nicer and more secure to use: up-to-date versions, really fast solr mail searching, rspamd, better spam/ham training workflow, DKIM, postfix in chroot jail, and a lot more.
DHCP, or Dynamic Host Control Protocol, is the service used to hand out IP addresses and other network settings by network appliances and servers. The DHCP Server built into macOS Server 5.2 on Sierra is similar to the DHCP service that was included in Server 10.2 from the good ‘ole Panther days. It’s pretty simple to use and transparent, just as DHCP services should be. To install the service, open the Server app and then click on the Show button beside Advanced in the server sidebar. Then click on DHCP. At the DHCP screen, you’ll see two tabs: Settings, used for managing the service and Clients, used to see leases in use by computers that obtain IP address information from the server. You’ll also see an ON and OFF switch, but we’re going to configure our scopes, or Networks as they appear in the Server app, before we enable the service. To configure a scope, double-click on the first entry in the Networks list. Each scope, or Network, will have the following options:- Name: A name for the scope, used only on the server to keep track of things.
- Lease Duration: Select an hour, a day, a week or 30 days. This is how long a lease that is provided to a client is valid before the lease expires and the client must find a new lease, either from the server you’re configuring or a different host.
- Network Interface: The network interface you’d like to share IPs over. Keep in mind that you can tag multiple VLANs on a NIC, assign each an interface in OS X and therefore provide different scopes for different VLANs with the same physical computer and NIC.
- Starting IP Address: The first IP address used. For example, if you configure a scope to go from 192.168.210.200 to 192.168.210.250 you would have 50 useable IP addresses.
- Ending IP Address: The last IP address used in a scope.
- Subnet Mask: The subnet mask used for the client configuration. This setting determines the size of the network.
- Router: The default gateway, or router for the network. Often a .1 address for the subnet used in the Starting and Ending IP address fields. Note that while in DHCP you don’t actually have to use a gateway, OS X Server does force you to do so or you cannot save changes to each scope.
- DNS: Use the Edit button for DNS to bring up a screen that allows you to configure the DNS settings provided as part of each DHCP scope you create, taking note that by default you will be handing out a server of 0.0.0.0 if you don’t configure this setting.
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE plist PUBLIC '-//Apple//DTD PLIST 1.0//EN' 'http://www.apple.com/DTDs/PropertyList-1.0.dtd'> <plist version='1.0'> <dict> <key>NetBoot</key> <dict/> <key>Subnets</key> <array> <dict> <key>allocate</key> <true/> <key>dhcp_domain_name</key> <string>no-dns-available.example.com</string> <key>dhcp_domain_name_server</key> <array> <string>0.0.0.0</string> </array> <key>dhcp_domain_search</key> <array/> <key>dhcp_router</key> <string>192.168.210.1</string> <key>lease_max</key> <integer>3600</integer> <key>name</key> <string>192.168.210 Wi-Fi</string> <key>net_address</key> <string>192.168.210.0</string> <key>net_mask</key> <string>255.255.255.0</string> <key>net_range</key> <array> <string>192.168.210.200</string> <string>192.168.210.253</string> </array> <key>selected_port_name</key> <string>en0</string> <key>uuid</key> <string>B03BAE3C-AB79-4108-9E5E-F0ABAF32179E</string> </dict> </array> <key>allow</key> <array/> <key>bootp_enabled</key> <false/> <key>deny</key> <array/> <key>detect_other_dhcp_server</key> <false/> <key>dhcp_enabled</key> <false/> <key>old_netboot_enabled</key> <false/> <key>relay_enabled</key> <false/> <key>relay_ip_list</key> <array/> </dict> </plist> Settings from this file include: - dhcp_enabled – Used to enable dhcp for each network interface. Replace the <false/> immediately below with <array> <string>en0</string> </array>. For additional entries, duplice the string line and enter each from ifconfig that you’d like to use dhcp on.
- bootp_enabled – This can be left as Disabled or set to an array of the adapters that should be enabled if you wish to use the bootp protocol in addition to dhcp. Note that the server can do both bootp and dhcp simultaneously.
- allocate – Use the allocate key for each subnet in the Subnets array to enable each subnet once the service is enabled.
- Subnets – Use this array to create additional scopes or subnets that you will be serving up DHCP for. To do so, copy the entry in the array and paste it immediately below the existing entry. The entry is a dictionary so copy all of the data between and including the <dict> and </dict> immediately after the <array> entry for the subnet itself.
- lease_max and lease_min – Set these integers to the time for a client to retain its dhcp lease
- name – If there are multiple subnet entries, this should be unique and reference a friendly name for the subnet itself.
- net_address – The first octets of the subnet followed by a 0. For example, assuming a /24 and 172.16.25 as the first three octets the entry would be 172.16.25.0.
- net_mask – The subnet mask clients should have
- net_range – The first entry should have the first IP in the range and the last should have the last IP in the range. For example, in the following example the addressing is 172.16.25.2 to 172.16.25.253.
- dhcp_domain_name_server – There should be a string for each DNS server supplied by dhcp in this array
- dhcp_domain_search – Each domain in the domain search field should be suppled in a string within this array, if one is needed. If not, feel free to delete the key and the array if this isn’t needed.
- dhcp_router – This entry should contain the router or default gateway used for clients on the subnet, if there is one. If not, you can delete the key and following string entries.
serveradmin settings dhcp The output indicates that dhcp:static_maps = _empty_array dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:WINS_secondary_server = ' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:selected_port_name = 'en0' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:dhcp_router = '192.168.210.1' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:dhcp_domain_name_server:_array_index:0 = '192.168.210.2' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:net_mask = '255.255.255.0' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:WINS_NBDD_server = ' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:net_range_start = '192.168.210.200' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:lease_max = 3600 dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:dhcp_domain_search:_array_index:0 = 'internal.krypted.lan' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:descriptive_name = '192.168.210 Wi-Fi' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:WINS_primary_server = ' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:net_range_end = '192.168.210.253' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:dhcp_ldap_url = _empty_array dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:WINS_node_type = 'NOT_SET' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:net_address = '192.168.210.0' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:dhcp_enabled = yes dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:dhcp_domain_name = 'internal.krypted.lan' dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:WINS_scope_id = ' dhcp:subnet_defaults:logVerbosity = 'MEDIUM' dhcp:subnet_defaults:WINS_node_type_list:_array_index:0 = 'BROADCAST_B_NODE' dhcp:subnet_defaults:WINS_node_type_list:_array_index:1 = 'HYBRID_H_NODE' dhcp:subnet_defaults:WINS_node_type_list:_array_index:2 = 'NOT_SET' dhcp:subnet_defaults:WINS_node_type_list:_array_index:3 = 'PEER_P_NODE' dhcp:subnet_defaults:WINS_node_type_list:_array_index:4 = 'MIXED_M_NODE' dhcp:subnet_defaults:dhcp_domain_name = 'no-dns-available.example.com' dhcp:subnet_defaults:WINS_node_type = 'NOT_SET' dhcp:subnet_defaults:routers = _empty_dictionary dhcp:subnet_defaults:logVerbosityList:_array_index:0 = 'LOW' dhcp:subnet_defaults:logVerbosityList:_array_index:1 = 'MEDIUM' dhcp:subnet_defaults:logVerbosityList:_array_index:2 = 'HIGH' dhcp:subnet_defaults:dhcp_domain_name_server:_array_index:0 = '192.168.210.201' dhcp:subnet_defaults:selected_port_key = 'en0' dhcp:subnet_defaults:selected_port_key_list:_array_index:0 = 'bridge0' dhcp:subnet_defaults:selected_port_key_list:_array_index:1 = 'en0' dhcp:subnet_defaults:selected_port_key_list:_array_index:2 = 'p2p0' dhcp:subnet_defaults:selected_port_key_list:_array_index:3 = 'en1' dhcp:logging_level = 'MEDIUM' Notice the correlation between the uuid string in /etc/bootp.plist and the arrayid entry for each subnet/network/scope (too many terms referring to the same thing, ahhhh!). Using the serveradmin command you can configure a lot more than you can configure in the Server app gui. For example, on a dedicated DHCP server, you could increase logging level to HIGH (as root/with sudo of course): serveradmin settings dhcp:logging_level = 'MEDIUM' You can also change settings within a scope. For example, if you realized that you were already using 192.168.210.200 and 201 for statically assigned IPs elsewhere you can go ahead and ssh into the server and change the first IP in a scope to 202 using the following (assuming the uuid of the domain is the same as in the previous examples): serveradmin settings dhcp:subnets:_array_id:B03BAE3C-AB79-4108-9E5E-F0ABAF32179E:net_range_start = '192.168.210.202' You can also obtain some really helpful information using the fullstatus verb with serveradmin: serveradmin fullstatus dhcp This output includes the number of active leases, path to log file (tailing that file is helpful when troubleshooting issues), static mappings (configured using the command line if needed), etc. dhcp:state = 'RUNNING' dhcp:backendVersion = '10.11' dhcp:timeOfModification = '2016-10-04 04:24:17 +0000' dhcp:numDHCPActiveClients = 0 dhcp:timeOfSnapShot = '2016-10-04 04:24:19 +0000' dhcp:dhcpLeasesArray = _empty_array dhcp:logPaths:systemLog = '/var/log/system.log' dhcp:numConfiguredStaticMaps = 1 dhcp:timeServiceStarted = '2016-10-04 04:24:17 +0000' dhcp:setStateVersion = 1 dhcp:numDHCPLeases = 21 dhcp:readWriteSettingsVersion = 1 Once started, configure reservations using the /etc/bootptab file. This file should have a column for the name of a computer, the hardware type (1), the hwaddr (the MAC address) and ipaddr for the desired IP address of each entry: %% # hostname hwtype hwaddr ipaddr bootfile a.krypted.lan 1 00:00:00:aa:bb:cc 192.168.210.230 b.krypted.lan 1 00:00:00:aa:bb:cc 192.168.210.240 You can start and stop the service either using the serveradmin command: Mac Os Dhcp Server
serveradmin stop dhcp serveradmin start dhcp Or using the launchctl: Dhcp Server Appliance
Dhcp Server Application
sudo /bin/launchctl unload -w /System/Library/LaunchDaemons/bootps.plist sudo /bin/launchctl load -w /System/Library/LaunchDaemons/bootps.plist Finally, you can define DHCP options in /etc/bootp.plist. This process isn’t necessarily support, there is no GUI control for options, and options are not as widely used with devices as they once were. However, it’s absolutely an option if needed.Windows Dhcp Server
There comes a point when you ask yourself, ‘there has to be a better way’ (this should be often). This was certainly the case where after a large campus switch out which required many printers to be reconfigure. Part of that reconfiguring was creating new DHCP reservation.
Dhcp Server App Mac Ios
Dhcp Server Application For Windows 10
Unfortunately, if you do not cull the old lease, Windows (rightfully so) informs you there is already a device with that MAC in the reservation database. In someone’s at Microsoft’s infinite wisdom, they neglect to tell you what DHCP scope the device is currently reserved in. So I would begin to trawl each scope I guessed in maybe reserved in based on my knowledge of our current scopes. This would waste many minutes of my time (sometimes without success) which means my customers are getting less of me. No good.
But, I did ask myself, ‘there has to be a better way’…and there is!
Open up a command prompt window on your DHCP server (or a remote powershell session) and input the following:
All you need is the MAC address of the device and input it without ‘-‘ in the MACADDRESS space and you should get something a little like the below:
Another time saver for the time poor SysAdmin
Welcome to the DHCP Server for Windows
A DHCP Server assigns IP addresses to client computers. This is very often used in enterprise networks to reduce configuration efforts. All IP addresses of all computers are stored in a database that resides on a server machine.
This is a very simple and easy to use implementation of a DHCP Server for Windows based systems supporting all Windows operating systems from Windows 98 to Windows 10.
The configuration data as well as the client “database” is kept in an INI file. See description of INI file. The DHCP Server runs instantly without any installation as a service or application. See running the DHCP Server
All older versions of the DHCP Server are free software and can be used and redistributed for both academic and commercial purposes at absolutely no cost. There are no royalties or GNU-like “copyleft” restrictions. There is no requirements such as including copyright messages or logos involved in using the software. The latest software starting with Version 2.6 can be downloaded after a donation is made. The software is provided “as is”, without warranty of any kind. The download link is provided by e-mail to the Paypal-registered e-mail address, to anyone who at least donates 1 EUR or more.
Latest release info:
Dhcp Server Appliance
- V2.9.0.2 July 3, 2021
V2.9.0.2 released 07/03/2021. New in V2.9.0.2: fixed error with respect to TFTP dynamic port ranges.
The download is available after a donation is made.
Dhcp Server App
Further information: Download the latest version or read about the history of older releases.