Linux网络服务之DNS域名解析
目录
1. DNS域名解析服务
1.1 DNS基本概述
DNS含义:域名解析服务器
DNS作用:将域名转化成IP地址
目的:因为IP地址太难记忆
1.1.1 DNS系统的作用
-
正向解析:根据域名查找对应的IP地址
-
反向解析:根据IP地址查找对应的域名
-
DNS系统的分布式数据结构
前面有 . 表示域名
1.1.2 DNS服务器类型
-
缓存域名服务器
- 只提供域名解析结果的缓存功能,目的在于提高查询速度和效率, 但没有自己控制的区域地址数据。
-
主域名服务器
- 管理和维护所负责解析的域内解析库的服务器
-
从域名服务器
-
从主服务器或从服务器"复制"(区域传输)解析库副本
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
-
1.2 DNS查询类型及原理
查询方式
- 递归查询
- 一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
- 迭代查询
- 一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器 (参考前一个DNS服务器返回的结果 )再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
1.2.1 查询原理过程
- 本地host文件,有直接访问
- 没有的话,先去找dns缓存服务器,有直接告诉你,没有才会去问根域服务器
- 根域服务器管理的主机域名类型www. 、mail. 、bilibili. 不会直接告诉你,会让你去找管理.com的域名服务器
- 根据线索找到.com的域名服务器 他只能解析www.com. mail.com这样的域名,会让你去找.baidu的域名服务器
- 根据线索找到.baidu服务,这个主机刚好归我管辖,所以直接反馈结果,这个反馈结果的域名服务器权威递归
1.2.2 DNS软件bind
DNS软件BIND软件安装
- BIND(Berkeley Internet Name Daemon)
- BIND是应用最广泛的DNS服务程序
[root@localhost ~]#yum install bind* -y
#自带网络解析功能 监听地址any 权限any
DNS服务器软件:bind、powerdns、dnsmasq、unbound、coredns
- bind:服务器
- bind-libs:相关库
- bind-utils:客户端
- bind-chroot:安全包,将dns相关文件放至/var/named/chroot/
主配置文件 /etc/named.conf
域名文件 /etc/named.rfc.1912.conf
数据库文件 /var/named/ kll.com.zone(在域名配置文件定义的) 手写 含义多
软件名 bind
程序名 named
2. 实际操作
正向解析
[root@localhost ~]#yum install bind* -y #安装DNS服务程序bind包
[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]#setenforce 0 #关闭selinux
[root@localhost ~]#systemctl start named #开启服务
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
#进入网卡配置文件
#修改DNS地址
[root@localhost ~]#systemctl restart network #重启网络
[root@localhost ~]#cat /etc/resolv.conf #查看DNS号
[root@localhost ~]#rpm -qc bind #查看配置文件包
[root@localhost ~]#vim /etc/named.conf #修改配置文件
[root@localhost ~]#rndc reload #重新加载
[root@localhost ~]#vim /etc/named.rfc1912.zones #进入域名配置文件修改
[root@localhost ~]#cd /var/named/ #切换目录
[root@localhost named]#ls #查看
[root@localhost named]#cp -p named.localhost ./lj.com.zone #保留权限复制
[root@localhost named]#ls #查看
[root@localhost named]#vim lj.com.zone #进入配置文件修改
[root@localhost named]#systemctl restart named #重新启动
[root@localhost named]#host mail.lj.com #验证
主从复制
主服务器地址:192.168.8.100
从服务器地址:192.168.8.106
主服务器配置
[root@localhost ~]#yum install bind bind-utils.x86_64 -y
#安装bind软件
[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]#setenforce 0 #关闭selinux
[root@localhost ~]#systemctl start named #开启服务
[root@localhost named]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 #进入网卡配置文件
[root@localhost named]#systemctl restart network #重启网络
[root@localhost named]#vim /etc/named.conf #进入配置文件
[root@localhost named]#vim /etc/named.rfc1912.zones #添加主服务器配置
[root@localhost ~]#cd /var/named #切换目录
[root@localhost named]#ls #查看
[root@localhost named]#cp -p named.localhost ./lj.com.zone #保留权限复制文件
[root@localhost named]#ls #查看
[root@localhost named]#vim lj.com.zone #进入配置文件
[root@localhost named]#rndc reload #重新加载DNS服务
server reload successful
[root@localhost named]#host www.lj.com #host验证
www.lj.com has address 192.168.8.104
从服务器配置
[root@localhost ~]#yum install bind bind-utils.x86_64 -y
#安装bind软件
[root@localhost ~]#systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]#setenforce 0 #关闭selinux
[root@localhost ~]#systemctl start named #开启服务
[root@localhost ~]#vim /etc/named.conf #进入配置文件
[root@localhost ~]#vim /etc/named.rfc1912.zones #添加从服务器配置
[root@localhost ~]#rndc reload #重新加载DNS服务
[root@localhost ~]#ls /var/named/slaves #查看文件
[root@localhost ~]#dig www.lj.com @192.168.8.106 #dig验证
目录
bond多网卡绑定
bond原理
网卡绑定就是把多张物理网卡通过软件虚拟成一个虚拟的网卡,配置完毕后,所有的物理网卡的ip和mac将会变成相同的。多网卡同时工作可以提高网络速度,还可以实现网卡的负载均衡、冗余。
实际操作
添加网络适配器
[root@localhost ~]#ifconfig #查看网卡配置
[root@localhost ~]#cd /etc/sysconfig/network-scripts/ #切换目录
[root@localhost network-scripts]#ls #查看网卡
[root@localhost network-scripts]#vim ifcfg-bond0 #建立虚拟网卡bond0
[root@localhost network-scripts]#vim ifcfg-ens33 #进入网卡ens33配置文件
[root@localhost network-scripts]#cp ifcfg-ens33 ifcfg-ens36 #将网卡ens33复制到ens36
[root@localhost network-scripts]#vim ifcfg-ens36 #进入ens36配置文件
[root@localhost network-scripts]#systemctl restart network #重新启动网络
[root@localhost ~]#ping 192.168.8.22 #测试连通性
[root@localhost ~]#ssh 192.168.8.22 #远程连接
[root@localhost ~]#cat /proc/net/bonding/bond #查看虚拟网卡