tcpdump抓包入门 - 腾讯云容器抓包(sso超时事件 主角又是fan)

零 tcpdump入门

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。

        tcpdump可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具,windows平台有wireshark等工具,tcpdump可以将网络中传输的数据包的“包头”全部捕获过来进行分析,其支持网络层、特定的传输协议、数据发送和接收的主机、网卡和端口的过滤,并提供and、or、not等语句进行逻辑组合捕获数据包或去掉不用的信息。
————————————————
版权声明:本文为CSDN博主「IT.cat」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_57377057/article/details/125987315

#  理解tcpdump的输出

超详细的网络抓包神器 tcpdump 使用指南 - 知乎 (zhihu.com)

21:27:06.995846 IP (tos 0x0, ttl 64, id 45646, offset 0, flags [DF], proto TCP (6), length 64)
    192.168.1.106.56166 > 124.192.132.54.80: Flags [S], cksum 0xa730 (correct), seq 992042666, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 663433143 ecr 0,sackOK,eol], length 0

21:27:07.030487 IP (tos 0x0, ttl 51, id 0, offset 0, flags [DF], proto TCP (6), length 44)
    124.192.132.54.80 > 192.168.1.106.56166: Flags [S.], cksum 0xedc0 (correct), seq 2147006684, ack 992042667, win 14600, options [mss 1440], length 0

21:27:07.030527 IP (tos 0x0, ttl 64, id 59119, offset 0, flags [DF], proto TCP (6), length 40)
    192.168.1.106.56166 > 124.192.132.54.80: Flags [.], cksum 0x3e72 (correct), ack 2147006685, win 65535, length 0

最基本也是最重要的信息就是数据报的源地址/端口和目的地址/端口,上面的例子第一条数据报中,源地址 ip 是 192.168.1.106,源端口是 56166,目的地址是 124.192.132.54,目的端口是 80。 > 符号代表数据的方向。

此外,上面的三条数据还是 tcp 协议的三次握手过程,第一条就是 SYN 报文,这个可以通过 Flags [S] 看出。下面是常见的 TCP 报文的 Flags:

  • [S] : SYN(开始连接)
  • [.] : 没有 Flag
  • [P] : PSH(推送数据)
  • [F] : FIN (结束连接)
  • [R] : RST(重置连接)

而第二条数据的 [S.] 表示 SYN-ACK,就是 SYN 报文的应答报文。

一  排错思路

1 curl    网址+toke (具体curl命令见附录) 

教训:问题描述不要加上个人判断!

2 修改/etc/hosts    curl  网址+token     nslook up网址  排除 dns问题

ndots 腾讯给的是2 也就是说 只要两个点以上就不走 search 域 直接走 容器外部dns(宿主机dns)

3 去sso9200服务端抓包(见下方)

抓包 TCP Spurious Retransmission和TCP Retransmission    原理理解:

TCP Retransmission的理解_彼岸大洋的博客-CSDN博客  

tcp retransmission 出现的原因_TCP重传问题排查思路与实践_weixin_39583623的博客-CSDN博客

4 排除内核参数  tcp_timestamp和tcp_tw_recycle的值

参考文章:网络优化之net.ipv4.tcp_tw_recycle参数_天府云创的博客-CSDN博客

5 排除 网络带宽压力

查看内网cvm带宽和监控带宽

6 研究uaa和sso调用关系 

暂时还没具体定位问题~~ 不过预估fan这个调用他自己也迷糊着

或许跟这个问题很类似:

https://www.cnblogs.com/pyng/p/9698723.html

# 二 容器抓包实践

#!/bin/bash
dockerid=$(docker ps | grep gateway | grep prod-image | awk '{print $1}') # 获取容器id
pidname=$(docker inspect -f {{.State.Pid}} $dockerid)  # 获取容器的pid
nsenter --target -n $pidname # 进入容器网络
ip a # 确认是否进入容器网络
tcpdump -i any port 9920 -lnxx -w /tmp/file1.pcap # 抓取9200进出?

# linux  使用wireshark

yum install wireshark* -y
wireshark file1.pcap

# 推荐深入实践文章:Kubernetes 问题定位技巧:容器内抓包 - 知乎

三附录

# 单个curl

curl http://sso.hi-ins.com.cn/api-user/menus/findAlls?access_token=91ad9530-d6c5-44dc-b7f3-896c7e574dbd

# curl 100次

for i in {1..100}; do curl http://sso.hi-ins.com.cn/api-user/users/current?access_token=6598fe2f-3132-41d0-ae49-49fcf4b4e015; done;

# curl 显示时间消耗

curl -o /dev/null -s -w  "time_namelookup:%{time_namelookup}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n"    "http://sso.hi-ins.com.cn"

四 抓包实战 - 知乎

一文教会实战网络抓包和分析包 知乎

一文教会实战网络抓包和分析包 - 知乎

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值