dnsmasq - 每个macaddress的不同tftp-root

时间:2016-10-12 21:01:28

标签: linux debian dnsmasq

是否可以在dnsmasq.conf中解决不同的tftp-root?

像: 如果MAC = 19-4B-90-DA-1C-C3 那么tftp-root = / tftpbootAB

如果MAC = 19-4B-90-DE-1C-B6 那么tftp-root = / tftpbootCD

我在手册中找不到这个。

我只发现了类似的东西: DHCP匹配=设定:BIOS,选项:客户拱,0 DHCP引导=标签:EFI-x86_64的, “EFI64 / syslinux.efi”

但不适用于使用tftp-root的行

1 个答案:

答案 0 :(得分:1)

我也在寻找这个问题,并且在man dnsmasq中找到了解决方案。有一个选项:

  

-tftp-unique-root [= ip | mac]
  在TFTP根目录的末尾添加TFTP客户端的IP或硬件地址作为路径组件。仅当设置了tftp-root并且目录存在时才有效。默认情况下添加IP地址(标准点分四进制格式)。例如,如果tftp-root是“ / tftp”,并且客户端1.2.3.4请求文件“ myfile”,则如果存在/tftp/1.2.3.4或/ tftp /,则有效路径将是“ /tftp/1.2.3.4/myfile”。否则为myfile。当指定“ = mac”时,它将使用小写的零填充数字(用破折号分隔)来附加MAC地址,例如:01-02-03-04-aa-bb请注意,只有当客户端位于本地网络或从我们这里获得了DHCP租约。

/etc/dnsmasq.conf中的代码段如下所示(示例):

enable-tftp
tftp-root=/tftpboot
tftp-unique-root=mac
pxe-service=0,"Raspberry Pi Boot"

然后创建目录:

~$ sudo mkdir -p /tftpboot/19-4b-90-da-1c-c3
~$ sudo mkdir -p /tftpboot/19-4b-90-de-1c-b6

并将特定设备(mac地址)所需的启动文件放入其子目录中。