Windows Server 2016 DNS Policy Geo-Location 1

随着信息技术的不断发展,人们对于IT基础架构的要求也越高,开始要求提供快速交付,批量部署,数据分析,网络虚拟化等新需求,各大厂商也针对自己的产品进行不断地完善,DNS最开始在Windows Server上面只是提供最简单的域名解析,缓存,转发等功能,后来越来越完善,到了2008时代新增了DNSSEC,单标域,名称保护等新功能,使DNS更加安全规范化,Windows Server 2016上面,DNS新增了在作者看来非常不错的功能,DNS policy,近日测试了许多里面的新功能,甚是为之惊艳,作者甚至认为这项功能将Windows Server上面的DNS提升到了“ 基本智能化 ”的程度,决定分享给大家

在接下来几篇文章中,老王将通过搭建环境,实际操作的方式,为大家导入DNS新功能DNS policy的使用方法,使用场景,希望能为大家抛砖引玉。

开篇第一章,作者将介绍2016 DNS policy里面基于地理位置进行隔离流量访问,我将设计一个场景,假设Contoso是一家图书公司,分别在大连和威海设有分公司,公司有一个办公网站,大连和威海的员工都需要访问,在以前是通过DNS轮询实现负载均衡,有时候经常大连的人访问到了威海的服务器,导致出现访问延迟,在Windows Server 2016里面将通过DNS地域隔离技术,实现检查到来自大连的客户端就分流到大连的服务器,威海的客户端访问就分流到威海的服务器,很神奇有没有,以前的Windows Server DNS要实现这样的功能是非常困难的,现在自身就可以实现了

实验环境介绍

16DNS:承担DNS服务器,设置在公司总部  IP地址:100.0.0.2  GW:100.0.0.1

Web01:承担大连的Web服务器,同时也承担连接总部DNS,威海客户端,大连客户端的路由器

IP地址1:80.0.0.1

IP地址2:90.0.0.1

IP地址3:100.0.0.1 DNS 100.0.0.2

Web02:承担威海的Web服务器,假设在威海DC,IP地址:90.0.0.2 GW:90.0.0.1

dalian:模仿大连客户端 IP地址:80.0.0.100 GW:80.0.0.1 DNS : 100.0.0.2

weihai:模仿威海客户端 IP地址:90.0.0.100 GW:90.0.0.1 DNS:100.0.0.2

老王已经做好了网页,分别放在Web01和Web02上面,访问不同的服务器可以看到不同的网页内容

注:Web01虽然具备三个IP地址,但是笔者已经在IIS上面绑定了80.0.0.1,即只有输入80.0.0.1才可以访问到Web01的网站内容

开始做之前,我们先来看一下重要的新概念

  1. DnsServerClientSubnet
  2. DnsServerZoneScope

这两个命令是之前没有的,也是要实现DNS逻辑地理范围隔离的关键

要实现地域隔离,首先要先创建DnsServerClientSubnet

也就是说,你要先告诉DNS,那一段子网是属于大连的客户端,那一段子网是属于威海的客户端,你告诉了DNS之后,他才知道以后该怎么判断转发请求

子网创建好了,我们还需要创建DnsServerZoneScope,这里是核心中的核心,我们需要在一个DNS区域里面创建出来多个逻辑的地理区域,一定要理解这个概念,例如,现在有个DNS主区域叫eip.com,OK,我们就要在eip.com这个区域里面再划分出来逻辑地理范围,比如需要创建一个大连区域,一个威海区域,这样做了之后,就实现了同一个DNS主区域下面,包括了多个地理区域。

上一步我们创建的逻辑地理区域,主要用来包含主机记录,串起来做Policy 判断使用,例如我们创建了逻辑地理区域dalian,接着我们就需要创建大连Web服务器的主机记录,在创建主机记录过程中,最主要的一步就是指定-ZoneScope,指定了这个参数之后创建出来的这个主机记录就会绑定在这个地理区域内,之后创建策略,只有策略中指定的子网范围内客户端可以访问对应的“包括地理区域的主机记录”

调料放好了,下面该上主菜了,最关键的三步准备好了之后,我们需要创建一个policy,来把这三个东西包起来,再定义出来判断及转发条件,告诉DNS,那些客户端来了,他们是属于哪个地理区域的,这个地理区域应该由那台服务器来提供服务。

OK,思路整理好了之后我们直接来进行操作

首先,来到16dns上面,打开powershell,执行命令,创建子网范围

Add-DnsServerClientSubnet -Name "daliansubnet" -IPv4Subnet "80.0.0.0/24"

Add-DnsServerClientSubnet -Name "weihaisubnet" -IPv4Subnet "90.0.0.0/24"

详细命令参数可以参考technet,如果同一个地理位置有很多个子网,可以在IPv4Subnet里面用英文逗号隔开输入

创建完成子网范围后再来创建逻辑地理区域,执行命令

Add-DnsServerZoneScope -ZoneName "eip.com" -Name "dalian"

Add-DnsServerZoneScope -ZoneName "eip.com" -Name "weihai"

