dnsmasq标签和条件DNS服务器

wib*_*ble 7 dns dnsmasq

作为一个整体解决方案,我想使用dnsmasq拆分dns在不同服务器之间进行解析.

即默认为dns服务器A,除非显式设置为每个主机(mac)的dns服务器B.

我想将我的网络分成dnsmasq标记的子网,这个例子说:

192.168.1.80-150 =绿色

192.168.1.40-50 =红色

我希望dhcp租约由-default-标记为绿色,除了一些特定的MAC,我想分发红色标签.我有这个部分成功运作(我相信),我明确地通过MAC设置它 - 但我想要的是一切 - 除非另有说明 - 默认为绿色.

然后我想说"对于所有绿色标签,给他们dns服务器A作为他们的解析器","对于所有红色标签,给他们dns服务器B作为他们的解析器".

这可能吗?

我有以下配置似乎不起作用:

--8<--
dhcp-range=set:green,192.168.1.80,192.168.1.150,infinite
dhcp-range=tag:red,192.168.1.40,192.168.1.50,infinite

dhcp-option=net:green,option:dns-server,8.8.8.8,8.8.4.4
dhcp-option=net:red,option:dns-server,192.168.1.11    

dhcp-host=AA:BB:CC:DD:CC:BB,redhost1,192.168.1.41,infinite,net:red
dhcp-host=BB:CC:DD:AA:BB:00,greenhost1,192.168.1.81,infinite,net:green

dhcp-option=option:router,192.168.1.1
--8<--
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用,但我根据我是否匹配了他们的MAC,为不同的主机分配了不同的IP地址,然后好像dns服务器没有正确分发.

我相信dns服务器没有发布,因为其中一个主机上的"cat /etc/resolv.conf"显示为127.0.0.1.

总结一下我的疑问:

  1. 我可以将所有内容默认设置为"绿色",除非MAC明确设置为"红色"(此时我必须明确地将所有内容的mac放入conf文件中)吗?
  2. 我可以为不同的标记网络指定不同的DNS服务器吗?
  3. 为了更加清晰,我对"标签"和"设置"之间的差异感到有点困惑,并且在谷歌搜索中找到了对这两者的引用,这些的简短而清晰的定义会很棒.

非常感谢

wib*_*ble 12

好吧,我修好了(根据我的特殊要求),我会发布我在这里的内容,以防它帮助别人.

所以我的要求是将不同的DNS服务器(也许是不同的gw)分发给不同的主机,这似乎有效:

dhcp-range=set:green,192.168.1.80,192.168.1.150,infinite

# red network
dhcp-host=11:22:33:44:55:66,hosta,192.168.1.11,infinite,set:red
dhcp-host=66:55:44:33:22:11,aa:bb:cc:dd:ee:ff,hostb,192.168.1.12,infinite,set:red

# green network mobile
dhcp-host=dd:dd:dd:dd:dd:dd,android1,192.168.1.21,infinite,set:green
dhcp-host=cc:cc:cc:cc:cc:cc,android2,192.168.1.22,infinite,set:green
Run Code Online (Sandbox Code Playgroud)

除非另有说明,否则所有内容都标记为绿色.某些MAC标记为红色.然后你可以做不同的DNS服务器和不同的gw:

# options
dhcp-option=tag:green,option:dns-server,192.168.1.1,192.231.a.b   # ,8.8.8.8,8.8.4.4
dhcp-option=tag:red,option:dns-server,192.168.1.c
dhcp-option=tag:green,option:router,192.168.1.1
dhcp-option=tag:red,option:router,192.168.1.c
Run Code Online (Sandbox Code Playgroud)

我发现其他一些有用的注释/上下文,以及net/set/tag选项:

  • 可选集:设置一个字母数字标签,用于标记此网络,以便可以在每个网络的基础上指定dhcp选项.当它以'tag:'作为前缀时,其含义会从设置标签变为匹配.只能设置一个标签,但可以匹配多个标签.
  • 可以在dhcp-host指令中设置多个标记(但不允许在允许使用"set:"的其他位置)
  • 该系统从较早的,更有限的系统发展而来,为了向后兼容,可以使用"net:"代替"tag:",并且可以省略"set:".(除了在dhcp-host中,可以使用"net:"而不是"set:".)出于同样的原因,可以使用'#'代替'!' 表示不.

因此,我认为这样做是安全的:

  • 使用set和tag,并避免使用net(因为它是旧的方式)
  • 在dhcp-range和dhcp-host中使用set来分配标记,和
  • 在您的选项中使用标记来匹配您已设置的标记.
  • 作为那些dhcp-hosts的一部分你可以看到多个mac地址,因为它是同一个盒子的eth0和wlan mac.

无论如何似乎对我有用,也许这会对某人有所帮助.