【笔记】Linux-DNS域名解析

IP地址的4种分类

A类地址范围:0.0.0.0~126.255.255.255 主要分配给大型公司网络环境,比如阿里云,腾讯云等

B类地址范围:128.0.0.0~191.255.255.255 主要分配给大型局域网公司
C类地址范围:192.0.0.0~223.255.255.255 主要分配给学校呀吗,中小型企业等
D类地址用于广播

ps:为什么没有127呢?因为127是本地回环地址(本地ip地址),被电脑占用

DNS是什么?
简单来说就是类似一个电话簿,每个人都有一个号码,而每个号码都对应一个人名,【可以理解:人名就是域名,而号码就是ip地址】我想通过人名找到这个人的号码,则就需要域名解析dns。

DNS在机器上的解析流程!
先浏览本地的缓存信息,再进行本地dns配置文件(/etc/hosts)里的对应关系,找不到再通过(/etc/resolv.conf)里通过dns服务器里去解析

常见域名:com 商业组织 、org非营利组织、gov政府部门、net网络服务商、edu教研机构、pub公共大众、cn中国国家顶级域名

主域名服务器:

【Linux本地dns配置文件】
/etc/hosts

[root@localhost ~]# vim /etc/hosts

#ip地址    域名
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

【Linux的联网的dns服务器地址配置文件】通过联网进行域名解析
/etc/resolv.conf

[root@localhost ~]# vim /etc/resolv.conf 

# Generated by NetworkManager
search localdomain
#服务器名字  服务器IP地址
nameserver 192.168.91.2     

例如我们配置两个域名解析服务器地址
nameserver 114.114.114.114
nameserver 180.76.76.76                     

配置DNS服务器
DNS服务器一般安装bind服务,但是这里只是学习,就用dnsmasq进行实验操作
小型的dns就用dnsmasq就行了,大型的话就用bind服务

前提条件:已经配置好yum源

1.安装工具(dnsmasq)
[root@localhost ~]# yum install dnsmasq

2.配置文件
	2.1 dnsmasq主配置文件
		/etc/dnsmasq.conf
	2.2 dnsmasq内部解析,用户需要自定义的域名与ip的对应关系
		/etc/dnsmasq.hosts    (如果没有该文件手动创建就好了)
	2.3 dnsmasq的上游DNS服务器地址
		/etc/resolv.dnsmasq.conf          (如果没有该文件手动创建就好了)


[root@localhost ~]# vim /etc/dnsmasq.conf 
#指定上游DNS服务器
resolv-file=/etc/resolv.dnsmasq.conf
#自定义某些域名及其子域名,都解析到某一个ip,添加如下参数(例如访问baidu.com 解析到的域名就是192.168.2.1)
address=/baidu.com/192.168.2.1
address=/taobao.com/192.168.2.1

定义dnsmasq的监听地址的配置文件(监听谁,一般写本机局域网的ip,或者是127.0.0.0,就是监听本机)
listen-address=192.168.91.133

定义一个本地域名配置文件,需要自定义一些域名解析(就是域名解析的本子)
addn-hosts=/etc/dnsmasq.hosts

记录dns查询的日志参数(解析过程)
log-queries          (默认是注释的,把注释去掉,就表示开启记录dns查询)

包含目录的语法,能够包含某一个文件下所有符合自定义类型的配置文件
conf-dir=/etc/dnsmasq.d
conf-dir=/etc/dnsmasq.d,.bak
conf-dir=/etc/dnsmasq.d/,*.conf
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig   (默认是开着的)

查询配置是否成功/情况
[root@localhost ~]# grep -v '^#' /etc/dnsmasq.conf | grep -v '^$'


【内部解析的地址关系】
[root@localhost ~]# vim /etc/dnsmasq.hosts
123.15.23.20  ikun.com                            

【添加上游dns服务器地址】
#当dnsmasq在本地找不到解析记录的时候,通过上游的dns服务器去找
[root@localhost ~]# vim /etc/resolv.dnsmasq.conf 
nameserver 114.114.114.114
nameserver 180.76.76.76

启动dnsmasq服务(但是没有启动成功,这么办?)
[root@localhost ~]# systemctl start dnsmasq


		[root@localhost ~]# systemctl status dnsmasq   
● dnsmasq.service - DNS caching server.
   Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Tue 2023-02-07 10:33:46 CST; 24s ago
  Process: 8396 ExecStart=/usr/sbin/dnsmasq -k (code=exited, status=2)
 Main PID: 8396 (code=exited, status=2)

2月 07 10:33:46 localhost.localdomain systemd[1]: Started DNS caching server..
2月 07 10:33:46 localhost.localdomain dnsmasq[8396]: dnsmasq: failed to create listening socket for port 53: Address already in use
2月 07 10:33:46 localhost.localdomain dnsmasq[8396]: failed to create listening socket for port 53: Address already in use
2月 07 10:33:46 localhost.localdomain dnsmasq[8396]: FAILED to start up
2月 07 10:33:46 localhost.localdomain systemd[1]: dnsmasq.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
2月 07 10:33:46 localhost.localdomain systemd[1]: dnsmasq.service: Failed with result 'exit-code'.
-------------------------------------------
我们看到了active:failed    状态:启动失败,故障
2月 07 10:33:46 localhost.localdomain dnsmasq[8396]: failed to create listening socket for port 53: Address already in use  #日志含义为端口53创建监听套接字失败:地址已被使用
2月 07 10:33:46 localhost.localdomain dnsmasq[8396]: FAILED to start up    #启动失败

通过以上的status状态信息,得出结论,因为53端口被占用,导致启动失败
----------------------------------------------------------------------
解决方法有2种
	第一种:把占用53端口的服务关掉
	第二种:把dnsmasq的默认53端口该成别的端口

第一种:排查是谁占用了,以及把他给关掉
[root@localhost ~]# lsof -i:53   #查询谁(那个服务)在用53端口
COMMAND  PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dnsmasq 2001 dnsmasq    5u  IPv4  44589      0t0  UDP localhost.localdomain:domain 
dnsmasq 2001 dnsmasq    6u  IPv4  44590      0t0  TCP localhost.localdomain:domain (LISTEN)

[root@localhost ~]# cat /etc/services  | egrep '53/udp|53/tcp' #在系统里默认记录网络服务名和它们对应使用的端口号及协议
domain          53/tcp                          # name-domain server
domain          53/udp

通过以上两个方法看得出是domain 这个服务占用了53端口
	解决1:把domain服务禁止掉
		[root@localhost ~]# kill -9 2001[root@localhost ~]# systemctl stop domain

   解决2:修改dnsmasq的端口,例如修改为5352,进去/etc/dnsmasq.conf里把port=的字段修改为:port=5352


	













修改本地的dns客户端配置文件,指定自定义dnsmasq服务器地址

[root@localhost ~]# vim /etc/resolv.
	 # Generated by NetworkManager
	#search localdomain
	#nameserver 192.168.91.2
	nameserver 192.168.91.133 或者是nameserver 127.0.0.1

【检查dns是否配置成功】使用nslookup命令
[root@localhost ~]# nslookup 
> ikun.com
Server:		192.168.91.133
Address:	192.168.91.133#53

Name:	ikun.com
Address: 123.15.23.20
> www.baidu.com
Server:		192.168.91.133
Address:	192.168.91.133#53

Name:	www.baidu.com
Address: 192.168.91.133
> www.taobao.com
Server:		192.168.91.133
Address:	192.168.91.133#53

Name:	www.taobao.com
Address: 192.168.91.133
> 





                
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值