Hi,
I've find a nice little freeware product that will do DHCP/DNS. http://sourceforge.net/projects/dhcp-dns-server/
Initially I was just going to use it as a stand-alone DHCP service, but I notice further down the config file there are TFTP options. I'm trying to implement a re-imaging solution and need both DHCP and TFTP capabilities. To save using another product, I was hoping I could just use one for both, however I can't seem to get the TFTP bit working. Am I reading the config file wrong? It seems to have all the options to make TFTP work. Here is my config file:
Have I missed something? Suggestions?
I've find a nice little freeware product that will do DHCP/DNS. http://sourceforge.net/projects/dhcp-dns-server/
Initially I was just going to use it as a stand-alone DHCP service, but I notice further down the config file there are TFTP options. I'm trying to implement a re-imaging solution and need both DHCP and TFTP capabilities. To save using another product, I was hoping I could just use one for both, however I can't seem to get the TFTP bit working. Am I reading the config file wrong? It seems to have all the options to make TFTP work. Here is my config file:
Code:
#This file should be in the same folder where DualServer.exe file is.
#Any entry starting with a punctuation character will be a comment
#You need to remove ' from begining of values and replace with your
#own values below if you need change settings.
[SERVICES]
#Specify the service you want to use
#Default is both services
'DNS
DHCP
[LISTEN-ON]
#Specify the Interfaces you would like Server to listen
#if you have more than one NIC card on your server
#always specify which cards will listen DHCP/DNS requests
#Requests from diffent Interfaces look for matching DHCP ranges.
#Requests from relay agents look for matching range to relay agent IP.
#upto 125 interfaces can be specified.
#Default is all Static interfaces
10.18.46.10
[LOGGING]
#Logging will be done only if run as Service.
#LogLevels can be set as None, Normal or All
#Logging Level has be specified separately for DHCP and DNS
#It is advisable to keep logging to Normal, Normal include errors
#and DHCP Lease renewal messages. Normal is defaul logging also.
'DHCPLogLevel=Normal
'DNSLogLevel=Normal
[DNS-ALLOWED-HOSTS]
#These are permitted hosts for DNS Query.
#Hosts having IP address within these ip ranges
#only will be responded to DNS requests.
#Hosts "queried for" has nothing to do with these ranges.
#32 ranges can be specified.
#DHCP Client ranges are automatically included
#use second example for allowing all hosts
10.18.46.225-10.18.46.240
'1.0.0.1-255.255.255.254
[HOSTS]
#This is where hosts and their
#IPs needs to be specified
#DNS will resolve as per
#entries here, in addition to
#DHCP alotted addresses.
#Bare names automatically
#assume local domain-name.
#hosts here need not be local
#reverse entry is automatic.
#MX and ALIASs needs to
#be given in respected sections
#no alias or wild cards in this section
#No limit to no. of entries here !
'OracleServer.yahoo.com=192.168.0.43
'DNS=192.168.0.1
'cpltcaxd02b=192.168.0.2
'homehost.external.com=187.178.187.178
'strange=192.168.6.11
'soho=192.168.0.111
'www=12.67.4.3
[ALIASES]
#These are alias names
#ALIAS should be bare or local name
#while CNAME can be local or FQDN,
#pointing anywhere in the world
#This server will resolve them
#ensure CNAME in right of
#= and ALIAS is on left
#in form ALIAS=CNAME
#No limit to no. of entries here !
'MyHost=HomeHost
'DBServer=DB2Server.com
'DataServer=OracleServer.external.com
'gmail=gmail.google.com
'DB2ServerVendor=oracle.com
#Make this entry for default host of domain
'workgroup.com=www
'dns1 = dns
'xyz=soho
[WILD-HOSTS]
#These are wild card based hosts for
#name queries only (A type only).
#wild hosts would be matched if none found.
#during normal lookup but before forwarding.
#if queried name matches these wildcards
#specified ip would be returned, but there
#would be no reverse lookup against IPs here.
# * and ? are the only wild characters.
#Be very careful while using wild hosts.
#wild hosts wont be part of zone transfer.
#only upto 32 wild hosts can be specified.
#wild hosts can be used to block some external urls
'*.google.com=64.136.20.120
'www.*.com=127.0.0.1
'*xyz.com*=4.2.2.3
#If you just need "host not found" response,
#simply specify IP as 0.0.0.0
'*.hostnotfound.com=0.0.0.0
[MAIL-SERVERS]
#These are default mail servers for domain
#This section handles MX
#queries. Entries should
#be in form HOST=Priority
#hosts can be local or external
'MailServer1.com=10
'MailServer2.net=20
[DOMAIN-NAME]
#This is local zone/domain for this Server
#Default is workgroup (not authorised) if not specified
#There are two formats for this
#workgroup
#workgroup=10.10.in-addr.arpa
#just workgroup means this is not authorized server
#with default domain name workgroup
#workgroup=10.10.in-addr.arpa means this is authorized server for
#zone workgroup and network 10.10.0.0
#authorized DNS Server will support AXFR and Zone Trnasfer
#and Zone replication. It will also send
#NS records with DNS queries and NS queries will be responded.
'workgroup=168.192.in-addr.arpa
'workgroup
[DNS-SERVERS]
#If DNS Service is enabled
#These servers are used
#as default Forward DNS Servers
#DNS Server here would be overridden by
#servers specified in [CHILD-ZONES] section.
#However If only DHCP service is used,
#these are passed as local DNS Servers,
#unless overridden by DHCP-OPTIONS or client OPTIONS
#Max Number of DNS Servers is 8
#Program auto detects if not specified
'192.168.0.1
'10.10.10.1
[CHILD-ZONES]
#If your main domain has child zones and
#each child zone has its own DNS
#Server(s), DualServer can also be used domain
#name server for all zones as main Domain Name Server.
#The queries would be forwarded to these child
#servers. each child zone need 2 enteries, one
#for name lookup and other for reverse lookup
#limit is 32 entries. Each such entry can
#have upto 2 child DNS Servers, separated
#by comma.
#You can also use entries here as DNS-PROXY
#and forward queries to diffent DNS server.
#based on matching of last part of query.
'zone1.workgroup=192.168.1.1
'1.168.192.in-addr.arpa=192.168.1.1
'zone2.workgroup=192.168.2.1,192.168.2.2
'2.168.192.in-addr.arpa=192.168.2.1,192.168.2.2
[ZONE-REPLICATION]
#You need to specify Primary
#and secondary servers for replication
#to work. You can add some Clients also,
#which may make TCP/AXFR queries.
#make sure that Primary & Secondary
#Server entries are same on both servers
'Primary=192.168.0.1
'Secondary=192.168.0.5
#Alternatively/Additionally You
#can also specify upto 6 clients/servers
#which can make tcp/axfr queries to this server
'AXFRClient=192.168.0.1
'AXFRClient=192.168.0.3
'AXFRClient=192.168.0.4
'AXFRClient=192.168.0.5
'AXFRClient=192.168.0.6
[TIMINGS]
#Lease_Time is Maximum lease time in seconds for DHCP
#Lease_Time is also expiry for other DNS hosts
#Default is 360000 sec (100 hours)
#specify 0 for infinity.
'Lease_Time=360000
#below are zone repl timings
'Refresh=3600
'Retry=10
'Expire=360000
'Minimum=20
#Below are DNS caching timings, You should never specify them
#under Production Environment as this may make cache entries stale.
#DNS Entries should expire as specified by their auth DNS Servers.
#However you can override for testing purposes only
'MinCacheTime=100
'MaxCacheTime=1000
[HTTP-INTERFACE]
#This is http inerface for viewing lease status,
#Default is 127.0.0.1, port 6789
#You can change it here to any network interface.
#Only this server's alotted dynamic leases and static leases are displayed
#Replicated dynamic leases (from Replicated server) are not diplayed.
'192.168.21.1:6789
#DHCP Sections
#Sections below are other DHCP Sections. Clients can be alotted addresses in
#two ways, dynamically from DHCP Range or statically. For static addresses,
#client section needs to be created for each static client
#against its MAC Address. BOOTP clients are allways static.
#The DHCP Ranges are grouped into [DHCP-RANGE]s, so that range specific options
#can be specified for a group of ranges at one place. The total ranges together
#in all [DHCP-RANGE]s is also 125 and there can also be 125 [DHCP-RANGE]s max.
#You can specify one or more ranges in each [DHCP-RANGE] section, in format
#specified.DHCP Server will a lot addresses from these ranges. Static Hosts
#and BootP clients do not need ranges. do not specify any [DHCP-RANGE]
#or DHCP_Range if all clients are Static.
#The Policy for alloting dynamic address is:-
#1)First Look for MacAddress in DHCP Client sections
#2)If not found look for old expired/active address of same host
#3)If not found, look if DNS has matching hostname entry and this IP is free
#4)If not,look at requested IP Address and it is free
#5)If not, allot virgin IP Adress, if any available
#6)If no virgin IP address exists, allot expired IP address of other host.
#From 2) to 6), requests from diffent Interfaces look for matching DHCP ranges
#of Interface IP and requests from relay agents look for matching range to
#relay agent IP.
#All the ranges in a [DHCP-RANGE] section can be further restricted
#by Filter_Mac_Range, Filter_Vender_Class and Filter_User_Class
#If for example Mac Range is specified, then this section's ranges
#will only be available to hosts, whoes Mac Address
#Falls in this range. Also if any host has matching Filter_Mac_Range in
#any DHCP_RANGE section then other DHCP Range sections
#without Filter_Mac_Range or not having matching Mac Range will
#not be available to it. Each Manufacturer has a fixed Mac Range.
#Same Mac ranges can repeat in many DHCP_RANGE sections.
#For Filter_Vendor_Class (option 60) and Filter_User_Class filter (option 77),
#the range would only be available to matching value of Filter_Vender_Class
#and Filter_User_Class sent in client request. If Filter_Vender_Class and
#Filter_User_Class do match in one or more ranges, other ranges with missing
#or not matching values would not be available to such clients.
#You can specify upto 32 Filter_Mac_Range, Filter_Vender_Class and
#Filter_User_Class in each [DHCP-RANGE].
#You dont need to specify any filters for relay agent. The range is automatically
#selected based on relay agent IP and range's subnetmask. Relay agent always sends
#it's subnet side IP. This server would only use the DHCP Range, which contains this IP.
#This would ensure that correct range is used. This feature eliminate the need of
#additional configuration. For matching purpose, range is recalculated using
#Subnet Mask of range and Relay Agent IP.
[DHCP-RANGE]
#This is first and simple DHCP range section example,
#This example may be good enough for simple/home use.
#If you need range filters, look at example below
'DHCP_Range=192.168.0.1-192.168.0.254
DHCP_Range=10.18.46.225-10.18.46.240
'DHCP_Range=192.168.5.1-192.168.5.254
#Following are range specific DHCP options.
#You can copy more options names from [DHCP-OPTIONS]
'Subnet_Mask=255.255.255.0
'DNS_Server=192.168.0.1, 192.168.0.2
'Router=192.168.0.1
#Lease Time can be different for this Range
'Lease_Time=3600
[DHCP-RANGE]
#This section is also simple [DHCP-RANGE] section
#Here the options are specified as flat options.
'DHCP_Range=192.168.0.1-192.168.0.254
'DHCP_Range=192.168.4.1-192.168.4.254
'DHCP_Range=192.168.5.1-192.168.5.254
#Following are flat range specific DHCP options.
#Subnet_Mask below
'1=255.255.255.0
#DNS_Servers below
'6=192.168.0.1, 192.168.0.2
#Router
'3=192.168.0.1
#Lease_Time
'51=11000
[DHCP-RANGE]
#This is filtered [DHCP-RANGE] section.
#First eight entries in this example are filters.
#Currently only following types of filters are supported
#However 32 filters of each type can be specified
'Filter_Mac_Range=00:0d:60:c5:4e:00-00:0d:60:c5:4e:ff
'Filter_Mac_Range=00:0e:12:c5:4e:00-00:0e:12:c5:4e:ff
'Filter_Mac_Range=00:0f:60:c5:4e:a1-00:0f:60:c5:4e:a1
'Filter_Vendor_Class="MSFT 5.0"
'Filter_Vendor_Class="MSFT 5.1"
'Filter_Vendor_Class="MSFT 5.2"
'Filter_User_Class="My User Class 4.0"
'Filter_User_Class=123,56,87,123,109,0,23,56,156,209,234,56
'Filter_User_Class=00:0d:60:c5:4e:0d:60:c5:4e
#Next few are actual ranges of this section.
'DHCP_Range=10.0.0.5-10.0.0.10
'DHCP_Range=10.0.10.1-10.0.10.254
'DHCP_Range=10.0.1.1-10.0.1.254
'DHCP_Range=10.0.2.1-10.0.2.254
#Following are range specific DHCP options.
#You can copy more option names from [DHCP-OPTIONS]
#or add flat options like 240="this is the string value"
#or as IP like 6=192.168.5.1
#or byte array like 6=123,45,1,0,3,67,4,3,22,4,3,5
#or hex array like 6=23:89:a5:ba:a9:e4
'Subnet_Mask=255.255.255.0
'DNS_Server=10.5.6.90, 11.4.5.6
'Router=11.5.6.7, 10.0.99.1
#Lease_Time can be different for this range
#specify 0 for infinity.Lease_Time
'Lease_Time=360
'Ethernet_Encp=no
'NETBIOS_Name_Srv=192.168.0.201
#You can also use hex array or byte array with named options
#If you want to send option 43 back to client for
#ranges in this section, specify it as flat option like:-
'43="this is return string"
#or use the byte array in value
'43=123,56,87,123,109,0,23,56,156,209,234,56
#or use the hex array in value
'43=a6:87:b6:c9:ae:eb:89:09:a4:67:d5
[DHCP-RANGE]
#This is an example of some mac ranges, which will
#be denied DHCP address. The trick is specify the
#filters but do not specify any actual range.
#Hosts falling in following ranges will not get IP.
#If you uncomment the lines below
'Filter_Mac_Range=00:01:60:c5:4e:12-00:01:60:c5:4e:23
'Filter_Mac_Range=00:03:12:c5:4e:a1-00:03:12:c5:4e:aa
'Filter_Mac_Range=00:04:60:c5:4e:a1-00:04:60:c5:4e:a1
'Filter_Vendor_Class="MSFT 5.0"
#No DHCP range is specified in this section
[DHCP-OPTIONS]
#These are global DHCP Options and would suppliment
#client specific options and [DHCP-RANGE] options.
#Options tags start with 1 and goes upto 254, you can
#always specify option like 1=255.255.255.0, but it may
#be difficult to remember option tags. Try using Option Names
#If no matching name found, you can use tag=value (flat options)
#You can also specify the value as byte array or even hex array.
#Some options having sub-options can only be specified as hex/byte
#array If options have client specific values, move/copy them
#to specific client's section. If any option has DHCP range
#specific value, move/copy them to [DHCP-RANGE] sections.
#You may quote litral stings (must quote if sting contain chars
#like comma, dot or colon) for example NDS_Tree_Name="my.NDS.Tree"
#or 43="this is return string" or use the byte array in value
#like 43=123,56,87,123,109,0,23,56,156,209,234,56 or use the hex
#array in value 43=a6:87:b6:c9:ae:eb:89:09:a4:67:d5
#Subnet_Mask if not specified, taken as 255.255.255.0
'SubNet_Mask=255.255.255.0
'DNS_Server=192.168.1.1, 192.168.1.2
'Router=192.168.1.1
'Renewal_Time=0
'Rebinding_Time=0
#Next_Server is PXEBoot TFTP Server
Next_Server=10.18.46.10
'Time_Offset=3000
'Time_Server=192.168.0.1
'Name_Server=192.168.0.1
'Log_Server=192.168.0.1
'Cookie_Server=192.168.0.1
'LPR_Server=192.168.0.1
'Impress_Server=192.168.0.1
'RLP_Server=192.168.0.1
'Boot_File_Size=2345
'Swap_Server=192.168.0.1
Root_Path=/
'Extension_Path=bootdir/files
'IP_Forward_On/Off=yes
'SrcRte_On/Off=yes
'Policy_Filter=192.168.34.1/255.255.255.240
'Default_IP_TTL=234
'MTU_Timeout=3453
'MTU_Plateau=ac:c0:12:09:02:24:0a:4D:61:63:20:48:44:5F:4E:42:53
'MTU_Interface=23553
'All_Subnet_Local=yes
'Broadcast_Address=192.168.0.255
'Mask_Discovery=yes
'Mask_Supplier=yes
'Router_Discovery=yes
'Router_Soli_Address=192.168.67.1
'Static_Routes=192.168.11.1/255.255.255.0, 192.168.12.1/255.255.255.0
'Trailers=yes
'ARP_Timeout=3453
'Ethernet_Encp=yes
'Default_TCP_TTL=21
'Keepalive_Time=120
'Keepalive_Garbage=yes
'NIS_Domain=my.nis.domain
'NIS_Servers=192.168.110.1, 192.168.120.1, 192.168.130.1
'NTP_Servers=192.168.116.1, 192.168.126.1, 192.168.136.1
'NETBIOS_Name_Srv=192.168.5.1
'NETBIOS_Dist_Srv=192.168.5.1
'NETBIOS_Node_Type=8
'NETBIOS_Scope=NETBIOS.COM
'X_Window_Font=192.168.0.1
'X_Window_Manager=192.168.0.1
'Netware/IP_Domain=NETWAREDOMAIN.COM
'Netware/IP_Options=123,7,0,45,234,20,27,167,198,34,112,45
'NIS+_Domain_Name=NISDOMAINNAME.COM
'NIS+_Server_Addr=192.168.0.1
TFTP_Server_Name=BHPW8K01
'Boot_File=pxelinux.0
Boot_File=pxelinux.0
'Home_Agent_Addrs=192.168.0.1
'SMTP_Server=192.168.0.1
'POP3_Server=192.168.0.1
'NNTP_Server=192.168.0.1
'WWW_Server=192.168.0.1
'Finger_Server=192.168.0.1
'IRC_Server=192.168.0.1
'StreetTalk_Server=192.168.0.1
'STDA_Server=192.168.0.1
'NDS_Servers=192.168.0.1
'NDS_Tree_Name="myNDSTree"
'NDS_Context=NewContext
'LDAP_URL="ldap://192.168.1.1"
'Auto_Configure=yes
'Name_Service_Search=23,0,235,4,2,0,236,7,94,34,87,4,127,254,23
'Subnet_Selection=255.255.255.240
'TFTP_Phone_Server=192.168.4.1
'Call_Server=192.168.0.1
'Discrimination_String=""
'RemoteStatisticsServer=192.168.50.1
'Phone_Http_Proxy=192.168.51.1
'IP_Phone="MCIPADD=10.10.0.1,MCPORT=1719,TFTPSRVR=10.10.0.254,TFTPDIR=,VLANTEST=0"
#next few are sample flat option, (global mac boot options)
#option mac-version
'230=00:00:00:00
#option mac-nb-img
'234=ac:11:00:09:02:24:0a:4D:61:63:20:48:44:5F:4E:42:53:00:00:00:0:02:1b:53:68:61:72:65:64:49:6D:61:67:65:73:00:4E:65:74:42:6F:6F:74:20:48:44:2E:69:6D:67
#option mac-apps-img
'235="\opt\isv\boot\bootimage.bin"
#Following sections are client specific DHCP entries/options
#You need to specify IP Adress only. Other options are optional.
#More option Names can be copied from DHCP-OPTIONS to clients.
#For BOOTP requests, only these options would be sent.
#For DHCP requests. Missing Options will be supplimented from
#first [DHCP-RANGE] options (if IP falls in any range), other
#options will be supplemented from [DHCP-OPTIONS].
[00:41:42:41:42:00]
#This is a client with MAC addr 00:41:42:41:42:00
IP_Addr=192.168.0.200
#No other options specified for this client
#For non BOOPT requests, Missing Options will be supplimented from first [DHCP-RANGE]
#options, if IP falls in any range. and other missing would be added from [DHCP-OPTIONS].
[00:41:42:41:42:05]
#This is a client with MAC addr 00:41:42:41:42:05
IP_Addr=192.168.0.211
#DHCP will offer following hostname to this client
'HostName=TestHost
#For example, you can specify DNS Servers, Routers separately for this client
'DNS_Server=10.5.6.90, 11.4.5.6
'Router=11.5.6.7, 4.6.7.34
'NETBIOS_Node_Type=8
#Lease_Time can be different for this client
#Lease_Time here should be < Lease_Time given under [TIMINGS]
#specify 0 for infinity.Lease_Time
'Lease_Time=360000
[00:ff:a4:0e:ef:d5]
#this is an example for MacOsX network boot, client specific options
#for client having MAC addr 00:ff:a4:0e:ef:d5
IP_Addr=10.10.0.12
#you can omit the comments, these are for guidance only
#Next Server (TFTP Boot Server) and Boot File can be different for this client
'Boot_File=pxelinux.0
'Boot_File_Size=255
'Root_Path="/"
'Extension_Path="/linux/"
'Next_Server=192.168.0.1
#option mac-nc-client-unknown
'220=00:00:00:00
#option mac-nc-client-id
'221=4D:61:63:20:4E:43:20:23:38
#option mac-username
'232="bootuser"
#option mac-password
'233="bootpassword"
#option mac-machine-name
'237=myComputer
#option mac-client-nb-img
'238="\opt\isv\boot\image.bin"
Have I missed something? Suggestions?