之前我们写过一篇博文谈到Azure内置的内网DNS服务器不能跨Cloud Service,而我们的虚拟机部署场景恰恰需要跨多个Cloud Service,所以目前只能选择用Azure虚拟机搭建自己的内网DNS服务器。这篇博文分享的是我们在Azure上搭建自己的内网DNS服务器的经过。

1、创建1台用于跑DNS服务的虚拟机,假设名叫dnsserver。

2、登录这台虚拟机,安装DNS服务。

3、安装时Windows警告虚拟机用的是动态IP,推荐使用静态IP。听从该警告,接下来我给虚拟机配置静态IP。

4、进入Azure管理控制台->Networks,在虚拟网中添加一名为DNS的子网,子网的目的仅是为了给DNS服务器保留内网IP,这里我们保留了3个IP(见下图)

在添加子网保存时,我们发现了这样的提示:

Changing the configuration of a network that is in use will briefly disrupt the connection between the virtual network and the local network. Are you sure you want to continue?

修改虚拟网设置竟然会引起网络短时间的中断!难道在生产环境中,如果要修改虚拟网设置,还要找个夜深人静、访问量最少的时间。即使这样,也是造成了正常服务的中断。这地方的设计还是有所欠缺。

5、回到需要安装DNS服务的虚拟机,给它指定静态IP(10.0.1.4),但是子网掩码与网关不知怎么填。算了,还是把这台虚拟机移到DNS这个子网(之前在FrontEnd子网),然后根据DHCP的信息进行填写。

6、但无法在子网间移动虚拟机,只能先“删除”这台虚拟机(在Azure中,删除虚拟机是指删除虚拟机的运行实例,从编程角度讲删除的是对象,而不是类文件)。

7、New Virtual Machine From Gallery -> My Disks,重新创建dnsserver虚拟机,创建时选择DNS这个虚拟网子网。

8、dnsserver虚拟机创建好之后,根据DHCP分配的IP信息,设置静态IP(见下图)。

(注:在保存静态IP设置时,远程桌面连接会闪断一下)

9、重新打开Server Manager,继续安装DNS服务。安装成功之后在其他虚拟机上用“telnet 10.0.14 53”命令测试一下,如果成功连接说明DNS服务工作正常。

10、在dnsserver虚拟机上打开DNS管理工具,新建一个名为cnblogs.local的区域,在创建时一定要选择允许动态更新(见下图)。

11、创建好区域之后,DNS服务器本身的配置工作就完成了。

12、打开Azure的Networks管理控制台,选择相应的虚拟网,进入Configure页面,添加之前配置的DNS服务器。

13、保存时出现如下的提示:

Changing the configuration of a network that is in use will briefly disrupt the connection between the virtual network and the local network. Are you sure you want to continue?
If you change the DNS server while the virtual network is in use, you have to restart the virtual machines to reset the DNS settings.

不仅会造成网络中断,而且为了使DNS生效,需要重启所有虚拟机。

14、保存成功后,发现原来为虚拟机提供DNS解析服务的Azure内置DNS服务器拒绝服务了,这个地方的设计不够人性化。

15、分别重启不在同一个Cloud Service中的blogserver2与passport这两台虚拟机,重启发现DNS的确切换为了我们设置的DNS服务器。

然后,测试dns解析,ping blogserver2,结果依然是:

Ping request could not find host blogserver2. Please check the name and try again.

再看一下blogserver2的IP信息,DNS后缀与DNS服务器的区域信息不匹配。

而且DNS服务器中也没有对应的blogserver2主机记录。

16、解决方法:打开blogserver2的TCP/IP高级设置,在“DNS”设置中,给“DNS suffix for this connection”添加后缀值cnblogs.local(与DNS区域名称保持一致),并且选中“Use this connection's DNS buffix in DNS registration”(让DHCP将主机名解析注册至DNS服务器中)。

passport这台虚拟机也进行同样的设置,然后重启这两台虚拟机。

17、blogserver2与passport这两台虚拟机重启成功后,就会在DNS服务器的区域中看到这两台服务器的解析记录。

18、在passport这台虚拟机中测试一下dns解析,运行命令:ping blogserver2,运行结果如下:

搞定!

配置要点小结

1、DNS服务器要用静态IP,划分专门的子网以保留IP给DNS服务器。

2、DNS服务器要允许动态更新。

3、每台需要DNS服务的虚拟机都需要修改TCP/IP设置,给“DNS suffix for this connection”添加后缀值cnblogs.local(与DNS区域名称保持一致),并且选中“Use this connection's DNS buffix in DNS registration”(让DHCP将主机名解析注册至DNS服务器中)。

4、每台需要DNS服务的虚拟机都需要重启。

如何解决DNS服务器的单点故障

再用虚拟机搭建一台DNS服务器,让这两台DNS服务器自动复制,然后在Azure虚拟网中设置两台DNS服务器。

