[Dnsmasq-discuss] Decouple enable-tftp and no-dhcp-interface

Lonnie Abelbeck lists at lonnie.abelbeck.com
Tue Jul 30 19:19:52 BST 2013


On Jul 29, 2013, at 1:50 PM, Simon Kelley wrote:

> On 27/07/13 23:02, Lonnie Abelbeck wrote:
>> 
>> On Jul 25, 2013, at 4:44 PM, Lonnie Abelbeck wrote:
>> 
>>> 
>>> On Jul 25, 2013, at 4:06 PM, Simon Kelley wrote:
>>> 
>>>> On 23/06/13 20:34, Lonnie Abelbeck wrote:
>>>>> Hi,
>>>>> 
>>>>> I'd like to suggest that enable-tftp and no-dhcp-interface should be
>>>>> decoupled.
>>>>> 
>>>>> Not only is it confusing that no-dhcp-interface also disables
>>>>> enable-tftp for that interface, but it is sometimes desirable to
>>>>> allow DNS and TFTP on an interface without DHCP.
>>>>> 
>>>>> Looking at "src/tftp.c" is seems there is no dependance on DHCP
>>>>> except to walk the no-dhcp-interface args when HAVE_DHCP is defined.
>>>>> 
>>>>> Ideally, IMHO, enable-tftp should be independent from HAVE_DHCP and
>>>>> add a new "no-tftp-interface" config that would be tested for
>>>>> interface exceptions instead of no-dhcp-interface.
>>>>> 
>>>>> Reasonable ?
>>>> 
>>>> The rationale for the current state-of-the-world is that the TFTP server in dnsmasq is provided for the express purpose of doing netbooting, so it makes sense to do TFTP on the same interfaces/addresses as DHCP.
>>>> 
>>>> I'd like to keep that as-is, for backwards compatibility if no other reason, so I suggest that we could add new option --tftp-interface that would have a higher priority than no-dhcp-interface. SO, to do TFTP but NOT DHCP on eth0 you'd do
>>>> 
>>>> no-dhcp-interface=eth0
>>>> tftp-interface=eth0
>>>> 
>>>> No existing configs would change meaning, and the common case wouldn't need to use the new option.
>>>> 
>>>> Comments?
>>>> 
>>>> Simon.
>>> 
>>> To be clear, if in the above example eth1 had DHCP enabled, then TFTP would be served on both eth0 and eth1 ?
>>> 
>>> If so, would this be more clear ?
>>> --
>>> tftp-no-dhcp-interface=eth0
>>> --
>>> which would be a synonym for "no-dhcp-interface" but would mark that interface to allow TFTP.
>>> 
>>> I agree no change to existing configs is best.
>>> 
>>> Lonnie
>> 
>> Replying to myself, another idea...
>> 
>> Allow "enable-tftp" to work the same as currently, but then add "enable-tftp=" with options:
>> 
>> # Limit TFTP server to a list of interfaces
>> --enable-tftp=eth1,eth2
>> # Allow TFTP server for all interfaces
>> --enable-tftp=*
>> 
>> Then "enable-tftp" and "enable-tftp=" can't both be specified.
>> 
>> Lonnie
>> 
> Code in the git repo now.....
> Cheers,
> 
> Simon.

Tested Snapshot: 2937f8a in AstLinux ...

Works perfectly !  I tried many permutations to try to break it, works as expected.

Much appreciated Simon !

Lonnie




More information about the Dnsmasq-discuss mailing list