一次DNS 故障引发的linux telnet 各端口缓慢的问题解决过程

昨天部署好了lvs+keepalived 并通过测试,  没有发现问题.今天上午忽然发现, 用ipvsadm –l  查看lvs信息,响应很慢,  然后去从LVS  telnet 节点的22号端口, 发现特别慢.

开始我检查了一下keepalived.conf配置文件, 以为是同网段内多个lvs 设置,造成多播冲突,阻塞网络.  后来停止了lvs后故障依旧.  突然想到使用strace来分析, 一下找到了原因.

telnet 命令 调用了如下共享对象库及文件, 说明telnet 先做权限和安全检查(如selinux) , 再做解析, 顺序是 , 先从hosts文件中找, 如果有对应的条目, 可直接接续, 如果没有,再从resolve.conf中找,   最后才反应成真正的IP地址.

今天由于dns 202.96.209.5 故障, 所以连接其53端口有问题, 等待超时过了才能继续.  所以telnet有几秒钟的卡顿.

解决方案:  删除resolve中的记录或指向可用的dns.

/etc/ld.so.preload

/etc/ld.so.cache

/usr/lib64/libkrb4.so.2

/usr/lib64/libkrb4.so.2

/usr/lib64/libdes425.so.3

/usr/lib64/libkrb5.so.3

/usr/lib64/libk5crypto.so.3

/lib64/libcom_err.so.2

/usr/lib64/libkrb5support.so.0

/lib64/libkeyutils.so.1

/lib64/libresolv.so.2

/usr/lib64/libncurses.so.5

/lib64/libselinux.so.1

/lib64/libdl.so.2

/lib64/libc.so.6

/lib64/libsepol.so.1

/etc/selinux/config

/etc/nsswitch.conf

/etc/resolv.conf

[[email protected] ~]# stracetelnet 10.67.130.232 22

execve("/usr/kerberos/bin/telnet",["telnet", "10.67.130.232", "22"], [/* 22 vars*/]) = 0

brk(0)                                  =0x2b867de32000

………………………………………………..

open("/etc/resolv.conf",O_RDONLY)      = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=24,...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b8670400000

read(3, "nameserver 202.96.209.5\n", 4096) = 24

read(3, "", 4096)                       = 0

close(3)                                = 0

munmap(0x2b8670400000, 4096)            = 0

uname({sys="Linux",node="lvs1", ...})  = 0

open("/etc/host.conf", O_RDONLY)        = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=0,...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b8670400000

read(3, "", 4096)                       = 0

close(3)                                = 0

munmap(0x2b8670400000, 4096)            = 0

open("/etc/hosts", O_RDONLY)            = 3

fcntl(3, F_GETFD)                       = 0

fcntl(3, F_SETFD, FD_CLOEXEC)           = 0

fstat(3, {st_mode=S_IFREG|0644,st_size=168, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b8670400000

read(3, "# Do not remove the followingli"..., 4096) = 168

read(3, "", 4096)                       = 0

close(3)                                = 0

munmap(0x2b8670400000, 4096)            = 0

open("/etc/ld.so.cache",O_RDONLY)      = 3

fstat(3, {st_mode=S_IFREG|0644,st_size=96055, ...}) = 0

mmap(NULL, 96055, PROT_READ, MAP_PRIVATE,3, 0) = 0x2b8670400000

close(3)                                = 0

open("/lib64/libnss_dns.so.2",O_RDONLY) = 3

read(3,"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\17\0\0\0\0\0\0"...,832) = 832

fstat(3, {st_mode=S_IFREG|0755,st_size=23736, ...}) = 0

mmap(NULL, 2113792, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,3, 0) = 0x2b8672527000

mprotect(0x2b867252b000, 2093056,PROT_NONE) = 0

mmap(0x2b867272a000, 8192,PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) =0x2b867272a000

close(3)                                = 0

mprotect(0x2b867272a000, 4096, PROT_READ) =0

munmap(0x2b8670400000, 96055)           = 0

socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3

connect(3, {sa_family=AF_INET, sin_port=htons(53),sin_addr=inet_addr("202.96.209.5")}, 28) = 0

fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)

fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0

poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}])

sendto(3,"\255a\1\0\0\1\0\0\0\0\0\0\003232\003130\00267\00210\7in-ad"..., 44,MSG_NOSIGNAL, NULL, 0) = 44

poll([{fd=3, events=POLLIN}], 1, 5000)  = 0 (Timeout)

poll([{fd=3, events=POLLOUT}], 1, 0)    = 1 ([{fd=3, revents=POLLOUT}])

sendto(3,"\255a\1\0\0\1\0\0\0\0\0\0\003232\003130\00267\00210\7in-ad"..., 44,MSG_NOSIGNAL, NULL, 0) = 44

poll([{fd=3,events=POLLIN}], 1, 5000)  = 0 (Timeout)

close(3)                                = 0

