Bootstrap

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<UP,BROADCAST,RUNNING,MULTICAST>  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<link>
        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<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::3dfb:f08f:fb01:adea  prefixlen 64  scopeid 0x20<link>
        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、显示成果

;