1.DNS的解析流程,DNS主从配置,httpd服务演示安全上下文值得设定,web服务端口的改变演示端口的设定

本文详细介绍了DNS的解析过程,包括浏览器缓存、操作系统缓存和hosts解析,以及DNS主从配置的步骤。同时,通过httpd服务展示了在SELinux环境下安全上下文值的设定和端口配置。内容涵盖了网络服务基础和系统管理知识。
摘要由CSDN通过智能技术生成

DNS的解析流程

什么是 DNS

DNS(Domain Name System)是域名系统的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,用于 TCP/IP 网络。

当我们在浏览器输入一个 URL 地址时,浏览器要向这个 URL 的主机名对应的服务器发送请求,就得知道服务器的 IP,对于浏览器来说,DNS 的作用就是将主机名转换成 IP 地址。

DNS域名解析流程

DNS 域名解析,简单地说就是把域名翻译成 IP 地址。例如:把 www.baidu.com 这个域名翻译成对应 IP 220.181.38.251,这里只是举个例子。

img

域名解析流程

上图中分 8 个步骤介绍了域名解析的流程,但在此之前会先检查本机的缓存配置+ hosts 解析,然后才真正执行上图的流程:

浏览器缓存检查

浏览器会首先搜索浏览器自身的 DNS 缓存,缓存时间比较短,大概只有1分钟,且只能容纳 1000 条缓存,看自身的缓存中是否有对应的条目,而且没有过期,如果有且没有过期则解析到此结束。

操作系统缓存检查 + hosts 解析

如果浏览器的缓存里没有找到对应的条目,操作系统也会有一个域名解析的过程,那么浏览器先搜索操作系统的 DNS 缓存中是否有这个域名对应的解析结果,如果找到且没有过期则停止搜索,解析到此结束。

