现象:业务程序出错,报域名解析失败(找不到域名并不是解析超时),并且是时好时坏。
紧急处理:
有A,B,C三个机房。每个机房都有自己的bind集群,bind集群递归到电信dns节点。
三个bind集群,A机房解析正常,B,C机房异常。
首先发现异常的两个机房内网解析没问题,说明bind应该正常的,开始怀疑外网DNS问题。
由于A机房是好的,在考虑好的那个机房的负载量能承受的情况下,将B,C机房的bind的forwards配置为A机房,让A机房递归电信dns。
此时问题得到缓解,不报错了。
问题排查:
查看当时pcap抓包报文。发现异常的DNS的reply code,显示No Such Name。
authoritative nameserver中,有SOA类型,权威为ns1.xxx.net。
考虑是否是DDOS防御,超过阈值后清洗直接反弹的报文。
清洗反弹报文种类:
1:直接反弹特定IP A记录
2:反弹域名查询不到错误即No Such Name.
后续联系了权威厂商。确定原因:确实反弹了No Such Name异常。
说明:当权威受到DNS DDOS攻击时,不能简单的丢弃DNS报文,丢弃DNS报文过多,会导致电信Cache DNS将权威踢掉的风险。
因此一般情况下在权威受到DNS DDOS时,清洗设备都会反弹No Such Name的DNS报文或者A记录的DNS报文。
解决方法:
forwards使用AliDNS,223.5.5.5,223.6.6.6高性能DNS
出口NAT网关配置多出口IP,不同IP请求可能会散到不同的权威上。减少异常情况。
tshark过滤dns报文:
tshark -r recv_pack.pcap -t ad -R "udp.port eq 53 and ip.addr eq x.x.x.x" -w all-dns.pcap
-r :读取文件
-t ad:打印年月日,时分秒的时间
-R :匹配规则。ip.addr eq x.x.x.x包括源目地址。ip.src/ip.dst只匹配源/目IP地址
-w: 将报文保存到指定文件
将多个pcap合并成一个pcap:
mergecap -w new.pcap [all need merge file]
阅读(3767) | 评论(0) | 转发(0) |