tcpdump网络抓包
UDP抓包 coredns 会转发下游DNS查询到上游DNS,自身也会定时从上游DNS同步解析
tcpdump -i eth0 src 192.168.1.100 dst port 80 -nn
tcpdump -i any 'src 10.12.41.2 and udp' -vv>>src.txt
06:02:33.118554 IP (tos 0x0, ttl 64, id 15893, offset 0, flags [DF], proto UDP (17), length 116) 10-4-1-8.kube-dns.kube-system.svc.cluster.local.39499 > ip-11-19-4-2.eu-central-1.compute.internal.domain: [bad udp cksum 0x45cc -> 0xedd1!] 59450+ [1au] A? portal-dev.inc.com.eu-central-1.compute.internal. ar: . OPT UDPsize=2048 DO (88) ttl 64: Time to Live (生存时间),表示数据包可以经过的最大路由器数。 id 15893: 数据包的标识符,用于区分同一时刻发送的多个数据包。 offset 0: 数据包的分段偏移量,值为 0,表示没有分段。 flags [DF]: 数据包的标志,DF 表示 Don't Fragment (不分段)。 proto UDP (17): 使用的传输层协议是 UDP,协议号为 17。 length 116: 数据包的总长度。 10-4-1-8.kube-dns.kube-system.svc.cluster.local.39499: 源地址,这是一个 Kubernetes 集群内的 DNS 服务,源端口为 39499。 ip-11-19-4-2.eu-central-1.compute.internal.domain: 目的地址,这是一个内部域名解析地址,端口信息未显示。 [bad udp cksum 0x45cc -> 0xedd1!]: 表示数据包的 UDP 校验和不正确。原始校验和为 0x45cc,而 tcpdump 计算出的校验和为 0xedd1。 59450+ [1au]: DNS 事务 ID 为 59450,+ 表示这是一个查询,[1au] 表示查询标志位中的 "QR"(查询/响应)和 "AA"(权威回答)标志被设置。 59450* 递归 A? portal-dev.inc.com.eu-central-1.compute.internal.: 这是一个 DNS 查询请求,查询类型为 A 记录,查询域名为 portal-dev.inc.com.eu-central-1.compute.internal.。 ar: . OPT UDPsize=2048 DO (88): 附加记录,包括一个 OPT 记录,指定了 UDP 数据包的最大长度为 2048 字节,以及其他 DNS 选项。 (88)附加记录长度 06:19:15.117750 IP (tos 0x0, ttl 254, id 0, offset 0, flags [DF], proto UDP (17), length 278) ip-11-19-4-2.eu-central-1.compute.internal.domain > 10-4-1-8.kube-dns.kube-system.svc.cluster.local.41680: [udp sum ok] 59450 q: A? portal.inc.com. 3/0/1 portal.inc.com. CNAME internal-rancher-alb-857996308.eu-central-1.elb.amazonaws.com. ns: eu-central-1.elb.amazonaws.com. SOA ns-1689.awsdns-19.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 60 ar: . OPT UDPsize=4096 DO (250) 59450 q:A? 事务ID为59450 查询,且为A记录,如果NS 表示是DNS记录 59450 NXDomain 表示不存在域名 NXDomain: 这表示一个 DNS 响应,其中包含一个或多个查询的答复,这些查询返回了 "Name Error"(名称错误),即域名不存在(Non-Existent Domain)。 通常,这意味着 DNS 服务器没有找到与查询匹配的记录,并且已经返回了一个错误指示。 NXDomain*: 这表示一个 DNS 查询请求,其中包含一个特殊的通配符查询,通常用于反向查找或某些类型的 DNS 动态更新场景。 星号(*)在 DNS 中用作通配符,可以匹配任意字符或子域。
-
第一个数字(3):这通常表示响应中包含的资源记录(Answer Records)的数量。在这个例子中,有三个资源记录作为查询的回答返回。
-
第二个数字(0):这表示授权记录(Authority Records)的数量。授权记录是 DNS 响应的一部分,提供了关于域授权信息的资源记录。在这个例子中,没有返回任何授权记录。
-
第三个数字(1):这表示附加记录(Additional Records)的数量。附加记录通常包含了可能对解析过程有帮助的其他信息,例如,MX(邮件交换)记录或用于支持 DNS 扩展的记录。在这个例子中,有一个附加记录。
(250)附加记录实际长度
tcp中
Flags [.]: 这通常表示没有设置任何TCP标志位,也就是说,这个TCP数据包不包含SYN, ACK, FIN, RST, PSH, URG, ECE, 或 CWR中的任何一个。
Flags [R.]: 这表示设置了RST(Reset)标志。RST用于重置连接,当一个端点需要突然断开一个现有的连接时,会发送带有RST标志的数据包。
Flags [P.]: 这表示设置了PSH(Push)标志。PSH标志指示接收端应该立即将缓冲区中的数据传递给应用程序,而不是等待缓冲区填满。
Flags [F.]: 这表示设置了FIN(Finish)标志。FIN用于关闭一个方向的连接。当一个端点完成数据发送并希望关闭连接时,它会发送带有FIN标志的数据包。
坚持到无能为力,拼搏到感动自己