zoukankan      html  css  js  c++  java
  • 关于DNS

    网络服务——DNS域名系统服务

    1. DNS介绍

    1.1 什么是域名?

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的,在互联网中来标识某一台计算机或者计算组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可以重复的特性。

    IP地址难以记忆,为了方便记忆。域名与IP一一对应的映射关系。

    1.2 什么是DNS
    域名系统(Domain Name System,缩写为DNS)是互联网的一项服务。将域名与IP地址间的映射关系做一个记录,以及查询的功能。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便的访问到网站的一种服务。IP地址是网络上表示站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程,域名解析工作由DNS服务器来完成,可以理解为DNS就是翻译官。

    正向解析: 域名  --->   IP地址

    反向解析:  IP地址 --->   域名(过滤邮件会用到)

    1.3 域名的组成与分类

    常见格式:www.baidu.com  (浏览器会默认补成完整格式)

    完整格式:www.baidu.com.

    . :称为根域,可以省略不写,是域名的起始点。主根,辅根,镜像根

    com : 顶级域,由ICANN组织指定管理的。分类:国家地区域名:cn(中国)、hk(香港)、sg(新加坡)等。

    通用顶级域名:com(商业机构)、org(非营利组织)、edu(教育机构)等。

    新通用顶级域名:red(红色,热情) top(顶级的高端的)

    baidu :二级域(注册域),可由个人或组织申请注册。

    www :三级域(子域),服务器网站名代表。

    主机名 s1.www.baidu.com 中的s1就是主机名,用来表示具体的一台主机。

    1. 域名解析过程

    1) 客户端访问www.baidu.com.:80(浏览器自动补齐:80  对应web服务器对应的端口。)

    2) 客户端首先先查询自己的host文件,查看该文件内是否有www.baidu.com 的解析记录。这个文件优先级更高相比DNS。如果有则直接返回给浏览器。

    3) 在本机中没有,客户端继续在本机内查询DNS的解析缓存,若有缓存则直接返回给浏览器。

    4) 上述两个地方都找不到,客户端查看网卡上设置的DNS服务器地址,访问DNS服务器,查询域名的解析结果。若DNS服务器有解析记录则将IP地址返回给客户机

    1. 详细过程:

    1) 客户机首先查看本地hosts文件,如果有则返回,否则进行下一步。

    2) 客户机查看本地缓存,是否存在本条目的缓存,有则直接返回,否则进行下一步

    3) 将请求转发给指向的DNS服务器

    4) 查看域名是否本地解析(本地有解析库,DNS的缓存是指不在解析库中的域名IP解析,是解析库之外的。解析库权威性高于缓存),是则本地解析返回,否则进行下一步。

    5) 本地DNS服务器,变成寻找域名的发起者,访问根域,顶级域,二级域寻找对应域名。本地DNS服务器在访问自己未访问过得域名时会将记录保存在缓存中,下次访问更快。

    递归查询: 客户端与本地DNS服务器之间的查询

    迭代查询: 客户端是本地的DNS服务器  查询目标是根域,顶级域等服务器之间的查询

    1. DNS--分布式DNS模型

    1) 分布式DNS服务器:根域中保存所有顶级域的IP地址

    顶级域中保存所有二级域的IP地址

    二级域中记录所有三级域的IP地址

     而单个DNS服务器与上述体系没有直接关系,他先访问根域找到顶级域进而依次查找。

    2) 同一个任务由不同步骤共同完成的过程叫分布式(例如,生产车间中某一条流水线,流水线上有很多的步骤,不同步骤之间称为分布式)

    3) 负载均衡: 客户机连接DNS负载均衡服务器,进而分发任务给多个DNS服务器,然后DNS对数据进行解析。将用户的请求分配到多个功能相同的服务器上(类似于,一个生产车间中的多条相同功能的流水线)

      2.DNS服务器不可以随便部署,需要授权(ICAN)。一个虚假的DNS服务器会将域名解析为错误危险的IP。运维常用,个人网站的解析以及负载均衡的应用。

     

    开始配置:

    1. 安装

    [root@dhcp ~]# yum install -y dhcp

    [root@dhcp ~]# rpm -ql dhcp

    /etc/dhcp/dhcpd.conf IPV4配置文件(点分十进制)

    /etc/dhcp/dhcpd6.conf IPV6配置文件(:分十六进制)

    /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

    /usr/share/doc/dhcp-4.2.5/dhcpd6.conf.example

    配置文件的帮助

    /usr/share/man/man5/dhcpd.conf.5.gz

    /usr/share/man/man5/dhcpd.leases.5.gz

    man手册

    /var/lib/dhcpd/dhcpd.leases

    /var/lib/dhcpd/dhcpd6.leases

    租约文件

    租约:当C使用S的IP,达到租约时间的时候,如果能和S通信,那么继续使用S分配的IP;如果不能和S通信,那么C断开与原S的连接,继续在局域网发广播请求IP,如果找不到相应的S,

    那么就会配置一个 169.254.x.x IP(B类)。

    2. 配置

    [root@dhcp /etc/dhcp]# vim dhcpd.conf  配置文件

    subnet 172.16.0.0 netmask 255.255.0.0 {

    ##网段和子网掩码

      range 172.16.0.100 172.16.0.200;

    ##IP地址池

      option domain-name-servers 211.137.32.178;

    ##DNS-server

      option routers 172.16.0.254;

    ##网关

      default-lease-time 600;

    ##默认租约时间,秒

      max-lease-time 7200;

    ##最大租约时间,秒

    [root@dhcp ~]# vim /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example 样板

    3. 启动

    [root@dhcp ~]# systemctl start dhcpd

    [root@dhcp ~]# systemctl enable dhcpd

     

    [root@dhcp ~]# netstat -anupl | grep dhcp

    udp   0   0 0.0.0.0:67  0.0.0.0:*       2540/dhcpd

     

    [root@dhcp ~]# vim /etc/services

    bootps          67/tcp                          # BOOTP server

    bootps          67/udp

    bootpc          68/tcp          dhcpc           # BOOTP client

    bootpc          68/udp          dhcpc

     

    dhcp-server: udp/67

    dhcp-client: udp/68

    S 一个端口服务固定 C 端口不固定

    1. 测试

    客户端修改IP地址的获取方式

    [root@centos7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32

    BOOTPROTO=dhcp #<--

     

    [root@centos7 ~]# /etc/init.d/network restart

     

    [root@centos7 ~]# ifconfig

    ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

            inet 172.16.0.107  netmask 255.255.0.0  broadcast 172.16.255.255

     

    [root@centos7 ~]# route -n

    Kernel IP routing table

    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

    0.0.0.0         172.16.0.254    0.0.0.0         UG    100    0        0 ens32

     

    [root@centos7 ~]# cat /etc/resolv.conf

    # Generated by NetworkManager

    nameserver 211.137.32.178

     

    服务端查看日志:

    [root@dhcp ~]# tail -0f /var/log/messages

    Aug 13 13:58:11 dhcp dhcpd: DHCPDISCOVER from 00:0c:29:38:78:64 (centos7) via ens32

    Aug 13 13:58:12 dhcp dhcpd: DHCPOFFER on 172.16.0.107 to 00:0c:29:38:78:64 (centos7) via ens32

    Aug 13 13:58:12 dhcp dhcpd: DHCPREQUEST for 172.16.0.107 (172.16.0.21) from 00:0c:29:38:78:64 (centos7) via ens32

    Aug 13 13:58:12 dhcp dhcpd: DHCPACK on 172.16.0.107 to 00:0c:29:38:78:64 (centos7) via ens32

     

    服务端查看租约文件:

    [root@dhcp ~]# less /var/lib/dhcpd/dhcpd.leases

  • 相关阅读:
    Notepadd ++ PluginManager安装
    Srping cloud Ribbon 自定义负载均衡
    Spring cloud Eureka 和 Zookeeper 比较
    Spring cloud info信息显示
    kafka 在Windows端安装 找不到或无法加载主类 的解决方案
    Linux kafka 单机安装
    mina
    @bzoj
    @51nod
    @topcoder
  • 原文地址:https://www.cnblogs.com/plutozzl/p/11348906.html
Copyright © 2011-2022 走看看