简单说一下客户环境,客户ac部署路由模式,上联思科路由器作为互联网出口。客户那边之前偶尔会出现上网卡的情况,刚开始怀疑是内网有人在下载带宽,占用大流量资源。登录ac查看是有人在进行下载操作,于是建议客户做流控观察情况。做完流控后果然客户没再反映卡,以为事情就这样结束了。
万万没想到。。。还没出一周客户又反映网络卡,登录到ac设备上一看什么都正常= =通过公网地址登录ac也不觉得慢,远程登录到出口路由器查看 cpu、内存、接口流量也都正常。远程客户电脑操作也不会卡,但是在电脑上打开网页有时会刷半天。在电脑上 ping dns地址延迟均正常,没发现丢包。此时已经是晚上,客户那边应该也没什么人在用网络,应该是跟使用人数、设备性能什么的都没什么关系了,那么问题有可能在电脑上,莫非是电脑中毒然后交叉感染了?大晚上快12点了,赶紧给电脑杀毒、修复lps看看。捣鼓了半天重启电脑,再远程接入,打开浏览器,还是老样子,经常网页会刷不出来。真是活见鬼了 。抱着死马当活马医的想法,用网管必杀技——重启!!远程重启思科路由器,重启完成后再远程进来测试,发现网页居然都很快刷出来了。莫非必杀技真的奏效?为了验证是否真的问题解决了,不停刷网页刷了5分钟,都没出现过网页卡刷不出来的情况,于是心安理得地去睡觉了。第二天傍晚再去回访客户,客户反映网络正常。看来今天也是世界和平的一天。 但是还是没有想到,一周后客户又反映网络卡。。。。 这会儿真的快绝望了。没办法,第二天去客户现场看看情况(估计还是看不出个所以然)
到客户现场查看,还是跟之前一样网页经常会刷不出来,但是ping dns和ping域名都不会延迟丢包。ac上流量也正常,开了直通进行排查也没有排查出什么,思科路由器上cpu、内存等都正常,查看日志也没看出什么异常的东西。但是出于上次处理问题的方式考虑,问题很有可能在思科路由器上。这时随行的同事提出一个想法:莫非是在线会话数太多影响了设备性能?登录ac查看此时会话有6000条左右,但是设备状态是正常的,登录到思科路由器查看nat会话数有17000+!!!!! 似乎发现了什么不得了的东西。在百度上查找关于思科nat会话数的相关问题,结果一个名词映入眼帘——tcp老化。按照网上说的思科路由器默认tcp老化时间是24小时,根据参数将老化时间调整到几分钟,过了一段时间观察,nat会话数慢慢降低了下来,网络也不再卡,观察了一段时间再也没有出现网络卡的问题,看来这次终于彻底解决了!!!
tcp老化是什么? 百度的结果,简单来说,客户端与服务器进行tcp会话。正常若是tcp会话结束,两边会断开tcp,设备会接收到关闭连接的报文,从而删除nat会话。但是若是客户端直接关闭,可能造成设备没有接收到关闭连接的报文,nat会话只能等到老化后才能删除。客户环境中用户数量较多,并且思科路由器默认tcp老化时间太久,设备中存在大量无用nat会话,影响新的nat转换处理。因此在大量用户用同一个互联网出口做nat上网的环境下,建议配置tcp老化时间优化网络。就是不知道深信服的设备是否也会出现这种情况? 内网PC访问外部网络时每个连接都会建立1个NAT会话表项,记录这个连接的状态信息,如源地址 源端口 目的地址 目的端口等信息,用来进行回复报文的NAT转换处理。根据不同的应用,每次内网PC发起的连接数都不一样,如:打开1个网页会建立10~50个TCP连接,下载和网络游戏会建立上百个连接,当这些连接的NAT会话表项建立后,如果因为异常原因,如:应用程序异常关闭,PC重启,导致网关设备没有收到关闭连接的报文,NAT会话表项只能等老化时间过后才能被删除,因此网关设备上会存在部分无用的NAT表项。 是在企业和网吧应用环境中,这些无用的NAT表项会非常多,如果不能及时的老化删除,会严重占用系统资源,影响系统转发效率。 |