在 Linux 中可以通过 /etc/hosts 文件来设置,可以将任何域名解析到任何能够访问的IP 地址。如果在这里指定了一个域名对应的 IP 地址,那么浏览器会首先使用这个 IP地址。当解析到这个配置文件中的某个域名时,操作系统会在缓存中缓存这个解析结果,缓存的时间同样是受这个域名的失效时间和缓存的空间大小控制的。

  1. 客户端通过浏览器访问域名为 www.baidu.com (http://www.baidu.com) 的网站,发起查询该域名的 IP 地址的 DNS 请求。该请求发送到了本地 DNS 服务器上。本地 DNS 服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地 DNS 服务器还要向 DNS 根服务器进行查询。
  2. 本地 DNS 服务器向根服务器发送 DNS 请求,请求域名为 www.baidu.com (http://www.baidu.com) 的 IP 地址。
  3. 根服务器经过查询,没有记录该域名及 IP 地址的对应关系。但是会告诉本地 DNS 服务器,可以到域名服务器上继续查询,并给出域名服务器的地址(.com 服务器)。
  4. 本地 DNS 服务器向 .com 服务器发送 DNS 请求,请求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址。
  5. com 服务器收到请求后,不会直接返回域名和 IP 地址的对应关系,而是告诉本地DNS 服务器,该域名可以在 baidu.com 域名服务器上进行解析获取 IP 地址,并告诉 baidu.com 域名服务器的地址。
  6. 本地 DNS 服务器向 baidu.com 域名服务器发送 DNS 请求,请求域名 www.baidu.com (http://www.baidu.com) 的 IP 地址。
  7. baidu.com 服务器收到请求后,在自己的缓存表中发现了该域名和 IP 地址的对应关系,并将 IP 地址返回给本地 DNS 服务器。
  8. 本地 DNS 服务器将获取到与域名对应的 IP 地址返回给客户端,并且将域名和 IP 地址的对应关系保存在缓存中,以备下次别的用户查询时使用。

2.DNS主从配置: 需要两台机器: 一台为主dns服务器,一台为从DNS服务器

主服务器:

[root@rhcsa ~]# yum install bind bind-chroot bind-utils bind-lib -y
[root@rhcsa ~]# vim /var/named/chroot/etc/named.conf
	options {
      	 	 listen-on port 53 { any; };
	 #       listen-on-v6 port 53 { ::1; };
	         directory       "/var/named";
	         dump-file       "/var/named/data/cache_dump.db";
             statistics-file "/var/named/data/named_stats.txt";
	         memstatistics-file "/var/named/data/named_mem_stats.txt";
	         secroots-file   "/var/named/data/named.secroots";
	         recursing-file  "/var/named/data/named.recursing";
 	         allow-query     { any; };
	         allow-transfer {192.168.155.134; };
 	         recursion yes;
             pid-file "/run/named/named.pid";
	 };

	 logging {
      		  channel default_debug {
               			 file "data/named.run";
               			 severity dynamic;
        	  };
	 };
	 zone "." IN {
       		 type hint;
       		 file "named.ca";
	 };
	 zone "lsj.com" IN{
  			 type master;
   			 file "lsj.zone";
	 };
	 zone "155.168.192.in-addr.arpa" IN{
 		 type master;
  		file "155.168.192.zone";

	 };
[root@rhcsa ~]# vim /var/named/chroot/var/named/lsj.zone
	$TTL 1D
    @    IN  SOA  dns1.lsj.com. test1.163.com(
                                    10
                                    1D
                                    1H
                                    1W
                                    3H)
             IN  NS  dns1.lsj.com.
             IN  NS  dns2.lsj.com.
             IN  MX  10 mail.lsj.com.
    dns1     IN  A   192.168.155.100
    dns2     IN  A   192.168.155.134
    mail     IN  A   192.168.155.232
    ftp      IN  A   192.168.155.233
    www      IN  A   192.168.155.234
    ntp      IN  A   192.168.155.235
    dhcp     IN  A   192.168.155.236
    web      IN  CNAME  dhcp
    mail.openlab.com  IN  A  192.168.155.128

从服务器:

[root@rhcsa ~]# vim /var/named/chroot/etc/named.conf
    options {
            listen-on port 53 { any; };
    #       listen-on-v6 port 53 { ::1; };
            directory       "/var/named";
            dump-file       "/var/named/data/cache_dump.db";
            statistics-file "/var/named/data/named_stats.txt";
            memstatistics-file "/var/named/data/named_mem_stats.txt";
            secroots-file   "/var/named/data/named.secroots";
            recursing-file  "/var/named/data/named.recursing";
            allow-query     { any; };
            recursion yes;
            pid-file "/run/named/named.pid";
    };
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    zone "." IN {
            type hint;
            file "named.ca";
    };
    zone "lsj.com" IN{
       type slave;
       file "slaves/lsj.zone";
       masters { 192.168.155.100; };
    };
    zone "155.168.192.in-addr.arpa" IN{
      type slave;
      file "slaves/155.168.192.zone";
      masters { 192.168.155.100; };
    };


[root@rhcsa ~]# systemctl restart named-chroot

3.使用httpd服务演示安全上下文值的设定(selinux)

[root@rhcsa ~]# systemctl restart firewalld
[root@rhcsa ~]# firewall-cmd --permanent --add-service=http
success
[root@rhcsa ~]# firewall-cmd --reload 
success
[root@rhcsa ~]# setenforce 1
[root@rhcsa ~]# getenforce 
Enforcing
[root@rhcsa ~]# vim /etc/httpd/conf.d/myhosts.conf


    <Directory "/www/ip">
            AllowOverride None
            Require all granted

    </Directory>

    #<VirtualHost 192.168.255.100:80>
            DocumentRoot "/www/ip/100"
    #</VirtualHost>

    #<VirtualHost 192.168.255.200:80>
    #       DocumentRoot "/www/ip/200"
    #</VirtualHost>
    <VirtualHost 192.168.255.100:80>
            DocumentRoot "/www/ip/80"
            ServerName 192.168.40.120
    </VirtualHost>
    "/etc/httpd/conf.d/myhosts.conf" 17L, 400C
[root@rhcsa ~]# mkdir -pv /www/80
mkdir: created directory '/www/80'
[root@rhcsa ~]# echo this is 80 > /www/80/index.html
[root@rhcsa ~]# systemctl restart httpd
[root@rhcsa 80]# chcon -t httpd_sys_content_t /www/ -R
[root@rhcsa 80]# ls -Z

4.使用web服务端口的改变来演示端口的设定(selinux)

[root@rhcsa ~]# mkdir /www/8888
[root@rhcsa ~]# echo this is 8888 > /www/8888/index.html
[root@rhcsa ~]# vim /etc/httpd/conf.d/myhosts.conf
    <Directory "/www/ip">
            AllowOverride None
            Require all granted

    </Directory>

    #<VirtualHost 192.168.255.100:80>
            DocumentRoot "/www/ip/100"
    #</VirtualHost>

    #<VirtualHost 192.168.255.200:80>
    #       DocumentRoot "/www/ip/200"
    #</VirtualHost>
    #<VirtualHost 192.168.255.100:80>
    #        DocumentRoot "/www/ip/80"
    #       ServerName 192.168.40.120
    #</VirtualHost>
    <VirtualHost 192.168.255.100:8888>
            DocumentRoot "/www/ip/8888"
           ServerName 192.168.40.120
    </VirtualHost>

[root@rhcsa ~]# systemctl restart httpd

.168.40.120
#
<VirtualHost 192.168.255.100:8888>
DocumentRoot “/www/ip/8888”
ServerName 192.168.40.120

[root@rhcsa ~]# systemctl restart httpd


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_59138290

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值