在DNS管理中可能会遇见这样的问题,例如某公司DNS既提供给内网用户解析使用,也提供给公网用户解析使用,但是,可能内网用户使用的不多,或者公网用户使用的不多,导致其中一方可能只用到了几条记录,但是却要各自单独维护一台DNS服务器,在过去,处于安全考虑只能这样做,部署多台DNS服务器,但是到了2016 DNS支持分裂部署的方式,定义DNS policy,实现不同的网卡承担不同的DNS查询请求,例如可以定义,凡是通过内网接口进来的查询都走DNS内网卡,通过外网卡进来的查询都走DNS外网卡。这样就在单台服务器上很好的隔离开了DNS查询
此处我们将模拟这样一个场景,Contoso公司是一家游戏公司,内网用户需要访问oa,外网用户需要访问游戏官网,同时由同一台DNS承担内外网的请求,内网用户进来走内网接口,外网用户进来走除了内网接口以外的其它接口。
实验环境介绍
16DNS:承担DNS服务器,设置在公司总部,设置两张网卡一张对内提供服务,一张对外提供服务
IP地址:80.0.0.8 GW:80.0.0.1
IP地址:90.0.0.9 GW:90.0.0.1
Web01:承担内网的OA办公服务器,同时也承担连接总部DNS,内网,外网客户端的路由
IP地址1:80.0.0.1
IP地址2:90.0.0.1
IP地址3:100.0.0.1 DNS 80.0.0.8
Web02:承担对外提供官网Web服务器,IP 地址:90.0.0.2 GW:90.0.0.1
Internal: 模仿内网员工 IP地址:80.0.0.100 GW:80.0.0.1 DNS : 80.0.0.8
Internet:模仿外网游戏用户 IP地址:90.0.0.100 GW:90.0.0.1 DNS:90.0.0.9
假定90网络为公网网络,16DNS为分裂部署DNS
由于我们采用接口的方式进行隔离,故不用创建客户端子网范围
直接创建“内部逻辑范围”
Add-DnsServerZoneScope -ZoneName "eip.com" -Name "internal"
添加对公网提供服务的主机记录
添加对内网提供服务器的主机记录,并加入internal ZoneScope区域
创建DNS policy,定义凡是经过DNS服务器80.0.0.8这个接口来做查询的,都丢到内网OA服务器负责响应
Add-DnsServerQueryResolutionPolicy -Name "SplitBrainZonePolicy" -Action ALLOW -ServerInterface "eq,80.0.0.8" -ZoneScope "internal,1" -ZoneName "eip.com"
默认情况下如果创建了基于接口判断的DNS policy,除了已经匹配接口的请求会按照协议来走,其它未匹配协议的自动走DNS服务器其它可用接口。
登录internal内部机器,可以看到DNS已经设置成了内部接口的80.0.0.8
访问www.eip.com 自动跳转至内网OA服务器负责响应
登录internet外部机器,可以看到DNS已经设置成了外部接口的90.0.0.9
访问www.eip.com 自动跳转至外网门户服务器负责响应
可以看到DNS服务器非常智能,已经根据客户端的请求来分配不同的接口去响应查询请求了,假设公司希望用同一个域名,内外网访问响应不同页面,通过这项功能就可以很好的实现。