Linux网络实战—— DNS配置

  • Linux网络实战 (一) —— DNS配置
    • Linux 本机DNS配置
      • Linux主机名配置文件
      • 添加一个新的主机名映射
      • 删除一个主机名映射
      • 实例
    • 安装DNS服务软件
      • 源码安装BIND
      • 在线安装BIND
    • DNS服务器启动/关闭
      • Linux service 命令
      • bind服务管理
    • DNS服务器配置
      • 正解与反解的Zone意义
      • Bind配置文件介绍

Linux网络实战 (一) —— DNS配置

Linux 本机DNS配置

  无论在局域网还是Internet上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名(Domain)。域名只是在公网(internet)中存在,每个域名都对应一个IP地址,但一个IP地址可以对应多个域名。

  在一个局域网中,每台机器都有一个主机名(hostname),为了便于主机与主机之间的区分,就可以为每台机器设置主机名,以容易记忆的方法来相互访问。

  主机名(hostname)和域名(Domain)的区别:主机名的含义是机器本身的名字,域名是方便记录IP地址才做的一种IP映射;二者有共性:都能对应到一个唯一的IP上,从应用场景上可以这么简单理解二者的区别:主机名用于局域网中;域名用于公网中。
  

Linux主机名配置文件

  大多数Linux系统的主机名的配置文件是/etc/hostshosts - The static table lookup for Linux hostname(主机名查询静态表);由于 Linux发行版本众多,与主机名相关的配置文件有时也有所不同。

  /etc/hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机器的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过Linux hostname来访问。

/etc/hosts文件里存放的内容:

  可以看到/etc/hosts文件中的每行分为两部分内容,第一部分表示IP地址,第二部分表示该IP地址对应的主机名,可以看到第一行的内容是127.0.0.1 localhost,现在明白了为什么输入localhost也可以访问本机,正是因为在/etc/hosts文件中配置了该项,所以在使用localhost访问本地也就相当于使用127.0.0.1访问,知道IP地址以127开头的都是表示本机。

  通过以上配置文件的内容还知道,也可以使用ubuntu去访问本地,也就是说localhostubuntu都是该主机的名称。
  

添加一个新的主机名映射

案例演示:通过修改/etc/hosts文件,新添加一条映射记录,新的主机名为test,其对应的IP地址为127.0.0.1,具体使用如下步骤:

追加一行 127.0.0.1 test (sudo vim /etc/hosts)ping -c 5 test

添加一行新记录:

验证:

  可以看到此刻也可以通过test来访问127.0.0.1了。其中ping -c 5 test命令表示向test主机发生5个 ICMP 数据包。
  

删除一个主机名映射

  案例演示:通过修改/etc/hosts文件,删除一条映射记录,例如将上个实例中新添加的记录删除掉或者注释起来,具体使用如下步骤:

删除127.0.0.1 test 行(sudo vim /etc/hosts)ping -c 5 test

注释一行记录:

验证:

  可以看到是无法访问test主机的,一共发生了5个数据包,这5个数据包都丢失,也就是说对方主机是不可访问的。

实例

配置本地主机名与IP地址的映射

  1. 新添加一条映射记录127.0.1.1 --> newLocalhost

  2. 新添加一条映射记录127.1.1.1 --> www.baidu.com

    1. vim /etc/hosts2. 127.0.1.1 newLocalhost3. 127.1.1.1 www.baidu.com4. Ctrl + c5. :w6. :exit
    

