HELIOS DHCP server is now part of HELIOS Base. This technology was in the past part of PCShare. It is tested with Mac, Windows, Apple iPhone and many other DHCP/bootp compatible clients.
Each client on the network needs a unique IP address, and there are three ways to obtain this address:
Static configuration in “/etc/hosts” and “/etc/ethers” on the HELIOS DHCP server
Static configuration in “/etc/bootptab” on the HELIOS DHCP server
Dynamic configuration on the HELIOS DHCP server
The DHCP
tab in the Server Settings
menu is used to configure the HELIOS DHCP server. The DHCP
server allocates IP addresses dynamically, i.e. automatically.
This avoids configuring each client individually with a manually
assigned IP address. You need to configure a DHCP server
if you want to automatically allocate static or dynamic IP addresses.
Information that the HELIOS DHCP server provides for clients:
IP address
Subnet mask
Gateway (Router) address, (if configured – see Fig. 12.1)
DNS server address (if configured) in “/etc/resolv.conf”
Domain name
Domain search names
LDAP server URL
Server address
Log server address
WINS (NetBIOS name server) preference nameserver
(see HELIOS PCShare manual)
NetBIOS preference scopeid
(see HELIOS PCShare manual)
The DHCP
tab shows details on the interface name and
address, the subnet mask, the gateway to be used by a
DHCP client, etc. (Fig. 12.1).
First choose Primary
from the DHCP Server
pull-down menu. Then assign a range of IP addresses to be set aside
for dynamic allocation. To do this click the Add...
button
and fill in the IP address range.
You can assign several ranges if needed, but make sure they do not overlap. You may also choose another host interface and assign a range on that, too. The range you specify is checked for plausibility, and if the range spans the host interface itself, it will be split automatically into two ranges.
In “HELIOSDIR/var/conf/ethers.pcs” the server stores the configuration and for each client the workstation name, the Ethernet address, and the date of usage in order to assign the same IP address on the next DHCP request.
If your network has more than one HELIOS server, you may optionally configure a backup DHCP server, to guarantee network availability if the main DHCP server is down for any reason. The secondary DHCP server automatically adopts the configuration file “ethers.pcs” from the primary DHCP server. In case the primary DHCP server is down for more than 20 seconds, the secondary DHCP server assumes the DHCP service. As soon as the primary DHCP server is available again, it takes over DHCP service (within 10 minutes).
Start HELIOS Admin and connect to the host you wish to configure as secondary DHCP server. This is because the secondary DHCP server configuration file must be stored on the secondary host and not on the primary.
Choose Secondary
from the DHCP Server
pull-down menu and enter the name of the primary DHCP server
in the Primary Server
field.
Fig. 12.2 shows the secondary DHCP server “blade” configured as a backup for the primary DHCP server “ankh”.
The secondary DHCP server will automatically inherit the ranges and already assigned addresses from “ethers.pcs”. However, preferences, e.g. gateway (see 19.11 “DHCP server and WINS preference keys”) must be set manually for the secondary DHCP server.
Select a host interface and choose Disabled
from the
DHCP Server
pull-down menu to disable the servicing
of client boot requests on the specified interface. It is recommended
to do this if your DHCP server has more than one interface,
and one of them should not be used.
If your network has two or more hosts that are also DHCP server and use NIS, we recommend that you disable servicing of boot requests on the interfaces of all other hosts. Otherwise, all hosts will answer boot requests for clients which are configured statically in “/var/yp/hosts” and “/var/yp/ethers” (or equivalent).
See also 12.3 “Configuring IP address and host name for HELIOS clients”.
This feature requires a DNS server with at least bind version 8 and on the DHCP server a bind 8 compatible DNS client installation, and the “nsupdate” (or similar) application. Most OS vendors provide a bind of version 8 or newer with their current OS implementation. Check with your hardware/operating system vendor for OS requirements and availability of bind 8.
With the above requirements met, DHCP supports dynamic DNS update according to RFC 2136, and secure DNS according to RFC 2137.
Bind 8 prior to 8.2 includes support for dynamic DNS as specified in RFC 2136 but does currently not include the authentication mechanism described in RFC 2137. As a result, any update requests received from allowed hosts will be accepted.
A DHCP TCP/IP address range can be specified in the DHCP
tab in the HELIOS Admin Server Settings
dialog
(Fig. 12.3). The DHCP clients will
receive this TCP/IP configuration including IP address,
subnet mask, router, WINS and DNS server address. This
enables the client to be a fully configured TCP/IP citizen,
to connect to the server and use other TCP/IP services.
A ping on the DHCP client shows that it is alive
(e.g. ping 172.16.0.123
). A DNS
lookup (e.g. ping mac-mike.helios.de
) will only
work if the client TCP/IP address has an entry in the DNS
server configuration. The DHCP server can automatically
update the DNS server with the host names of DHCP clients.
The DNS configuration is dynamically updated every time
the DHCP server provides its configuration to a client
(e.g. Mac or Windows clients).
It is required to specify the DNS domain in which the DHCP
name should be configured (e.g. “dyn.helios.de”). The
DHCP client name will be used for DNS configuration. A
DNS reverse lookup would be e.g.: mac-mike.dyn.helios.de
.
To avoid a simple DHCP client from overwriting your DNS configuration by setting the client workstation name e.g. to “ftp”, which means it will update the DNS setting of “ftp.helios.de” to the client IP address, we recommend to specify a unique domain for dynamic DNS clients. In our example we configure the dynamic DNS update name to “dyn.helios.de” which would register the client as “mac-mike.dyn.helios.de”.
The DNS server can run on the same machine as HELIOS, or on a different server on the network. By default, the DNS server will deny all remote DNS updates for security reasons. It is required to allow the DNS server to accept remote updates which are initiated by the HELIOS DHCP server. Using a UNIX based DNS server, the “/etc/named.conf” configuration file needs an entry (see below) to allow the DHCP server to update DNS entries. Provided our HELIOS DHCP server has the IP address “172.16.0.1” the additional “named.conf” configuration would be:
zone "dyn.helios.de" { type master; file "heliosdyn.data"; allow-update { localhost; 172.16.0.1; }; };
Please consult your DNS administrator for help on the DNS configuration.
On Windows and Mac clients the DHCP request contains the workstation name, which is used to register the DNS workstation name, e.g. “mac-mike” will be registered as “mac-mike.dyn.helios.de”.
On Mac OS X the computer name is configured in the
Computer Name
field, in the system preferences
“Sharing” section (Fig. 12.4). On Mac OS 9
workstations specify the computer name in the File Sharing
control panel in the Computer Name
field.
On Windows computers the workstation name is configured in “System Properties > Computer name” (Fig. 12.5).
If two DHCP clients are using the same name, only the last DNS entry will be valid. There is no warning for duplicate names. To allow successful dynamic DNS updates the workstation name should only contain digits 0-9 and ASCII characters. Special characters like umlauts, spaces, underlines, etc. may not work correctly.
The HELIOS DHCP configuration file
“ethers.pcs” will contain a list of the
assigned MAC address and TCP/IP address, including the
workstation names, e.g.: 0:3:93:da:44:8a 172.16.3.161-ibook Fri Dec 18 04:00:47
.
When using a primary and secondary HELIOS DHCP server, make sure that the bind requirements for dynamic DNS, which have been described before in 12.2.1 “Dynamic DNS update”, are also available on the secondary DHCP server. Otherwise it will not be able to update dynamic DNS.
In TCP/IP networks it is essential to have a unique IP address for each TCP/IP node on the network. Thus each HELIOS client needs a unique address. If the network is connected externally to the internet, each IP address must be unique worldwide too, and must be assigned by the appropriate regulatory authority.
Furthermore, in the case of Ethernet, each network card has a hardware address which must be unique for each local network segment. This is taken care of automatically, usually by the network card manufacturer.
It is common to assign each TCP/IP node a name (the name is easier to remember than the IP address). Information on host name, IP address and Ethernet address of each service is typically stored in the following UNIX system files.
“/etc/ethers” (or the equivalent NIS or the “bootptab” file) specifies the network hardware address and host name (or IP address)
“/etc/hosts” (or the equivalent NIS or domain name resolver) specifies the IP address and host name
If you modify entries in the files “ethers” or “bootptab”
manually, you must run the command srvutil reconf dhcpsrv
.
Otherwise the changes will not be recognized by the server!
Each client in the HELIOS network needs a unique IP address, and there are three ways – apart from local configuration – that it can get this:
Client IP addresses are allocated by manually editing the appropriate UNIX system files (“/etc/ethers” and “/etc/hosts” or their NIS equivalent). See your UNIX documentation for details.
Client IP addresses are allocated by manually editing the appropriate UNIX system files (“/etc/bootptab” and “/etc/hosts” or their NIS equivalent). See your UNIX documentation for details.
Client IP addresses are allocated by “dhcpsrv” and stored in “HELIOSDIR/var/conf/ethers.pcs” on the host. This method, called dynamic address allocation, is less work for the system administrator, especially in large networks.
All methods require that you configure a HELIOS DHCP
server on your HELIOS host. Configuration is best done in
the DHCP
tab in HELIOS Admin Server Settings
menu.
It is also possible to use a combination of all three methods on the same network. The HELIOS client sends a DHCP request to hosts on the same network segment to get an IP address. If a HELIOS server receives this DHCP request, and if it is configured as DHCP server, it first checks the appropriate UNIX system files for the client’s IP address, and then looks for an entry in “var/conf/ethers.pcs”. An address is assigned automatically if its Ethernet address is not already listed in either of these two places. The assigned address is then appended as a new entry in the “ethers.pcs” file to make sure that the client gets the same address in the future, too.
Make sure not to use overlapping IP ranges, e.g. when using a combination of all three methods because this would lead to severe IP address allocation malfunctions!
“ethers.pcs” documents the relationship between network hardware address and IP address for dynamically assigned client IP address, together with the date of last change for each entry. It is automatically updated by the “dhcpsrv” server – whenever a client connects to the server for the first time, it is assigned a new unique IP address if it does not already have one in this file (or by methods a) or b) in “/etc/hosts”, “/etc/ethers” and “/etc/bootptab”).
“ethers.pcs” also contains information on a range of IP addresses which have been set aside by the system administrator for dynamic allocation.
Furthermore, a mechanism is provided to age entries which have not been used for a specified period of time, i.e. to delete them from this file automatically. For example, aging will occur if the client is no longer used for server access or if you initially allow the client’s IP address to be assigned dynamically, and then add an entry for the client to the standard host system files. For more details, see the preference dynage in 19.11 “DHCP server and WINS preference keys”.
If you delete client entries from “ethers.pcs” manually, dynamically configured clients will be assigned a new IP address automatically, but it may be different from the one before.
“ethers.pcs” for a primary DHCP server:
Primary: 172.16.3.1-172.16.3.254 # #MAC addr. internet addr. last change date # 2:60:8c:2:ad:6c 172.16.3.36 Sat Dec 19 18:20:51 0:0:6b:81:39:12 172.16.3.37 Fri Dec 18 15:00:33 9:0:7:ff:ff:ff 173.16.3.43-pc Fri Dec 18 15:00:43 . .
A secondary DHCP server entry in “ethers.pcs” could look like:
Secondary: 172.16.0.1 Range: 172.16.3.1-172.16.3.254 ...
In this example, one IP address range has been set aside by the system administrator for dynamic allocation. If the HELIOS host has more than one network interface, the interfaces to be used for servicing client boot requests are determined automatically from the specified range(s).
One additional piece of information must also be configured if you want to use dynamic allocation:
You should list all gateways (if there is more than one) on your network with the gateway preference or just use HELIOS Admin to configure the gateways.
Any HELIOS base product (EtherShare, PCShare or WebShare) allows setting up a secondary DHCP server. It is permitted to use a secondary DHCP server with the same amount of users as licensed for the primary DHCP server. For example, a 5 user base product can be a secondary DHCP server for a 100 user main DHCP server.
The HELIOS DHCP server service port is 2027.
It can be used on a primary HELIOS DHCP server to show info about the current configuration and also to update the “ethers.pcs” file on-the-fly. A secondary DHCP server will learn changed information from the primary DHCP server as described in 12.1 “HELIOS DHCP server” above.
Issue the command socket localhost 2027
, type
help
for the command overview, help [cmd]
to get more help about a specific command, and quit
to leave.
By default, the DHCP server service port can only be reached from localhost. See RemoteAccess in 19.11 “DHCP server and WINS preference keys”.
Show global status and configuration information.
-> status status: Thu May 7 17:09:52 2009, uptime: 5 hours 9 minutes. 'eth0', 'lo', 2 interfaces primary server [Preference] DNS: (not set) +[resolve.conf] eth0: 172.16.0.1 +[resolve.conf] lo: 172.16.0.1 [Preference] gateway: (not set) [Preference] scope ID: (not set) [ethers.pcs] file modification: Thu May 7 16:53:05 2009 [ethers.pcs] last change: Thu May 7 17:06:04 2009
The WINS server preference scopeid
is used from the
PCShare server. For details see the HELIOS PCShare manual.
Add a free IP address for
the passed combination of hardware address <macaddr>
and network address <netaddr>
.
IP address allocation follows the same rules as a DHCP client IP address allocation.
$ /usr/local/helios/bin/socket localhost 2027 dhcpsrv 1.0.0 , started: Thu Oct 11 10:04:42 2007 -> addether 22:22:22:22:22:22 172.16.3.0 172.16.3.128 has been added.
Deletes an entry for passed IP
address <addr>
.
-> delete 172.16.3.254
Sets the <hostname> for IP address <addr> so that the client that receives the IP address <addr> during bootup will also receive a resolvable host name. The IP address must already be available to the DHCP master process, e.g. either listed in “HELIOSDIR/var/conf/ethers.pcs” or added before, by using the “addether” command. The host name must only contain digits 0…9, and characters a…z, A…Z.
setname ankh 172.16.3.128
Shows info for all detected interfaces. with
information on their name
, addr
(IP address),
netmask
, broadcast
(IP address),
network
(IP address), and status
.
-> if -- name --|...|-- broadcast --|- network --|-- status -- 2:eth0 ... 172.16.3.255 172.16.0.0 IFS_primary 1:lo ... 0.0.0.0 127.0.0.0 IFS_disabled
Shows info for all defined ranges and their assigned IP addresses.
-> ranges primary: detected 1 range range 'eth0' 172.16.2.1 -> 172.16.3.254 172.16.3.250 00:00:c0:ba:d8:28 pc-krabappel 172.16.3.182 00:68:fa:a5:ff:19 pc-skinner 172.16.3.235 00:19:c5:7b:de:ad mac-chalmers 172.16.3.228 00:05:02:9d:7h:g3 mac-hoover 4 entries
Writes all configuration information immediately to the configuration file “ethers.pcs”.
-> flush last update: Thu Oct 11 11:22:02 2007 updated to: Thu Oct 11 11:35:46 2007.
If the DHCP server is configured as secondary (backup) DHCP server, this command immediately updates the configuration information from the primary DHCP server.
The HELIOS DHCP server registers its DHCP service via mDNS (“Bonjour”) on each activated DHCP interface. If a duplicate DHCP server is detected that is also registered via mDNS, the “detecting” HELIOS DHCP server will become inactive.