fstat(1, {st_mode=S_IFCHR|0620,st_rdev=makedev(136, 2), ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b8670400000

write(1, "Trying 10.67.130.232...\r\n", 25Trying10.67.130.232...

) = 25

socket(PF_INET, SOCK_STREAM, IPPROTO_IP) =3

setsockopt(3, SOL_IP, IP_TOS, [16], 4)  = 0

connect(3, {sa_family=AF_INET, sin_port=htons(22),sin_addr=inet_addr("10.67.130.232")}, 16) = 0

open("/proc/filesystems",O_RDONLY)     = 4

read(4,"nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 4095) = 331

close(4)                                = 0

open("/root/.telnetrc",O_RDONLY)       = -1 ENOENT (No such fileor directory)

open("/proc/filesystems",O_RDONLY)     = 4

read(4,"nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 4095) = 331

close(4)                                = 0

write(1, "Connected to 10.67.130.232(10.6"..., 45Connected to 10.67.130.232 (10.67.130.232).

) = 45

时间: 2024-10-17 01:28:53

一次DNS 故障引发的linux telnet 各端口缓慢的问题解决过程的相关文章

邂逅DNS故障

邂逅DNS故障 对于本文最后所提出的问题答案,大家可以在<Unix/Linux网络日志分析与流量监控>一书的第四章找到.

DNS故障如何解决呢?

常会有些朋友在使用电脑打开一些网页的时候,总会出现DNS错误,打不开网页故障,不知道如何解决.其实,DNS故障分好几种,如DNS解析错误.DNS服务器错误等故障,并且DNS故障的原因也有很多,那么,DNS故障怎么解决? 如果是域名解析.建站等常遇到的DNS错误故障,可参照:"DNS错误大全,解决DNS错误方法集锦"步骤解决,这里主要介绍一下本地电脑遇到dns故障该怎么解决. 1.电脑中毒.基本上所有的电脑故障都可能跟电脑中毒有关.所以,我们可以先使用 360杀毒.金山毒霸等杀毒软件,对

How to configure dns slave server in Linux

A DNS server, or name server, is used to resolve an IP address to a hostname or vice versa.You can set up four different types of DNS servers: A master DNS server for your domain(s), which stores authoritative records for your domain. A slave DNS ser

linux TCP UDP 端口映射 及DNS劫持

对于linux下的端口映射问题多出现在使用linux做为网关路由,用来连接ISP使用时并把公司的内网IP地址NAT成ISP提供的IP.保证内网所有主机可以共享一个公网IP来访问internet.但这样做的同时也会带来一个问题就是我们无法在办公室以后的网络中访问或管理我们内网的服务器.要解决这个问题就要在linux网关服务器上将ISP提供的IP的相关端口通过DNAT方式映射到我们内网服务器的开放端口上,即可实现在外网管理内网服务器. 情景1.公网为223.71.x.x,内网IP为172.17.17

一次因NAS存储故障引起的Linux系统恢复案例

一. 故障现象描述 NAS操作系统内核为Linux,自带的存储有16块硬盘,总共分两组,每组做了RAID5,Linux操作系统无法正常启动,在服务启动到cups那里就停止了,按键ctrl+c强制断开也没有响应,查看硬盘状态,都是正常的,没有报警或者警告现象. 二. 问题判断思路 通过上面这些现象,首先判断NAS硬件应该没问题,NAS存储盘也应该正常,现在Linux无法启动,应该是Linux系统本身存在问题,因此,首先从Linux系统入手进行排查. 三. 问题处理过程 1.第一次处理过程 NAS系

Linux Telnet 服务开启方法

一.检查是否有telnet chkconfig |grep telnet 二.开启telnet chkconfig telnet on 如果没有安装telnet 下载一个telnet-server.rpm rpm -ivh telnet-server.rpm cat /etc/xinetd.d/telnet chkconfig telnet on 不需要了就关闭 telnet服务 chkconfig telnet off Linux Telnet 服务开启方法,布布扣,bubuko.com

CSDN日报20170301——《一次dns缓存引发的惨案》

[程序人生] 一次dns缓存引发的惨案 作者:纯洁的虫子 时间2015年的某个周六凌晨5点,公司官方的QQ群有用户反馈官网打不开了,但有的用户反馈可以打开,客服爬起来自己用电脑试了一下没有问题,就给客户反馈说,可能是自己网络的问题,请过会在试试.早点8点,越来越多的用户反馈官网无法打开,并且有部分用户开发反馈app也打不开了,客服打电话叫起了还在梦乡中的我. -- 点此阅读全文 [Android 开发] Android UI性能优化 检测应用中的UI卡顿 作者:鸿洋 在做app性能优化的时候,大

Linux -- Telnet、SSH和VNC协议的配置与应用

Telnet概述及配置 Telnet协议是TCP/IP协议族中应用最广泛的协议之一,提供一个以联机方式访问网际网上资源的通用工具,它允许用户与一个远程机器上的服务器进行通信,通过一个协商过程来支持不同的物理终端,从而提供了极大的灵活性.Telnet协议可以在任何主机(任何操作系统)或任何终端之间工作.各种操作系统都内置了Telnet协议的客户端软件,不需要安装,使用方便. Telnet的工作原理如图2.1所示. 当用Telnet登录进入远程计算机系统时,将启动两个程序,一个叫Telnet客户程序

Linux Telnet安装配置

本文以红帽6.2 64位版本为例,其它linux类似: linux默认是使用SSH服务的 而不安装telnet服务 ,所以需要手动安装telnet. 1.telnet的安装包有两个,分别是: telnet-0.17-47.el6.x86_64.rpm telnet-server-0.17-47.el6.x86_64.rpm 2.安装telnet包 rpm –ivh telnet-0.17-47.el6.x86_64.rpm 安装server包前需要安装依赖包:xinetd-2.3.14-33.e