可以看到,上面的子网命令是在DnsServer级别定义的,这里的逻辑地理区域划分是在现有的DNS区域中进行定义

接下来关键的一步,添加主机记录,起到决定性作用的就是新增的ZoneScope参数,如果不加这个参数那和以前我们在界面上新增DNS记录没区别,添加好了后随机轮询,添加了这个参数之后,就可以根据定义的逻辑地理区域进行流量隔离

Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "80.0.0.1" -ZoneScope "dalian"

Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "90.0.0.2" -ZoneScope "weihai"

最后我们创建DNS查询返回策略,也是重中之重,在这里我们指定客户端子网范围,eq代表等于的意思,一旦客户端子网等于已经定义好的范围,即有对应区域内的主机记录给予响应,Zone Scope参数后面有一个1,这个在之后的文章我们会多次用到,在本次场景中我们是一个完全的分流的场景,如果不完全分流,例如大连用户百分之70访问大连服务器,百分之30访问威海服务器,这里就可以定义,dalian,7;weihai3  ,我们写1,代表大连客户端访问百分之百是由大连区域的主机记录给予响应

Add-DnsServerQueryResolutionPolicy -Name "dalianPolicy" -Action ALLOW -ClientSubnet "eq,daliansubnet" -ZoneScope "dalian,1" -ZoneName "eip.com"

Add-DnsServerQueryResolutionPolicy -Name "dalianPolicy" -Action ALLOW -ClientSubnet "eq,weihaisubnet" -ZoneScope "weihai,1" -ZoneName "eip.com"

登录dalian客户端,打开访问www.eip.com,可以看到是大连的服务器内容

运行nslookup,发现只能看到大连的Web主机回应,如果在2016之前,我们创建了多个一样的DNS主机记录,是会看到所有轮询主机的,这里只看到大连的Web主机,说明我们定义的逻辑地理区域生效了。

登录weihai客户端,打开访问www.eip.com,可以看到是威海的服务器内容

运行nslookup,发现只能看到威海的Web主机回应

到这里相信大家已经看懂这项功能了,作者相信这是项很实用的功能,和一些业内朋友聊天也都感觉是一项不错的技术,开发测试的环境的隔离,跨地域之间的流量分流,甚至是网络虚拟化场景下租户隔离的场景,如果使用这个新功能,是不是就不用多搭建那么多DNS Server了。

在使用过程中老王发现这项功能还是很方便,也没什么先决条件,你只需要一台2016 Server上面装DNS角色就可以了,可以是工作组或者域环境,对于客户端版本没有限制,至少目前发现2003,win7客户端都没问题。

在使用过程中老王发现三个值得注意的地方

  1. 使用命令创建的主机记录,不会出现在DNS控制台中,如果你签发完创建主机记录那条命令之后没在Console看到,不要担心,只要命令输入正确就可以,这点希望后期微软可以改善下
  2. 老王实际测试中文版2016 Server在删除策略的时候会出现bug,已经创建好的dns policy会无法删除,这点希望是我的操作失误,大家可以试下
  3. 虽然我们实现了基于地理区域的主机记录隔离,大连客户端访问大连服务器,威海客户端访问威海服务器,但是!老王亲自测试,一旦按照文中方法做了,除了大连子网客户端和威海子网客户端之外,别的子网范围客户端将无法访问这两个主机记录,因为已经绑死了

假设,你要实现不光仅仅做到不同地理区域客户端的隔离访问,还希望主机记录在别的网段也可以访问,那你需要再执行以下命令,通过这条命令创建出来的记录,会出现在DNS管理控制台中。

Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "80.0.0.1"

Add-DnsServerResourceRecord -ZoneName "eip.com" -A -Name "www" -IPv4Address "90.0.0.2"

这样做了之后,凡是不在大连子网范围和威海子网范围的其它客户端访问,将使用轮询的方式分别访问大连和威海的服务器

没执行这两条命令之前,在总部DNS ,网段100.0.0.0/24 nslookup提示无法解析www.eip.com

执行之后清理下dns缓存16dns再次执行nslookup,发现已经开始轮询

第一篇到这里也接近尾声,由于环境有限,另外一种场景我没有演示,如果你的环境够大还可以实现,总部一台16dns,大连和威海也分别部署一台dns做区域传送,这样做了可以减轻DNS服务器的负担,帮助本地客户端更快的进行智能定位,实际使用时需要注意,大连和威海的DNS服务器,需要复制使用命令复制总部DNS的客户端子网范围,主机记录,逻辑范围,policy等数据

后续老王还将继续连载2016 dns policy系列,包括分脑,应用负载均衡,基于时间的智能DNS定位等

时间: 2024-12-24 22:11:47

Windows Server 2016 DNS Policy Geo-Location 1的相关文章

Windows Server 2016 DNS Policy Tod-Intelligent 2