转载于:https://www.cnblogs.com/cmt/p/3333022.html

云计算之路-试用Azure:搭建自己的内网DNS服务器相关推荐

  1. frps搭建自己的内网穿透服务器

    开发过程中,很多时候我们需要用到内网穿透,将自己的服务器映射到外网,下面说一下怎么用frps搭建自己的内网穿透服务器 frps Github地址 里面有中文文档,大家可以参考 服务器搭建 服务器搭建 ...

  2. 从创建服务器到搭建一台内网穿透服务器

    文章目录 创建服务器到搭建一台内网穿透服务器 解决VMware虚拟机ip地址经常变化的问题 安装lrzsz Linux中rz和sz命令用法详解 安装插件 安装jdk 安装maven 安装git 安装n ...

  3. 搭建内网DNS服务器教程

    内网DNS服务器的软件有许多,比如Bind9,dnsmasq,PowerDNS等等 而这次搭建内网dns服务的软件CoreDNS,CoreDNS是Golang编写的一个插件式DNS服务器,也是Kube ...

  4. 云计算之路-试用Azure:数据库备份压缩文件在虚拟机上的恢复速度测试

    测试环境:Windows Azure上海机房,虚拟机配置为大型(四核,7 GB 内存),磁盘情况见下图. 数据库备份压缩文件大于为12.0 GB (12,914,327,552 bytes),放置于T ...

  5. ubuntu_内网dns服务器搭建

    dns服务器:ubuntu 16.04,ip地址为:192.168.1.102 使用最傻瓜是的部署就是去 docker hub 拉一个 镜像下来,这里拉取的是 andyshinn/dnsmasq, h ...

  6. 云计算之路-试用Azure:拐弯抹角的负载均衡

    负载均衡是云服务商标配的免费服务.阿里云的对应产品叫SLB,UCloud的对应产品叫ULB,操作都很简单直观,进入负载均衡管理控制台,添加负载均衡,选择相应的虚拟机即可. 而Azure则完全不一样,在 ...

  7. frps搭建内网穿透服务器(frp隧道)

    frps搭建自己的内网穿透服务器 开发过程中,很多时候我们需要用到内网穿透,将自己的服务器映射到外网,下面说一下怎么用frps搭建自己的内网穿透服务器 frps Github地址 GitHub - f ...

  8. DNS服务——搭建企业内网DNS服务器的作用

    前言 DNS服务--服务端 和 客户端 配置 介绍了如何在DNS安装DNS服务,更改一下配置文件就可以依据根提示解析全球域名.既然使用互联网上的DNS服务器就可以解析全球域名,为何还要自掏腰包搭建DN ...

  9. 企业内网视频会议服务器搭建有哪些技巧?

    企业视频会议服务器搭建在企业内部网络保障安全,是目前众多企业考虑的重要因素点,那么,内网视频会议服务器搭建该如何选择视频会议服务器?今天,我们分享一下内网视频会议服务器的选择与搭建. 1.企业内网视频 ...

最新文章

  1. 《实施Cisco统一通信管理器(CIPT1)》一2.4 使用分布式呼叫处理的多站点WAN部署模型...
  2. 如何现在就用到 Ubuntu 21.10
  3. TIOBE 9月编程语言排行榜
  4. 呼叫中心如何规划好工作习惯
  5. mysql需要下载调试_Mysql安装和调试
  6. matlab输入集合,matlab关于集合的操作大全
  7. Tensorflow之RNN,LSTM
  8. C#调用Couchbase中的Memcached缓存
  9. 编写简单的连接MongoDB数据库C++程序 解决编译C++程序时链接MongoDB动态库失败的问题...
  10. 20万DBA都在关注的11个问题
  11. l2-029 特立独行的幸福 (25分)_霜降后盆栽幸福树,调整4个地方,不用再怕掉叶子了...
  12. apache camel 相关配置_Web基础配置篇(二): Maven配置及使用
  13. NodeJS 常用模块积累
  14. 40. Use multiple inheritance judiciously
  15. 你可能用得上的 N 款免费/开源中文字体
  16. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explo注册表病毒
  17. 如何快速下载CNCF Logos-收藏
  18. Permute 3.5.9 小巧便捷的多媒体文件格式转换器
  19. 使用Java设计简单的画图工具
  20. Real-ESRGAN

热门文章

  1. JAVA_if或者怎么用_Java条件语句if的使用方法介绍
  2. linux chown命令_Linux chown命令示例
  3. hibernate示例_Hibernate条件示例教程
  4. powermock私有字段_使用PowerMock的EasyMock私有方法模拟
  5. Java字符串replaceAll()方法
  6. C++编程问题--注意指针参数的传递
  7. 开课吧课堂:人工智能对金融行业的影响
  8. 点击编辑table变为可编辑状态
  9. express 学习记录
  10. HEL上清除Oracle10g clusterware的失败安装