zoukankan      html  css  js  c++  java
  • Ubuntu系统下静态DNS配置详解

    1.DNS服务的简介:

    DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名。

    因为实验室实现的拟态存储系统需要实现动态变更ip地址,所以需要搭建一个dns服务器,并且将需要查询变更ip地址的服务器都绑定到同一台dns服务器之上。通常在RedHat系列(eg:Fedora,Centos)的系统之中,当我们需要变更dns服务器是一件很简单的事情,可以直接修改对应的/etc/resolv.conf文件。添加或修改nameserver后面的ip地址就可以了。但是我傻乎乎的以为在Debian系列(eg:Ubuntu,Mint)之下也是这样的设置的,似乎一改也能用,我就没有细究了。

    某天断电重启之后,Ubuntu系统上DNS服务集体失效,而后排查发现/etc/resolv.conf文件被覆盖写了,原先配置的dns信息全部消失。如下图所示:

    Screenshot from 2017-11-13 08:24:46.png

    囧rz! Ubuntu都告诉你了,DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN。

    2.系统环境:

    系统平台:Ubuntu 14.04

    我们来梳理一遍Ubuntu下对resolv.conf的编辑规则,就可以总结出来怎么对症下药去处理静态dns的配置重启失效的问题了。

    流程分析:
      1. 在Ubuntu系统网络设备启动的流程中,会依赖/etc/network/interface的配置文件初始化网络接口,所以直接在/etc/network/interface之中配置好对应的dns服务器会最先写入/etc/resolv.conf。所以我们可以在其中添加如下内容:

                  dns-nameservers 180.76.76.76 //支持一下,百度的DNS服务器
        
    • 2.接下来NetworkManager会接力填充/etc/resolv.conf。依赖配置文件/etc/NetworkManager/NetworkManager.conf,通过修改这个配置文件中的dns项,我们也可以实现静态dns配置的目的:

       dns=119.29.29.29  //腾讯的DNS服务器
      
    • 3.如果你错过了前面两步,没关系,我们还有机会补救。接下来resolv会读取自己的dns配置文件,写入/etc/resolv.conf。依赖的配置文件是/etc/resolvconf/resolv.conf.d/tail。通过添加dns服务器的方式,我们也可以实现写入我们静态配置的dns服务器。

        nameserver=223.5.5.5  //阿里的DNS服务器
      

    小结:详细梳理了在Debian系列发行版之下Linux静态DNS服务器的绑定流程,我们可以使用上述三种方法的任意一种。(囧rz,每种方法语法都不一样,坑爹的Linux)当然RedHat系列的发行版可以参考上述的内容,静态配置dns服务器流程应该也是大同小异。若有疏漏,望指点斧正。

  • 相关阅读:
    Spark架构分析
    mr运行出错,解决办法
    hbase调优
    虚拟机长时间不关造成的问题
    crontab 使用
    虚拟机克隆网络问题的解决
    ligerui.grid.extend.rowSpan
    64位下安装Scrapy 报错 "could not find openssl.exe" 的解决方法。
    EventBus 事件总线之我的理解
    MongoDB 系列(二) C# 内嵌元素操作 聚合使用
  • 原文地址:https://www.cnblogs.com/happenlee/p/7824836.html
Copyright © 2011-2022 走看看