domain-name-system – BIND可以根据请求的IP地址改变响应吗?

Hello Serverfault,

我在一家医院工作,他们使用192.168.0.0/23建立他们的网络(在我到达之前).我们希望笔记本电脑和移动客户端使用VPN从远程位置连接,但医院网络与大多数家用路由器发生冲突.我已迫使管理层给我们时间来改变它,但作为一家医院,服务器/设备/等等到处都是无法安排的.所以我们通过使用10.22.0.0/23的1:1 nat来“解决”这个问题.

问题:客户端可以使用10.22.0.0/23 IP连接和访问资源而不会出现问题,但如果他们查询DNS服务器,则会收到192.168.0.0/23响应.如果查询来自VPN子网,BIND中是否有正确的方法将这些转换为10.22.0.0/23地址?强调正确,因为我在cron中使用以下内容通过BIND视图工作:

sed -e 's/192.168.0./10.22.0./' -e 's/192.168.1./10.22.1./' /var/lib/bind/db.company.local > /var/lib/bind/db.company.local.ext && /usr/sbin/rndc reload company.local in extView

这很好用,但由于BIND日志需要大约15分钟才能写回db.company.local文件,因此会延迟15到20分钟.

我在RPZ上读了一下,但信息似乎不稳定.谁能指出我正确的方向?如果没有,你能让我的解决方案更优雅吗?

编辑:我只想表明我已经在使用BIND视图,但我正在使用两个区域.我在第一个区域生成第二个区域,通过sed发送它来更改IP,并在该视图中对该区域执行rndc重新加载.这有很大的延迟,有没有办法在两个视图中使用相同的区域文件,并在查询时更改DNS响应?

谢谢!

解决方法

这应该是一个过程问题.通常,管理员会将新记录添加到两个视图的区域文件中.如果内存不好,强制他们使用脚本.如果他们拒绝使用脚本,请对其进行纪律处分.但如果它是一个疯人院,你只需要这个工作,我想你可以用基于视图的响应策略来做到这一点.

假设您的记录如下所示:

$ORIGIN db.company.local.net.
test1   IN A 10.22.0.1
test2   IN A 10.22.1.255

在192空间视图的视图选项中,定义以下响应策略:

options {
    response-policy { zone "192remap.rpz"; };
}

zone "192remap.rpz" {
    type master;
    file "192remap.rpz.zone";
};

响应策略将用于将所有10个空间IP重写为192space.这与任何其他区域文件一样,但NS记录没有意义,记录具有特殊含义.由于手动写出每个IP地址重映射都是件苦差事,我们将使用$GENERATE块为您填充区域文件.

@            IN    SOA  localhost. root.localhost.  (
                      2   ; serial 
                      3H  ; refresh 
                      1H  ; retry 
                      1W  ; expiry 
                      1H) ; minimum 

             IN    NS    localhost.

; 32.$.0.22.10.rpz-ip. -> 10.22.0.$/32
$GENERATE 0 255 32.$.0.22.10.rpz-ip. A 192.168.0.$
$GENERATE 0 255 32.$.1.22.10.rpz-ip. A 192.168.1.$

这不仅会重新映射DNS响应的ANSWER部分中的任何10.22.0.0/23 IP,而且还会捕获出于任何原因出现在AUTHORITY或ADDITIONAL部分中的任何偷偷摸摸的IP.对test1.db.company.local.net的请求. (10.22.0.1)应将其回复重写为192.168.0.1,并且仅针对访问192空间视图的客户端.

希望这会有所帮助,如果有效,请告诉我们.您可以在几个月前写的another answer中找到有关RPZ的更多信息以及指向文档的链接.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些