K8S某些节点容器网络访问异常的一种原因——网卡“源/目的地址检查”

本文介绍了在移动云环境中,自建K8S集群使用Calico作为CNI插件时遇到的问题。由于某些节点的网卡开启了‘源目的地址检查’,导致这些节点的容器无法与其他节点通信。这个问题源于移动云的一项安全设置,关闭该选项后恢复正常。解决方案是关闭异常节点的网卡‘源目的地址检查’功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常环境

移动云环境,自建K8S,所有主机处于同一网段,CNI插件是用Calico,BGP模式。

CNI插件主要分为三种类型:Overlay、路由及 Underlay。

  • overlay 模式是基于隧道技术实现的,典型特征是容器拥有独立于主机的IP段。容器之间跨主机通信时将整个容器网络封装到底层网络中,然后到达目标机器后再解封装传递到目标容器。不依赖与底层网络的实现。实现的插件有flannel(UDP、vxlan)、calico(IPIP)等等。
  •  三层路由模式中容器和主机也属于不同的网段,容器互通主要通过路由表打通,无需在主机之间建立隧道封包。但路由打通就需要部分依赖于底层网络,比如说要求底层网络有二层可达的一个能力。实现的插件有flannel(host-gw)、calico(BGP)等等。
  • underlay网络是底层网络,负责互联互通。容器网络和主机网络处于同一层网络,拥有相同的地位。整个网络三层互通,没有大二层的限制,但是需要强依赖底层网络的实现支持.实现的插件有calico(BGP)等等。

异常现象

某些节点的容器无法与K8S其他node通信,表现为该节点的容器无法访问其他节点及节点上的容器和服务,其他节点和节点上容器也无法访问该节点上的容器,节点间通信正常,仿佛该节点的容器被隔离了一样。

通过在容器内及节点上抓包可以看到,数据包在节点与节点网卡之间丢失,如图:

异常原因

异常节点的网卡开启了“源目的地址检查”。该选项移动云默认开启,但无相关介绍。我们从华为云的文档中找到了一些介绍:默认情况下,“源/目的检查”状态为“ON”,系统会检查裸金属服务器发送的报文中源IP地址是否正确,否则不允许裸金属服务器发送该报文。这有助于防止伪装报文攻击,提升安全性。当裸金属服务器作为NAT服务器、路由器或防火墙时,此开关应该设置为“OFF”。在移动云中,绑定HAVIP的主机网卡需要开启该功能,才能绑定。

解决办法

关闭异常节点的网卡“源目的地址检查”。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值