【问题标题】:dnsmasq tags and conditional dns serverdnsmasq 标签和条件 dns 服务器
【发布时间】:2014-03-17 23:22:14
【问题描述】:

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

即默认为 dns server A,除非明确设置为每台主机的 dns server B (mac)。

我想将我的网络拆分为带有 dnsmasq 标记的子网,例如:

192.168.1.80-150 = 绿色

192.168.1.40-50 = 红色

我希望将 dhcp 租约交给 - 默认情况下 - 标记为绿色,但我想分发红色标记的一些特定 MAC 除外。 我有这部分工作成功(我相信),我通过 MAC 明确设置它 - 但我想要的是所有东西 - 除非另有说明 - 默认为绿色。

然后我想说“对于所有绿色标签,给他们 dns server A 作为解析器”,“对于所有红色标签,给他们 dns server 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 服务器没有被分发,因为其中一台主机上的“cat /etc/resolv.conf”显示 127.0.0.1。

总结一下我的疑问:

  1. 我可以将所有内容都设为“绿色”,除非 MAC 明确设置为“红色”(目前我必须明确将所有内容的 mac 放入 conf 文件)?
  2. 我可以为不同的标记网络指定不同的 DNS 服务器吗?
  3. 为了更加清楚,我对“tag”和“set”之间的区别有点困惑,并且在谷歌搜索中发现了对两者的引用,对它们进行简短而清晰的定义会很棒。

非常感谢

【问题讨论】:

    标签: dns dnsmasq


    【解决方案1】:

    好的,我修复了它(根据我的特定要求),我会在这里发布我所拥有的内容,以防它帮助其他人。

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

    除非 expicility 另有设置,否则所有内容都标记为绿色。某些特定 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 选项。当它以 'tag:' 为前缀时,它的含义会从设置标签变为匹配它。只能设置一个标签,但可以匹配多个标签。
    • 可以在一个 dhcp-host 指令中设置多个标签(但不能在其他允许“set:”的地方)
    • 此系统是从更早的、更受限制的系统演变而来的,为了向后兼容,可以使用“net:”代替“tag:”,并且可以省略“set:”。 (除了在 dhcp-host 中,可以使用“net:”代替“set:”。)出于同样的原因,可以使用 '#' 代替 '!'表示不。

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

    • 使用 set 和 tag,避免使用 net(因为这是旧方式)
    • 在您的 dhcp-range 和 dhcp-host 中使用 set 来分配标签,并且
    • 在您的选项中使用标签来匹配您已经设置的标签。
    • 除了这些 dhcp 主机之外,您还可以看到多个 mac 地址,因为它是同一个盒子的 eth0 和 wlan mac。

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

    【讨论】:

    • 是否可以在不启用 DHCP 的情况下使用条件 DNS 名称服务器?
    • 提醒其他使用 WRT 路由器的人:我永远无法在我的配置中“设置”工作。我不得不使用“net”作为“set”,“net”作为“tag”(旧方式)。示例:dhcp-host=00:25:64:93:34:A1,DellPC,net:green,192.168.2.20,infinitedhcp-option=net:yellow,6,75.75.75.75,76.76.76.76
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-24
      • 2018-12-22
      • 2016-04-22
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      相关资源
      最近更新 更多