背景

搭建的k8s集群总有一个节点IP连接很不稳定,经常性断网,并且无法通过ssh远程连接。这种情况在实验室内部经常出现,基本可以断定是局域网内有人和我用了一样的IP地址。导致的现象就是远程连接时有时无,网络时好时坏,主要原因在于数据包时而传给A,时而传给B。

解决方案

  • 以往都会比较谦让,看到IP冲突了,一般就直接自己换个IP地址用就好了。

但搭建的集群,如果改IP地址,后面怕出现比较麻烦的事情,于是决定恶意抢占这个IP。主要的问题在于人太多了,也不知道是谁抢占的。

原理

恶意抢占局域网IP的思路主要就两个。

  • 不停的访问百度,瘫痪另一个人的正常使用,最终他觉得十分受影响了,就会自己换一个IP地址。当时试了下,写了个死循环,用curl 不停的访问百度。但第二天,发现没啥用,网络连接还是十分不稳定。
  • 强制刷新局域网的mac表,更新局域网内所有邻居的mac表,这样所有人就都只认识我,而不认识另一个人。发现十分好用。

实现方法

现在你和对方都有同样的IP地址,你需要做的就是告诉你们所有的邻居,通过这个IP访问你,而不是另一个抢占IP的人。
使用arp强制更新局域网内所有主机的MAC表。

arping -U -s  10.x.x.155  -I eth0 10.x.x.254

# -U 是发起主动的ARP报文请求
# -s 指明ARP报文中的source ip地址。这个参数后跟你要抢占的IP地址即可。
# -I 指定网卡名字。这个自己看下抢占的IP地址,用的是哪张网卡。

# 最后一个参数是局域网的网关IP地址。

通过这条命令,局域网内所有主机的mac表都会把IP->mac的记录修改为 IP -> your mac的记录。这样保证所有邻居都只认识你。
抢占完之后,对方主机访问网络应该会出现问题,这样他就会自己改一个IP地址,双方都可以继续正常使用。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