DNS域名解析
DNS的域名
DNS是域名系统的简称。
域名和IP地址之间的映射关系。
互联网中,IP地址是通信的唯一标识。逻辑地址。
访问网站,域名,IP地址不好记,域名朗朗上口,好记。
域名解析的目的就是为了实现,访问域名就等于访问ip地址。
在访问域名的时候,通过dns解析,把域名映射的IP地址解析出来,然后实际上访问的还是域名映射的IP地址。
类似于导航,输入域名之后,就可以定位出他的ip地址,然后访问。
访问百度,就是计算机向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、显示成果