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、显示成果