一、问题描述
BI系统需要每天将报表推送给钉钉用户,但是偶尔会出现推送失败的情况,提示oapi.dingtalk.com: Name or service not known,即钉钉域名解析出现错误,后续重新推送又成功了,该情况具有偶然性。可能的原因是:
1、钉钉IP地址是一个地址池,域名oapi.dingtalk.com对应多个IP地址,浏览器缓存的时候IP地址是A,当需要将oapi.dingtalk.com域名映射成IP地址之后,IP地址换成B,通过A地址去查找已经找不到钉钉服务器了,需要重新解析,可能解析会超时导致消息发送不出去,解决方法是在/etc/hosts中将A地址写到hosts文件中,之后推送时就直接找该A地址,即使这时oapi.dingtalk.com这时已经换成C地址,也可以通过A地址找到钉钉服务器。后续问题是:当IP池剔除A地址之后,不能通过A找到钉钉服务器,需要手动增加IP地址到hosts中。
二、相关知识点
DNS(Domain Name System)是域名系统。实际主机A与主机B之间是通过IP进行相互通信的,但为了方便记忆可以用一串字符串来代替IP,如www.baidu.com,但计算机只能识别纯数字构成的IP地址,所以DNS系统再将www.baidu.com转换成IP地址,即翻译。ping www.baidu.com如下,实际是连通主机153.3.238.102。
域名解析的工作流程
①用户登录www.baidu.com网址,浏览器在浏览器缓存或操作系统在hosts文件中查找是否存在网址映射,如果存在返回IP;若不存在,用户发出DNS解析请求给本地DNS服务器,询问该网址的IP
②本地DNS服务器收到请求,在本地DNS服务器缓存中查找网址映射,若存在则返回用户该网址IP;
若没有找到,本地DNS服务器请求其根域名服务器(知道所有顶级域名服务器的域名及IP),不解析,但返回.com顶级域名服务器(负责二级域名)的IP给本地DNS服务器。
扩展:第三个字符串com 是顶级域名,代表企业,是通用域名,全球仅13台
通用域名:com(公司企业)、net(网络提供商)、org(非盈利组织)、int(国际组织)、gov(美国政府部门)等
国家域名:cn(中国)、us(美国)、uk(英国)等
④本地DNS服务器收到.com服务器IP后,向该顶级服务器请求www.baidu.com的IP。顶级域名服务器收到请求后,返回负责baidu.com区域的NameServer服务器(baidu.com域名提供商的服务器)的IP地址。
⑥本地DNS服务器收到IP后,向NameServer服务器请求www.baidu.com的IP,NameServer服务器返回对应的IP地址
⑦本地DNS服务器收到www.baidu.com的IP地址后,将其缓存并但会给浏览器。
标签:Name,dingtalk,IP,域名,service,DNS,IP地址,服务器,com From: https://www.cnblogs.com/muhai/p/17767017.html