• DNS域名解析


    DNS域名解析

    DNS的域名

    DNS是域名系统的简称。

    域名和IP地址之间的映射关系。

    互联网中,IP地址是通信的唯一标识。逻辑地址。

    访问网站,域名,IP地址不好记,域名朗朗上口,好记。

    域名解析的目的就是为了实现,访问域名就等于访问ip地址。

    在访问域名的时候,通过dns解析,把域名映射的IP地址解析出来,然后实际上访问的还是域名映射的IP地址。

    类似于导航,输入域名之后,就可以定位出他的ip地址,然后访问。

    www.baidu.com

    访问百度,就是计算机向dns服务器发起查询请求,dns搜索自己的数据库,域名和ip的映射关系,然后把IP地址返还给计算机,计算机访问的还是域名对应的ip地址。

    dns系统的作用

    域名体系结构:

    www.baidu.com.cn.(从右往左看)

    . 根域 根域名dns服务器,专门负责解析根域

    cn. 一级域,一般国家或者地区的名称。jp. uk. hk. us.

    13个根域

    10个在美国

    日本 1

    英国 1

    瑞典 1

    ipv4 地址根服务器,国内有2个镜像服务器

    ipv6 根域服务器,我国1主3从。美国1主2从。

    com.二级域 组织名称 com 商业组织 edu 教育机构 org 非盈利机构 net 运营商 gov 政府机构

    baidu. 三级域(域名)这个是要花钱买的。(子域)

    www. 主机名,就是一台具体的计算机。

    DNS解析使用的协议和端口,协议tcp和udp 端口53

    tcp的53端口用于连接DNS服务器

    udp的53端口用于解析DNS。

    DNS域名的长度限制每一级的域名长度限制是63个字符,域名的总长度不能超过253个字符。

    *DNS域名解析的过程:(面试重点)*

    顶级域 = 一级域

    查询过程中的迭代和递归

    迭代:

    从根域到一级域到二级域

    递归:

    结果返回给用户的过程是递归

    DNS解析的优先级:

    hosts 本地文件 优先级是最高的。只对当前主机有效。

    DNS服务器(运营商)第二个

    hosts文件

    linux /etc/hosts

    实验1:

    如何实现域名解析(内网 局域网内部的域名解析。)

    bind用来做局域网内部的域名解析。

    内网的DNS不需要注册。仅限内部使用。

    一、正向解析

    test2 192.168.60.20 bind

    test3 192.168.60.30 bind

    /etc/named.conf bind的主配置文件
    ​
    /etc/named.rfc1912.zones    区域配置文件
    ​
    /var/named/named/localhost  配置数据文件  解析地址

    zone "xy102.com" IN { 表示正向解析,xy102.com域名 type master;
    类型为主区域
    file "xy102.com.zone",
    区域数据文件的文件名
    allow-update { none; 
    区域动态更新的权限,none禁止区域动态更新

    操作:

    1、关闭防火墙

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# setenforce 0

    2、安装bind软件包

    [root@localhost ~]# yum -y install bind

    3、更改主配置文件

     [root@localhost named]# vim /etc/named.conf 
     12 options {
     13         listen-on port 53 { 192.168.60.20; };
     14         listen-on-v6 port 53 { ::1; };
     15         directory       "/var/named";
     16         dump-file       "/var/named/data/cache_dump.db";
     17         statistics-file "/var/named/data/named_stats.txt";
     18         memstatistics-file "/var/named/data/named_mem_stats.t    xt";
     19         recursing-file  "/var/named/data/named.recursing";
     20         secroots-file   "/var/named/data/named.secroots";
     21         allow-query     { any; };

    4、修改区配置文件

    [root@localhost named]# vim /etc/named.rfc1912.zones 
    在24行后加入这几行
     25 zone "xy102" IN {
     26         type master;
     27         file "xy102.com.zone";
     28         allow-update { none; };
     29 };

    5、复制一个xy102.com.zone配置文件

    [root@localhost named]# cp -a named.loopback xy102.com.zone

    6、更改xy102.com.zone配置文件

    [root@localhost named]# vim xy102.com.zone 
    $TTL 1D
    @       IN SOA  xy102.com. admin.xy102.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      xy102.com.
            A       192.168.60.20
    IN MX   10      mail.xy102.com.
    www IN  A       192.168.60.100
    mail IN A       192.168.60.110

    7、更改/etc/resolv.conf配置文件

    [root@localhost named]# vim /etc/resolv.conf
    # Generated by NetworkManager
    nameserver  192.168.60.20

    8、重启named文件

    [root@localhost named]# systemctl restart named

    9、模拟正向解析

    [root@localhost named]# nslookup www.xy102.com
    Server:     192.168.60.20
    Address:    192.168.60.20#53
    ​
    Non-authoritative answer:
    Name:   www.xy102.com
    Address: 154.95.221.233

    二、反向解析

    1、在正向解析的基础上修改区配置文件

    [root@localhost named]# vim /etc/named.rfc1912.zones 
    #在29行后加这5行
     30 zone "60.168.192.in-addr.arpa" IN { 31         type master;
     32         file "xy102.com.zone.local";
     33         allow-update { none; };
     34 };      

    2、复制xy102.com.zone.local配置文件

    [root@localhost named]# cp -a xy102.com.zone xy102.com.zone.local

    3、更改xy102.com.zone.local配置文件

    [root@localhost named]# vim xy102.com.zone.local 
    $TTL 1D
    @       IN SOA  xy102.com. admin.xy102.com. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      xy102.com.
            A       192.168.60.20
    100 IN PTR      www.xy102.com.
    110 IN PTR      mail.xy102.com.

    4、重启named文件

    [root@localhost named]# systemctl restart named

    5、模拟反向解析

    [root@localhost named]# nslookup 192.168.60.100
    100.60.168.192.in-addr.arpa name = www.xy102.com.

    三、主从服务器解析

    1、关闭test2和test3防火墙

    [root@localhost ~]# systemctl stop firewalld.service 
    [root@localhost ~]# setenforce 0

    2、在test2和test3安装bind软件包

    [root@localhost ~]# yum -y install bind

    3、在test2里更改/etc/resolv.conf文件

    [root@test2 named]# vim /etc/resolv.conf
    # Generated by NetworkManager
    nameserver  192.168.60.20
    nameserver  192.168.60.30                        

    4、在test2里更改区域配置文件

    [root@test2 named]# vim /etc/named.rfc1912.zones 
    #在34行后加入这10行
     35 zone "xy102" IN { 
     36         type master;
     37         file "xy102.com.zone";
     38         allow-transfer { 192.168.60.30; };
     39 };
     40 zone "60.168.192.in-addr.arpa" IN { 
     41         type master;
     42         file "xy102.com.zone.local";
     43         allow-transfer { 192.168.60.30; };
     44 };

    5、在test3里更改/etc/resolv.conf配置文件

    [root@test3 ~]# vim /etc/resolv.conf
    # Generated by NetworkManager
    nameserver 192.168.60.20
    nameserver 192.168.60.30

    6、在test3里更改/etc/named.conf配置文件

    [root@test3 ~]# vim /etc/named.conf
     12 options {
     13         listen-on port 53 { 192.168.60.30; };
     14         listen-on-v6 port 53 { ::1; };
     15         directory       "/var/named";
     16         dump-file       "/var/named/data/cache_dump.db";
     17         statistics-file "/var/named/data/named_stats.txt";
     18         memstatistics-file "/var/named/data/named_mem_stats.txt";
     19         recursing-file  "/var/named/data/named.recursing";
     20         secroots-file   "/var/named/data/named.secroots";
     21         allow-query     { any; };

    7、在test3里更改/etc/named.rfc1912.zones配置文件

     [root@test3 ~]# vim /etc/named.rfc1912.zones 
     #在23行后加入这10行
     24 zone "xy102" IN {
     25         type slave;
     26         file "slaves/xy102.com.zone";
     27         masters { 192.168.60.20; };
     28 };
     29 zone "60.168.192.in-addr.arpa" IN {
     30         type slave;
     31         file "slaves/xy102.com.zone.local";
     32         masters { 192.168.60.20; };
     33 };

    8、重启named配置文件

    [root@test3 ~]# systemctl restart named

    9、查看test2的文件是否复制到test3中

    [root@test3 /]# cd /var/named/
    [root@test3 named]# ls
    data     named.ca     named.localhost  slaves
    dynamic  named.empty  named.loopback
    [root@test3 named]# cd slaves/
    [root@test3 slaves]# ls
    xy102.com.zone  xy102.com.zone.local

    DNS的解析过程

    本地缓存

    DNS服务器

    一级域

    二级域

    bond网卡:

    两张网卡,两张网卡用一个ip地址

    相当于做网卡的高可用和负载均衡

    linux网卡的绑定模式:

    mode=0 负载均衡方式:load-balancing 负载均衡 两个网卡都工作

    mode=1 冗余,只有主工作,从不工作,主挂了,从才工作

    mode=2 平衡策略,既有负载均衡,又有容错能力 冗余的升级版

    mode=3 广播策略(不用)

    mode=4 动态链聚合(连接交换机)

    mode=5 负载均衡模式,但是需要额外插件,ethtool支持每个slave的速率。(定制模式,很少)

    mode=6 适配性的负载均衡(很好)

    tcpdump :linux自带的网络抓包工具(面试题)

    -i 设备:抓取指定设备的数据包

    实验2:bond网卡

    1、先装一个网络适配器

    [root@test2 ~]# ifconfig 
    ens33: flags=4163  mtu 1500
            inet 192.168.60.20  netmask 255.255.255.0  broadcast 192.168.60.255
            inet6 fe80::20c:29ff:fee7:13b6  prefixlen 64  scopeid 0x20
            ether 00:0c:29:e7:13:b6  txqueuelen 1000  (Ethernet)
            RX packets 171748  bytes 213154571 (203.2 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 90497  bytes 8406559 (8.0 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    ​
    ens36: flags=4163  mtu 1500
            inet6 fe80::3dfb:f08f:fb01:adea  prefixlen 64  scopeid 0x20
            ether 00:0c:29:e7:13:c0  txqueuelen 1000  (Ethernet)
            RX packets 15  bytes 4467 (4.3 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 86  bytes 13764 (13.4 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    2、复制一个ifcfg-ens36

    [root@test2 network-scripts]# cp ifcfg-ens33 ifcfg-ens36
    [root@test2 network-scripts]# ls
    ifcfg-ens33  ifdown-post      ifup-eth     ifup-sit
    ifcfg-ens36  ifdown-ppp       ifup-ib      ifup-Team

    3、更改ens33和ens36网卡配置

    TYPE=Ethernet
    DEVICE=ens33
    ONBOOT=yes
    BOOTPROTO=none
    MASTER=bond0
    SLAVE=yes
    USERCTL=no

    4、新建一个bond0文件

    [root@test2 network-scripts]# vim ifcfg-bond0
    TYPE=Ethernet
    DEVICE=bond0
    ONBOOT=yes
    BOOTPROTO=static
    IPADDR=192.168.60.20
    NETMASK=255.255.255.0
    GATEWAY=192.168.60.2
    DNS1=218.2.135.1
    DNS2=221.131.143.69
    BONDING_OPTS="miimon=100 mode=0 fail_over_mac=1“

    5、重启bond0

    [root@localhost network-scripts]# modprobe bonding
    [root@localhost network-scripts]# systemctl restart network

    6、安装nginx验证

    [root@localhost ~]# yum -y install nginx

    7、关闭防火墙

    [root@localhost ~]# systemctl stop firewalld.service 
    [root@localhost ~]# setenforce 0

    8、在index.html里写this is nginx

    [root@localhost ~]# vim /usr/share/nginx/html/index.html
      1 this is nginx
    [root@localhost ~]# systemctl restart nginx

    9、显示成果

  • 相关阅读:
    一遍关于vue基础语法上篇
    前端 JS 经典:i,i++,++i区别
    【C++刷题】二叉树进阶刷题
    bootstrapjs开发环境搭建
    数据结构与算法 -- 动态规划常见问题
    Zookeeper、Nacos、Dubbo、Kafka之间的关系
    JavaWeb
    springboot下添加全局异常处理和自定义异常处理
    python快速实现简易超级玛丽小游戏
    软件测试/测试开发丨利用ChatGPT自动生成测试用例思维导图
  • 原文地址:https://blog.csdn.net/m0_71178834/article/details/139477800