安装DNS服务软件

   BIND (Berkeley Internet Name Domain)是Domain Name System(DNS) 协议的一个实现,提供了DNS主要功能的开放实现,包括:

  1. 域名服务器 (named);

  2. DNS解析库函数;

  3. DNS服务器运行调试所用的工具。

  BIND是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,按照ISC的调查报告,BIND是世界上使用最多最广泛的域名服务系统。

  Linux系统安装软件和Windows系统上安装软件不太一样,在Windows上只需要下载需要安装的软件二进制文件(常见的格式是.exe),然后双击即可进行安装。而Linux系统上安装软件的常见方式有如下几种:

  1. 源码编译安装

    源码安装步骤是下载源码到本机,然后对源码进行编译,生成可执行文件,然后将生成的可执行文件拷贝到对应的安装目录即可,常见的软件源码包格式为.tar.gz.tar.bz2等;

  2. 软件包安装

    软件包安装步骤是下载好已经编译好的可执行文件包,然后使用对应的包管理工具进行安装,不同的Linux系统使用不同的包管理工具,常见包管理工具如下所示:

    • Ubuntu/Debian 系统使用 dpkg 进行管理软件包(软件包的后缀为.deb);

    • Redhat/CentOS 系统使用 rpm 进行管理软件包(软件包的后缀为.rpm);

  3. 在线安装

    在线安装是指不需要用户亲自下对应软件的包,但是需要对应系统能够访问互联网,不同的Linux系统使用不同的工具进行在线安装软件,常见的在线安装软件的工具如下所示:

    • Ubuntu/Debian 系统使用 apt-get 进行在线安装软件;

    • Redhat/CentOS 系统使用 yum 进行在线安装软件;

  建议使用在线安装软件,离线安装软件常见的问题是软件间的依赖问题,如果离线安装软件,则必须要手动安装依赖的库,而在线安装则只需要一条命令完成所有的操作,在线安装会自动去安装依赖库;
  

源码安装BIND

  bind软件依赖 openssl-1.0.0e.tar.gz 软件包,所以在安装bind软件前,需要先安装openssl软件。

安装openssl依赖包步骤如下所示:

1. 解压源码包:tar zxvf openssl-1.0.0e.tar.gz 2. 进入源码文件夹:cd openssl-1.0.0e/3. 配置(生成Makefile):./config --prefix=/usr/local/4. 依赖分析:make depend5. 编译源码:make6. 安装源码:sudo make install

[配置成功执行结果(./config --prefix=/usr/local/)]

[make depend成功执行结果]

[sudo make install成功执行结果]

下载bind源码包,此处使用的是 bind-9.9.2.tar.gz 。

具体安装步骤如下所示:

1. 解压源码包:tar zxvf bind-9.9.2.tar.gz
2. 进入源码文件夹:cd bind-9.9.2/
3. 配置(生成Makefile):./configure --sysconfdir=/etc/bind
4. 编译源码:make
5. 安装源码:sudo make install

[配置成功执行结果(./configure --sysconfdir=/etc/bind)]

[sudo make install成功执行结果]

  

在线安装BIND

本实验环境使用的系统是Ubuntu,所以使用apt-get工具来在线安装软件,具体步骤如下所示:

更新软件源:sudo apt-get update安装httpd:sudo apt-get install bind9

如果安装成功则会出现如下界面:


注意:如果当前用户是root,则执行以上安装命令时不需要加sudo


DNS服务器启动/关闭

  当安装成功bind软件后,ubuntu12.04系统下默认bind服务是开启的,但是本平台的测试环境默认是关闭的。

  本实验环境使用的系统是Ubuntu,当使用apt-get在线安装软件后,通常会在/etc/init.d/目录下生成一个启动该服务软件的脚本,例如,使用apt-get安装bind软件后,可以看到在/etc/init.d/目录下生成一个名为bind9的脚本文件,该脚本可以用来控制bind服务的启动与关闭等信息。


[bind服务脚本文件]

  

Linux service 命令

Linux系统中使用service命令来控制系统服务,它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

service命令的使用格式:

service 服务名 控制命令
  • 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
  • 控制命令:系统服务脚本支持的控制命令。

常见的控制命令:

1. start:
2. 启动该服务;
3. stop:关闭该服务;
4. restart:重新启动该服务;
5. status:查看该服务状态;

注意并不是所有的服务都支持以上4种控制命令,不同的服务提供不同的控制命令,大多数服务都支持以上4种常用的控制命令。
  

bind服务管理

当成功安装bind后,接下来,使用service命令来管理bind服务。

将在以下案例演示中分别介绍如何启动、关闭、重新启动bind服务,以及查看bind服务状态。

实例1

查看bind服务状态,可以使用如下命令:

sudo service bind9 status

可以看到当前bind服务处于running状态,也就是运行状态。

实例2

关闭bind服务并且查看是否关闭成功,可以使用如下命令:

sudo service bind9 stopsudo service bind9 status

