Option 150 - format for multiple TFTP servers - Solved (workaround)
I have been attempting to define multiple TFTP (IP) addresses for use in OPTION 150. The RFC states it can be a list, but I cannot get pfSense to correctly parse what I put in. If I select the formation to be "IP address or host" and can define one address fine. When I try two I get various results:
- with format as "IP address or host"
192.168.1.100; 192.168.1.200 –> The following input errors were detected: IP address or host type must be an IP
address or host name.
192.168.1.100;192.168.1.200 --> Same as above
192.168.1.100 192.168.1.200 --> Same as above
192.168.1.100.192.168.1.200 --> The service will not startup and it reports it is expecting a semi-colon in the configuration.
- With text or string as the format I get ASCII values stuffed in and it does result in getting a couple of addresses being returned in the DHCP request, but the are invalid IP addresses.
Is supplying a list supported? or is there a way for me to make this work?
Is there any way to add the Option 150 list (I will only have two IP addresses) to a configuration file? This seems like a missing option on the GUI. Every other router I am looking at does this differently or not at all. SonicWall allows defining an array for an option.
I need to be able to do this per subnet (LAN and OPT1).
I have found some info on the web describing the "write dhcpd.conf" area of /etc/inc/services.inc, but I am far from knowing what to include.
I can see "option custom-opt1-0 192.168.1.100;" and "option custom-opt1-1 192.168.1.200" in the dhcpd.conf file under the correct subnet, but if I change anything here wont it get overwritten by the GUI? I thought I would try "option custom-opt1-0 192.168.1.100;192.168.1.200;"
Any other ideas? Am I even on the right track?
I was able to get pfSense to spit out a valid option 150 with two IP addresses. It is an issue with the pfSense GUI not permitting more than one IP address.
I defined one custom option 150 as a String and then used hex equivalents of the ip addresses divided by colons (NO Quotation Marks).
To define 10.1.0.100 and 10.1.0.200, I converted each IP address into the hex values A0010064 and A00100C8. The values have to be in 4 byte increments, but I assume we could create a longer list of IPs using this method.