dnsmasq标签和条件DNS服务器

时间:2014-03-17 23:22:14

标签: 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<--

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

我认为dns服务器没有发布,因为&#34; cat /etc/resolv.conf"在其中一个主机上显示127.0.0.1。

总结我的疑问:

  1. 除非明确设置为&#39; red&#39;否则我可以将所有内容默认设为&#39; green&#39;通过MAC(目前我必须明确地将所有内容的mac放入conf文件中)?
  2. 我可以为不同的标记网络指定不同的DNS服务器吗?
  3. 为了更加清晰,我对&#34;标签&#34;之间的差异感到有些困惑。和&#34;设置&#34;在谷歌搜索中找到了两者的参考,这些的简短而清晰的定义会很棒。
  4. 非常感谢

2 个答案:

答案 0 :(得分:9)

好吧,我修好了(根据我的特殊要求),我会发布我在这里的内容,以防其他人帮忙。

所以我的要求是将不同的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

除非另有说明,否则所有内容都标记为绿色。某些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

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

  • 可选集:设置一个字母数字标签,用于标记此网络,以便可以在每个网络的基础上指定dhcp选项。当它以&#39;标记为前缀时:&#39;相反,它的含义从设置标签变为匹配它。只能设置一个标签,但可以匹配多个标签。
  • 可以在dhcp-host指令中设置多个标记(但在其他地方不能设置&#34;设置:&#34;是允许的)
  • 这个系统是从较早的,更有限的系统演变而来的,用于向后兼容&#34; net:&#34;可以用来代替&#34;标签:&#34;和&#34;设置:&#34;可以省略。 (除了在dhcp-host中,其中&#34; net:&#34;可以用来代替&#34; set:&#34;。)出于同样的原因,&#39;#&#39;可以用来代替&#39;!&#39;表示不。

因此我觉得这样做是安全的:

  • 使用set和tag,并避免使用net(因为它是旧的方式)
  • 在dhcp-range和dhcp-host中使用set来分配标记和
  • 在您的选项中使用代码来匹配您已设置的代码。
  • 除了那些你可以看到多个mac地址的dhcp-hosts之外,因为它是同一个盒子里的eth0和wlan mac。
无论如何,

似乎对我有用,也许这会对某人有所帮助。

答案 1 :(得分:-1)

为什么不改变主意,使用 1 个 dnsmasq 服务在 2 个 vlan 上设置 2 个 dhcp 部分,并使这 2 个 vlan 通过它们的网关(或不通过网关)相互通信。