可以看到首先将bind服务的进程ID(9841)关掉,然后查看bind的状态可以看到找不到对应的bind服务对应的进程,也就是说bind没有运行。

实例3

重新启动bind服务并且查看是否重新启动成功,可以使用如下命令:

sudo service bind9 restartsudo service bind9 status

可以看到当前bind服务被重新启动,其实重新启动就是先执行stop然后执行start,上图可以看到在stop的时候显示failed,原因是当前的bind服务是没有启动的。

注意:如果当前用户是root,则执行以上命令时不需要加sudo


DNS服务器配置

  域名Internet上某一台计算机或计算机组的名称,是IP地址的映射。域名解析实际上就是把域名映射回IP地址。

  域名解析的过程:当一个浏览者在浏览器地址框中打入某一个域名,或者从其他网站点击了链接来到了这个域名,浏览器向这个用户的上网接入商发出域名请求,接入商的DNS服务器要查询域名数据库,看这个域名的DNS服务器是什么。然后到DNS服务器中抓取DNS记录,也就是获取这个域名指向哪一个IP地址。在获得这个IP信息后,接入商的服务器就去这个IP地址所对应的服务器上抓取网页内容,然后传输给发出请求的浏览器。

  Linux/etc/resolv.conf文件是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。

  

正解与反解的Zone意义

  DNS系统最主要的功能就是互查主机名与IP,由于计算机在网络上只认识IP地址,所以,一般来说,称由主机名查找IP的过程为正解,由IP查询得到主机名为反解。

  Zone(区域):一个正解或反解的设置就是一个zone,通常一个配置文件就是一个zone

  

Bind配置文件介绍

bind9 配置文件被保存在/etc/bind/目录下

[bind9配置文件]

常见配置文件说明:

1. named.conf:Bind主配置文件;
2. named.conf.options:全局选项;
3. named.conf.default-zones:配置zone文件;
4. db.root:根服务器指向文件;
5. db.local:localhost正向区文件,用于将名字localhost转换为本地回送IP地址 (127.0.0.1);
6. db.127:localhost反向区文件,用于将本地回送IP地址(127.0.0.1)转换为名字localhost。

实例1:

假设有域名: test.ubuntu.com,如何配置其对应的IP为: 10.70.110.40,具体使用如下步骤:

  • 向文件/etc/bind/named.conf.default-zones添加如下内容;
zone "test.ubuntu.com"{type master;    file "/etc/bind/db.test.ubuntu.com";
};zone "110.70.10.in-addr.arpa"{type master;file "/etc/bind/db.10";
};

[修改/etc/bind/named.conf.default-zones文件]

  • 新建文件/etc/bind/db.test.ubuntu.com并添加如下内容(可以拷贝db.local,在其基础上进行修改);
;
; BIND data file for local loopback interface
;
$TTL    604800
@IN      SOA     test.ubuntu.com. root.test.ubuntu.com. (2         ; Serial                         604800         ; Refresh                            86400         ; Retry                        2419200         ; Expire                         604800 )       ; Negative Cache TTL
;
@       IN      NS      test.ubuntu.com.
@       IN      A       10.70.110.40

[新建/etc/bind/db.test.ubuntu.com文件]

  • 新建文件/etc/bind/db.10并添加如下内容(可以拷贝db.127,在其基础上进行修改);
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     test.ubuntu.com. root.test.ubuntu.com. (1         ; Serial                          604800         ; Refresh                           86400         ; Retry                        2419200         ; Expire                         604800 )       ; Negative Cache TTL
;
@       IN      NS      test.ubuntu.com.
40      IN      PTR     test.ubuntu.com.

[新建/etc/bind/db.10文件]

  • 修改DNS服务器搜索顺序,将本地作为DNS搜索的第一搜索目录(sudo vim /etc/resolv.conf);

[修改/etc/resolv.conf配置文件]

  • 重新启动bind服务器,然后使用host命令去查询test.ubuntu.com域名与IP 10.70.110.40是否关联起来。
sudo service bind9 restarthost test.ubuntu.comhost 10.70.110.40

[查询结果] :

**注意:**如果没有host命令则需要进行单独安装host命令(sudo apt-get install host)

