异常告警
周一早上6:00收到应用告警如下,提示位于DMZ外联区的前置机连接外联单位域名失败。联系对端外单位,告知对端服务正常。本单位业务7:00将使用,需要紧急处理,否则会引发业务连续性中断。
Connection to xxx.trading.refinitive.net/26.120.xx.xx:16003: Connection timed out.
定位排查
1、验证连通性
ping 域名,返回26.120.xx.xx的地址
telnet 26.120.xx.xx 16003 发现无法连接,与告警提示相符。
2、联动变更
周五系统连接还正常,且周末应用和系统都无变更,只有周末外联区防火墙发生了替换,可能与防火墙替换有关。请网络团队同事排查,
发现出口防火墙上并没有26.120.xx.xx 这样一个映射地址,怀疑域名解析地址有误。请系统同事排查域名解析地址26.120.xx.xx是如何获得的,排查方向明确。
3、测试域名解析
- ping域名
- nslookup 域名
发现ping返回了26.120.xx.xx地址,但nslookup做域名解析却提示域名无法找到。
至此,怀疑并没有做真正的域名解析,可能是做了域名和IP绑定。
- 查看域名服务器配置
cat /etc/resolv.conf
- 查看/etc/hosts
cat /etc/hosts
发现果然/etc/hosts中绑定了域名地址为26.120.xx.xx,所以并不会访问域名服务器做域名解析。
- 为什么域名对应的26.120.xx.xx发生了变化呢?
据网络同事解释,防火墙替换后,外部地址在过墙后映射到dmz区的地址会发生变化,所以此时再绑定原地址,会发生网络连接不同。 - 为什么使用nslookup做域名解析失败呢?
/etc/resolv.conf中配置了5个DNS Server,其中第一个和第三个server是内部DNS server,第二、四、五是外部域名解析服务器。域名解析时按顺序使用第一个DNS server 内部解析,没有解析成功。
异常解决
至此,原因已找到。解决方法如下:
- 指定使用第二个外部域名服务器解析域名
nslookup
server 第三个域名服务地址
输入 xx.trading.refinitiv.net
这样获得了正确的外部域名对应地址映射到内网的地址26.120.81.xx
- 绑定域名和最新的IP地址
vi /etc/hosts
26.120.81.xxx xx.trading.refinitiv.net
telnet 地址 端口验证网络联通性正常,问题解决。
反思总结
- 外联防火墙替换可能引起映射地址发生改变。
- 避免绑定域名和地址,尽量使用域名解析。
- 域名服务器的配置。
- 在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
- 第一个行内dns server没有这个域名列表,但返回没有超时,不会去尝试第二个server。