A DHCP client simulation on linux. It can simulates multiple DHCP clients behind a network device. It can help in testing the DHCP servers or in testing switch/router by loading the device with multiple DHCP clients.
License
saravana815/dhtest
master
Name already in use
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
fix 'struct udphdr' has no member named '...' thanks to #19
c8f1dbb
Git stats
Files
dhtest readme
*************
About the tool
--------------
dhtest - linux dhcp client simulation tool. It can simulate hundreds of dhcp
client from a linux machine. Linux root login is needed because the tool requires
layer2 raw socket for sending and receiving dhcp packets.
Installation
------------
* Download the latest source from github as zip.
Download link - https://github.com/saravana815/dhtest/archive/master.zip
[sargandh@CentOS Desktop]$ unzip dhtest-master.zip
[sargandh@CentOS Desktop]$ cd dhtest-master
[sargandh@CentOS dhtest-master]$ make
gcc -c -o dhtest.o dhtest.c
gcc -c -o functions.o functions.c
gcc dhtest.o functions.o -o dhtest
[sargandh@CentOS dhtest-master]$ ls -lh dhtest
-rwxrwxr-x 1 sargandh sargandh 38K Mar 13 10:47 dhtest
dhtest 1.5 - new 1.5 features supported
-----------------------------------------
* Add option to send DHCP DECLINE packets ('-D' flag)
* Fix potential Segmentation Fault in get_dhinfo() function
* Added dhcp option55 requested parameter list
dhtest 1.4 - till 1.4 features supported
-----------------------------------------
* IP obtaining through DHCP
* Release obtained IP with -r flag
* VLAN
* Broadcast flag support
* DHCP option 50 - Requested IP
* DHCP option 60 - Vendor Class Identifier
* Binding obtained IP for a default timeout of 3600 seconds
* Support of bind timeout with -k flag on command line
* Added DHCP option 51 - Requested lease time from server
* Added DHCP option 12 - Hostname
* Added DHCP option 81 - Fqdn
* Option to send in unicast mode.
* Option to output for nagios.
* Option to change port, patch by Alan Dekok.
* Custom option support - Allows packing of any dhcp option in number/string/hex format
License
---------
Please see the LICENSE file.
Tool usage examples
-------------------
* https://sargandh.wordpress.com/2012/02/23/linux-dhcp-client-simulation-tool/
* custom option examples
dhcp option 82
--------------
[root@CentOS dhtest-1.1]# ./dhtest -m 00:00:00:11:11:11
-c 82,hex,0108476967302f312f30021130303a30303a30303a31313a31313a3131
| || |
| || |Subopt value - 'Gig0/1/0'
| | **************
| Subopt len 8
Opt82 subopt 1
Circuit id
[root@CentOS dhtest-1.1]# ./dhtest -m 00:00:00:11:11:11
-c 82,hex,0108476967302f312f30021130303a30303a30303a31313a31313a3131
| || |
| || |Subopt value - '00:00:00:11:11:11'
| | **************
| Subopt len 17
Opt82 subopt 2
Remote id
dhcp option 60 and 82 (multiple custom options)
-----------------------------------------------
[root@CentOS dhtest-1.1]# ./dhtest -m 00:00:00:11:11:11 -c 60,str,"MSFT 5.0"
-c 82,hex,0108476967302f312f30021130303a30303a30303a31313a31313a3131
* dhcp option55 requested parameter list example
root@ubuntu-16:~/dhtest# ./dhtest -m 00:00:00:11:11:11 -i enp0s3 -l 011C030F060A0B
DHCP discover sent - Client MAC : 00:00:00:11:11:11
DHCP offer received - Offered IP : 10.0.2.16
DHCP request sent - Client MAC : 00:00:00:11:11:11
DHCP ack received - Acquired IP: 10.0.2.16
root@ubuntu-16:~/dhtest#
Tshark output
-------------
Option: (55) Parameter Request List
Length: 7
Parameter Request List Item: (1) Subnet Mask
Parameter Request List Item: (28) Broadcast Address
Parameter Request List Item: (3) Router
Parameter Request List Item: (15) Domain Name
Parameter Request List Item: (6) Domain Name Server
Parameter Request List Item: (10) Impress Server
Parameter Request List Item: (11) Resource Location Server
About
A DHCP client simulation on linux. It can simulates multiple DHCP clients behind a network device. It can help in testing the DHCP servers or in testing switch/router by loading the device with multiple DHCP clients.