Why use dgipserv?
dgipserv is a utility which acts as a single-use BOOTP or TFTP server for configuring Digi EtherLite units. It is easy to use, and can be configured via simple command line arguments. The client of this server is the EtherLite module itself.
It is ideal for those who do not wish to setup full time BOOTP or DHCP services, but instead prefer to manually serve the IP address when the unit is turned on, or store the IP address in the unit''''s non-volatile EEPROM. Other uses include resetting an Etherlite, configuring the authorized host list, or upgrading firmware on the unit.
How does dgipserv work?
Basically, the EtherLite will issue a bootp request only when it is powered on or reset via the DgIpServ utility or EtherLite Boot Console
. The "on" LED of an EtherLite module lacking an IP address will blink rapidly. Once the module obtains an IP address, the "on" LED will be steadily lit.
Certain conditions affect the way the EtherLite issues a request:
- On power up or reset, the EtherLite issues a bootp request. If this request is serviced and a response delivered to the module, the module will use the IP address in the response.
- If no response is received within four seconds but the module already has a stored IP address, it will assume that IP address (EtherLite(R) modules do not have a stored IP address when shipped from the factory).
- If no response is received within four seconds and the module does not have a stored IP address, additional BOOTP requests will be issued until one is answered. Four requests will be issued during the first minute, and one request per minute thereafter.
- A module which already has a stored IP request will accept a response to its one BOOTP request only if the response is tagged with the "store IP address" flag. Otherwise it will be ignored.
- Once an EtherLite module has been served its IP address, it will attempt to download a new firmware image via TFTP to be stored in its EEPROM and used. If unsuccessful, it will use the firmware image already in its EEPROM.
- dgipserv will not work on a system in which a BOOTP server is already running. Also, dgipserv will not be able to upgrade firmware on an EtherLite from a system which already has TFTP running.
What are the commands to use dgipserv?
Syntax: dgipserv [flags] hw_addr ip_addr
-reset Soft resets the module (eliminates the need to cycle power on the unit)
-store Store the IP address in the module''''s EEPROM
-broadcast Store (via bootp broadcast) the IP address in the module''''s EEPROM
-erase Erase a stored IP address from the module''''s EEPROM
-gateway Set the gateway IP address for the module (combine with -store to save)
-netmask Set the module''''s netmask (combine with -store to save)
-host auth_ip [auth_netmask] Add an IP address or list of up to eight IP addresses to the module''''s authorized host list
-firmware filename Upload a firmware image to the EtherLite module once the IP address has been served.
- NOTE: Setting the gateway and netmask is optional. EtherLites default to using a class B netmask.
- All flags can be abbreviated to a single letter (-r, -s, -e, etc.), but they can not be combined (e.g. -rs).
- hw_addr is the hexadecimal (e.g. 00A0E7000363) hardware (MAC) address of the EtherLite module.
- ip_addr is the dotted decimal (e.g., 126.96.36.199) IP address to be served.
- -broadcast, -erase, and -store flags must be used in combination with the -reset flag for them to work.
Serving IP address 188.8.131.52 on an EtherLite with hardware address 00-A0-E7-00-03-63:
Storing the same IP address on the same Etherlite:
- dgipserv 00A0E7000363 184.108.40.206
Storing an address that is not a valid address on your network:
- dgipserv -s 00A0E7000363 220.127.116.11
Erasing a stored IP address:
- dgipserv -b 00A0E7000363 10.45.100.1
Serving an IP address and restricting the EtherLite to two authorized hosts with IP addresses 18.104.22.168 and 22.214.171.124:
- dgipserv -e 00A0E7000363 126.96.36.199
Serving an IP address and restricting the EtherLite to an authorized network with IP address 188.8.131.52 and using a netmask of 255.255.255.0:
- dgipserv -h 184.108.40.206 -h 220.127.116.11 00A0E7000363 18.104.22.168
In other words, connections from hosts with addresses of the form 192.9.200.* will be allowed, all others will be rejected.
- dgipserv -h 22.214.171.124 255.255.255.0 00A0E7000363 126.96.36.199
Reset an EtherLite, and then serve and store the IP address given:
Upgrade an EtherLite with firmware file el16.prm, after resetting and serving it an IP address:
- dgipserv -r -s 00A0E7000363 188.8.131.52
- dgipserv -r -f el16.prm 00A0E7000363 184.108.40.206
Are there any EtherLite issues I should be aware of?
- If change the configuration of your EtherLite, make sure you change driver accordingly.
- The authorized-host table can not be stored. On power-up, an EtherLite with a stored IP address will accept connections from all hosts.
- On machines with more than one Ethernet interface, dgipserv may tell the module the wrong IP address to use when retrieving its firmware. This is a known bug.
- dgipserv -reset will hang if the module is already awaiting an IP address. This too is a bug.
dgipserv can deliver IP addresses to most (including non-Digi) Ethernet devices and work through most gateways. dgipserv implements only enough TFTP to upload firmware to EtherLite modules and nothing more.