一、apt update 执行失败
问题描述
Docker安装后,里面没有ping、ifconfig等命令,执行apt update时,网络错误。
解决思路
分析包数据:发现能够正常进行114DNS的解析,但后续包接续不上。
解决方法
修改MTU值,原来是1500,改为1450,便可以执行apt update命令了。
二、小知识
MTU(Maximum Transmission Unit,最大传输单元),是网络链路节点的管控值。大于该值的数据帧,或分片,或丢弃。
例如:VM -- 物理服务器 -- 路由器 -- 服务器
VM的MTU设置如果为1700,链路其他设备都设置为1500。路由器接收后,会对其分包或者直接丢弃,判断的依据是IP包DF标志位,为1则不允许分包。
tcpdump是一种网络分析工具,可以将数据包的“头”截获。
常用的命令:
tcpdump -i 指定端口 -vv
-i,指定网络端口,如eth0, ens,lo
-vv 输出详细的报文信息
示例:
12:12:09.782698 IP (tos 0x0, ttl 62, id 39791, offset 0, flags [DF], proto TCP (6), length 52)
10.168.16.15.42204 > .5901: Flags [.], cksum 0x700f (correct), seq 774, ack 10624633, win 13508, options [nop,nop,TS val 2029593093 ecr 1866739405], length 0
12:12:09.782803 IP (tos 0x0, ttl 62, id 39792, offset 0, flags [DF], proto TCP (6), length 52)
10.168.16.15.42204 > .5901: Flags [.], cksum 0x5472 (correct), seq 774, ack 10631623, win 13587, options [nop,nop,TS val 2029593093 ecr 1866739405], length 0
12:12:09.782853 IP (tos 0x0, ttl 62, id 39793, offset 0, flags [DF], proto TCP (6), length 52)
10.168.16.15.42204 > .5901: Flags [.], cksum 0x394c (correct), seq 774, ack 10638613, win 13547, options [nop,nop,TS val 2029593093 ecr 1866739405], length 0
12:12:09.782904 IP (tos 0x0, ttl 62, id 39794, offset 0, flags [DF], proto TCP (6), length 52)
10.168.16.15.42204 > .5901: Flags [.], cksum 0x1daf (correct), seq 774, ack 10645603, win 13626, options [nop,nop,TS val 2029593093 ecr 1866739405], length 0
全部0条评论
快来发表一下你的评论吧 !