可以看到test.ubuntu.com域名与10.70.110.40IP地址已经绑定在一起了。


完了

Linux网络实战 (一) —— DNS配置详解(安装与使用DNS)相关推荐

  1. linux下DNS配置详解

    linux下DNS配置详解 DNS 是域名系统 (Domain Name Server) 的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务.在Internet上域名与IP地址之间是一一对应的 ...

  2. Linux下的samba服务配置详解

    Linux下的samba服务配置详解 一.Samba介绍 二.Samba工具及特性 三.搭建环境介绍 四.Samba配置步骤 1.服务端操作 2.在客户端操作 五.测试用户的权限情况 一.Samba介 ...

  3. linux网络编程--select/poll/epoll 详解

    目录 参考链接 epoll函数 close epoll event EL/LT ET Edge Trigger 边沿触发工作模式 LT Level Trigger 水平触发工作模式 epoll 源码解 ...

  4. linux软件包管理工具,Linux 软件包管理器-----yum配置详解一

    一.yum简介 Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定 ...

  5. BIND DNS配置详解

    原文链接:http://www.chinalinuxpub.com/~linuxpub/bbs/showthread.php?t=46297 前面所介绍的服务器服务大多是用在内部网络环境中的﹐不过﹐以 ...

  6. linux DNS配置详解

    做DNS需要注意的几点: 1 权限 2 软链接的位置 先编辑配置文件 接着做记录 cp name.localhost xxx.xxx.zone(其他的都可以,只要和配置文件里面的一样) cp name ...

  7. linux下nginx部署以及配置详解

    1.下载源码包解压编译 启动多个,请看:在linux系统下安装两个nginx以及启动 查看nginx包路径:http://nginx.org/download/,两种下载方式: 1.在官网下载使用Xf ...

  8. Linux 内核编译步骤及配置详解

    一.linux体系结构 从大面上来说,linux体系结构分为: 1 )用户空间:C库.用户应用程序: 2 )内核空间:系统调用接口.内核.硬件平台依赖代码. 具体来讲,Linux系统一般有4个主要部分 ...

  9. RHEL5下DNS配置详解3

    view 是bind中的另外的一个技巧他在有防火墙的环境中非常有用.View允许你呈现出不同的配置文件给不同的客户,当你的服务器既要给内网的用户又要给外网的用户提供查询服务时使用view将是非常方便的 ...

最新文章

  1. 【GO语言】合理配置GOMAXPROCS提升一倍以上的性能
  2. 跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题
  3. Ubuntu16.04 休眠状态无法唤醒解决方案
  4. java xml map 方法_JAVA XML转换MAP 方法
  5. C++ 实现分块查找(顺序存储结构)(完整代码)
  6. C++关键字速查手册
  7. Element-UI-快速入门(极简教程)
  8. mysql 第二天数据_MySQL入门第二天------数据库操作
  9. 什么是堆栈?内存中划分出按FIL0方式操作的特殊区域,叫做堆栈
  10. 软件设计开发笔记2:基于QT设计串口调试工具
  11. 基于群晖DS216+II的家庭存储解决方案
  12. 【IoT】 产品设计:结构设计之ABS塑料表面处理工艺
  13. 人工智能中常用的词汇
  14. SVG中中文字体的显示
  15. CentOS-7磁盘扩容之殇
  16. 销量惨淡,广告费ACOS飙升
  17. 写点看Harvard CS50 公开课的感受
  18. 2.Oracle数据库SQL开发之 SQL DEVELOPER使用
  19. 2D横板跑酷游戏Boxman
  20. alv oo sap 多个_OO ALV 全屏显示

热门文章

  1. 探秘C语言扫雷游戏实现技巧
  2. 【代码解读】超详细,YOLOV5之build_targets函数解读。
  3. 2021-人生励志小感言
  4. springboot加入swagger
  5. “一元秒杀”活动竟能做到如此的效果,蛋糕店只用4天收款10万
  6. (亚马逊第一步)撸一个亚马逊服务器从注册到登录所需几步
  7. emmet的详细使用方法
  8. 矩形中间点和四个顶点之前的转换问题
  9. 一个想创业的奇葩程序员的故事
  10. @拔赤:Web前端开发十日谈