在上一篇中作者为大家简单介绍了下Windows Server 2016 DNS Policy基于地理位置的流量隔离功能,本文将为大家介绍DNS policy里面另一个主要的功能 ,基于时间的智能DNS定位 假定Contoso是一家跨国的图书公司,跨中国和德国,设立在中国大连和德国柏林都有分公司,希望实现平常时间两边分公司的员工都正常访问本分公司的服务器,当负载达到时间峰值时,例如,每天9点到11点是大连这边用户访问的高峰期,这时候百分之80的流量通过大连主机响应,百分之20定位到柏林服务器响应.

Windows Server 2016 DNS Policy Load Balancing 4

在前面三篇文章中作者针对Windows Server 2016 DNS Policy的基于地理位置流量分流,基于时间负载的DNS智能定位,以及内外网卡分流的场景进行了简单的实验论证以及场景解释,相信看过思考过的朋友都有收获 本系列最后一篇文章中,作者将主要介绍下2016 DNS policy针对于负载均衡和之前版本的不同,以及本地负载均衡设计及跨地域负载均衡如何配置,再介绍下2016DNS policy的一些其它用法,最后我们总结下本系列文章 再2016之前,大家想到Windows Server

Windows Server 2016 DNS Policy Split-Brain 3

在DNS管理中可能会遇见这样的问题,例如某公司DNS既提供给内网用户解析使用,也提供给公网用户解析使用,但是,可能内网用户使用的不多,或者公网用户使用的不多,导致其中一方可能只用到了几条记录,但是却要各自单独维护一台DNS服务器,在过去,处于安全考虑只能这样做,部署多台DNS服务器,但是到了2016 DNS支持分裂部署的方式,定义DNS policy,实现不同的网卡承担不同的DNS查询请求,例如可以定义,凡是通过内网接口进来的查询都走DNS内网卡,通过外网卡进来的查询都走DNS外网卡.这样就在单

Windows Server 2016 智能DNS(一)

说到智能DNS,作为一个IT人员来说并不陌生,但是一般都是第三方提供的,很少可以在本地实现,今天我们说说可以在本地实现配置智能DNS的解决方案,那就是Windows Server 2016下通过配置DNS Policy可以实现智能DNS解析,我们必须要重申一下,只有Windows Server 2016下的DNS才支持哦,Windows Server 2016已经发布很长时间了,所以今天我们对于Windows Server上DNS支持的功能我们做一下功能演示,首先介绍的是DNS Policy G

Windows Server 2016 智能DNS(二)

Windows Server 2016 智能DNS(二)我们上一篇介绍了Windows Server 2016 智能DNS(一),详细的介绍了一下Windows Server 2016下配置DNS Policy实现地域隔离访问,但是对于上一篇中我遇到一个问题,就是增加后,发现web.ixmsoft.com的访问是没有问题,但是默认的Zone中下的所有内部解析均解析失败,经过查询资料需要增加一条默认的策略,而且优先级高于任何一条策略:比如我们查看policy:get-DnsServerQueryR

Windows Server 2016 智能DNS(三)

我们前面几篇文章介绍了Windows Server 2016 智能DNS的相关配置及介绍,我们今天继续之前的DNS配置来着重说明一下存储过程,我们之前也提到了,只有在Windows Server 2016下的安装的DNS服务才支持相关DNS操作命令, 所以我们大家需要注意一下,另外如果环境内有多台服务器的话,我们是否需要在每台服务器上进行创建了,比如我们当前的架构来说,我们环境内有多台DC,然后在不同的站点,我们是否需要在每台服务器上进行创建的,答案是不完全创建,为什么是不完全创建呢,因为我们了

Windows Server 2016 智能DNS(五)

Windows Server 2016 智能DNS(五)我们前面几篇文章介绍了如何Windows Server 2016 智能DNS的相关配置介绍,今天继续介绍Windows Server 2016 智能DNS的配置管理,前面一篇我们介绍了根据自己的需求来配置相关功能,那今天继续介绍相关记录的编辑操作.前面介绍的是子网.子网区域.及子网区域的记录进行的日常管理介绍,这些都是基本,最主要的还是策略,所以我们今天介绍策略的介绍:Policy:查看:get-DnsServerQueryResoluti

Windows server 2016上主从DNS同步解析

DNS域名解析服务,也可以做主从同步解析 实验环境 2台Windows server 2016 虚拟机 DNS1IP:192.168.1.10 DNS2IP:192.168.1.20 实验步骤 1.两台server主机上安装DNS服务 等待安装完成即可,DNS2上同样操作 2.DNS1上新建区域 安装完成后打开DNS管理器,在正向查找区域中新建区域xxy.com选择主要区域填写区域名称xxy.com主选择不允许动态更新之后下一步默认执行即可 3.新建的区域内添加DNS1和DNS2两台主机的解析如

Windows server 2016搭建DNS服务

今天跟大家简单介绍一下如何在Windows server 2016 上搭建DNS(域名解析)服务.DNS服务器要为客户端提供域名解析服务,必须要具备以下条件:1.有固定的IP地址:2.安装并启动DNS服务:3.有区域文件,配置转发器或配置根提示.满足条件后,下面开始安装DNS服务1.首先确认本机的IP地址2.在"开始"菜单中单击"服务器管理器",启动服务器管理器.在"服务器管理器"中选择"添加角色和功能",在打开的"