对于跨多个站点部署的应用服务,会在各个站点都有服务器,并且对应不同的IP地址。我们希望每个客户端访问就近的资源。这个时候可以启用Windows DNS服务器中的子网掩码排序(子网优先)netmask ordering功能。其实Windows服务器默认是启用这个功能的,但是默认是按照C类地址划分的。只要DNS记录和客户端不在同一个C类地址内就会以轮询round robin的方式返回DNS查询记录。

由于一个站点中会有多个网段,通常服务器和客户端不会放在同一个C类网段里,这个时候就需要修改默认按C类IP返回最近的IP地址了。我的环境中,按A类划分了地址段。命令是dnscmd /config /localnetprioritynetmask 0x00ffffff。可以用dnscmd /info /localnetprioritynetmask来查询设置的值,Windows默认的是0x000000ff。

参数0x00ffffff的意思是,0对应的是网路号,1对应的是主机号。只要网络号相同就判断为和客户端的IP段是一致的,返回同网段的DNS记录对应的IP解析回到客户端。如果想改成按B类地址划分,那么参数就相应的变为0x0000ffff。如果网段划分不是标准的类别,可以手动计算。比如掩码是255.255.128.0对应的参数就是0x007fffff;掩码如果是255.255.240.0那么对应的参数就是0x00000fff。

对应的注册表键值HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\LocalNetPriorityNetMask

经过设置之后,发现客户端查询都生效了。但是服务自己查询却仍然是按照轮询的结果来的。似乎设置对自己并不生效。经过启用DNS调式日志,重启服务器都没有找到原因。最后发现,服务器的网卡DNS里配置的是127.0.0.1。这个是提升域控制器的时候默认自己写进去的,后来我也没把它改成服务器自己的IP。因为127.0.0.0这个段里并没有对应的DNS记录,所以就按轮询来返回查询结果了。如果你有2台域控制器,首选DNS要填对方的IP,然后备选填自己的IP,不要使用127.0.0.1这个默认设置。为了验证我的想法,在DNS里手动添加了127段的记录,并用nslookup查询。https://www.cnblogs.com/qishine/p/12768749.html



结果就能优先返回127段的地址了。如果同一个段中有多个地址,那么对于这些地址也将按轮询的方式返回。

Windows DNS服务器的子网掩码排序的更多相关文章

  1. Windows DNS服务器策略

    Windows 2016开始微软在Windows服务器中引入了针对DNS服务器的策略.可以方便灵活的控制DNS服务器响应客户端的请求.这里举个例子,阻止某个网段的DNS查询.思路是这样的,定义一个网段 ...

  2. IP地址,子网掩码,默认网关,DNS服务器知识详解(转)

    转自:http://www.cnblogs.com/JuneWang/p/3917697.html 为了更深入的学习TCP/IP协议,最近看了不少有关资料,收集整理记录如下,以备后面的使用和方便各位学 ...

  3. IP地址,子网掩码、默认网关,DNS服务器是什么意思?

    (一)  问题解析001.   问:  IP地址,子网掩码,默认网关,DNS服务器,有什么区别呀?我知道没有IP地址就不能上网,我也知道没设DNS就不能上外网,可它们都有什么功能,有什么区别呢?还有真 ...

  4. IP地址,子网掩码,默认网关,DNS服务器详解

    为了更深入的学习TCP/IP协议,最近看了不少有关资料,收集整理记录如下,以备后面的使用和方便各位学习: IP地址,子网掩码,默认网关,DNS服务器是什么意思? (一)  问题解析 001.   问: ...

  5. 计算机网络: IP地址,子网掩码,默认网关,DNS服务器详解

    楔子: 以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢? 学习IP地址的相关知识时还会遇到网络地址,广播地址,子网等 ...

  6. 计算机网络九:IP地址、子网掩码、默认网关、DHCP服务器、DNS服务器、WINS服务器

    一.IP地址与子网掩码 1.IP地址 ipv4下,ip地址=网络号+主机号. 2.子网掩码         子网掩码(subnet mask)又叫网络掩码.地址掩码.子网络遮罩,它是一种用来指明一个I ...

  7. 计算机网络: IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解

    楔子: 以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢? 学习IP地址的相关知识时还会遇到网络地址,广播地址,子网等 ...

  8. 【网络】IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解

    楔子: 以Windows系统中IP地址设置界面为参考(如图1), IP地址, 子网掩码, 默认网关 和 DNS服务器, 这些都是什么意思呢? 学习IP地址的相关知识时还会遇到网络地址,广播地址,子网等 ...

  9. IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解,DNS域名设计

    本文参考:<计算机网络: IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解> IP地址 概述 计算机要实现网络通信,就必须要有一个用于快速定位的网络地址.IP地址就是计算机在网络 ...

随机推荐

  1. Docker安装Portainer管理工具

    1.下载镜像 docker pull portainer/portainer 2.启动 docker run -d -p 9000:9000 --restart=always -v /var/run/ ...

  2. windows server2012R2 上 .net core IIS 部署--应用程序池 自动停止

    在windows server2016安装部署.NET CORE时,只需要将.net core应用程序池设置无托管,然后对应你项目的版本安装一个dotnet-hosting-2.2.6-win.exe ...

  3. 【FAQ】华为帐号服务报错 907135701的常见原因总结和解决方法

    很多开发者在接入华为帐号服务时,经常会出现907135701的报错.根据官网文档说明,错误码907135701表示: 这个错误码在安卓和鸿蒙上都会出现,导致该报错的原因有很多,开发者可以按照下面几点进 ...

  4. SQL语句编写

    mybatis插入数据 下面的item.avatarUrl取出的是java实体类里面的属性,所有需要大写 插入的SQL: INSERT INTO `one` VALUES(1,"第一个&qu ...

  5. LevelSequence源码分析

    前言 这篇文章主要讲的是Unreal LevelSequence RunTime的部分.即在游戏中运行Level Sequence的源码解析.(而且抛去Replicated 的Sequence,一般S ...

  6. C# 发送Http请求,传文件和其他参数

    /// <summary> /// httpWebRequest post by dic /// </summary> /// <param name="url ...

  7. v-model原理问题

    v-model的原理 很多同学在理解Vue的时候都把Vue的数据响应原理理解为双向绑定,但实际上这是不准确的,我们之前提到的数据响应,都是通过数据的改变去驱动DOM重新的变化,而双向绑定已有数据驱动D ...

  8. Kubernetes的整体架构

    K8s将集群中的机器划分为一个主节点和一群工作节点,在主节点上运行着集群管理相关的一组进程kube-apiserver.kube-controller-manager 和 kube-scheduler ...

  9. SpringBoot连接MySQL配置(yml)?

    SpringBoot连接MySQL 需要导入的依赖 <!--这是直接在创建springboot项目时直接勾选生成的--><!--jdbc--><dependency> ...

  10. 【springcloud】环境搭建与Rest使快速上手

    SpringCloud环境搭建 --- Rest使用 个人主页:https://www.cnblogs.com/xbudian/ 今天来到SpringCloud的学习,我们从spring boot微服 ...