您的当前位置:首页>新闻 > 正文

k8s双栈协议无法访问集群外ipv6服务(解决)

  • 2023-04-23 05:27:47 来源:腾讯云

问题背景

k8s集群升级了双协议栈后,从集群内无法访问外部ipv6服务,已经确认部署了Endpoint和Service。而同样采用ipv4是没问题的。


【资料图】

1 部署Endpoint和Service

apiVersion: v1kind: Servicemetadata:  name: myep  namespace: default  labels:    app: myepspec:  ports:  - name: http-8080    port: 8080    protocol: TCP    targetPort: 8080  ipFamilies:  - IPv6---apiVersion: v1kind: EndpointsapiVersion: v1metadata:  name: myep  #此名字需与 Service 中的 metadata.name 的值一致  namespace: default  labels:    app: myepsubsets:  - addresses:      - ip: 1002:003B:456C:678D:890E:0012:234F:56G7   ## 集群外Ip    ports:      - port: 8080        name: http-8080

然后在集群的Pod中访问myep:8080不通。

分析

通过tcpdump在1002:003B:456C:678D:890E:0012:234F:56G7这台机器山上抓包:
tcpdump -i eth0 host 1002:003B:456C:678D:890E:0012:234F:56G7 tcp -vv

发现可以收到发来的请求,但是并没有回包。

同样用tcpdump抓ipv4的包,是有回包的。分析ipv4和ipv6的差异:ipv4的SrcIP是Pod所在宿主机的ip,而ipv6的SrcIP是2000:100:100:100:9a7e:bead:f22c:9640,而2000:100:100:100::/64是集群内部的ipv6网段,可以确定ipv6的请求从Pod所在宿主机出来时没有进行SNAT转换。

2 增加SNAT的iptables策略

这里采用了一种比较简单的解决方案,最终方案应该通过集群的cni配置解决。

为所有的宿主机添加iptables策略:

ip6tables -t nat -A POSTROUTING -s 2000:100:100:100::/64 -o eth0 -j SNAT --to-source FC00:0:130F::9C0:876A:130B

参数

说明

-s

要处理的源IP段

-o

规则绑定的接口

--to-source

替换的IP(本机IP)

增加iptables策略后服务就可以访问了。

一些弯路

最初在服务所在主机上通过增加静态路由的方式也可以临时性达到目的:

ip -6 route add 2000:100:100:100::/64 via FC00:0:130F::9C0:876A:130B

相当于把Pod所在宿主机作为Pod内部网段的网关,这样可以临时解决问题,当时由于Pod会在集群的Node上漂移,所以这不是一个好的方法。

标签:

推荐阅读

k8s双栈协议无法访问集群外ipv6服务(解决)

k8s集群升级了双协议栈后,从集群内无法访问外部ipv6服务,已经确认部署了Endpoint和Service。而同样采用ip

ps哪个版本最好用又稳定知乎_ps哪个版本最好用又稳定

1、没有说最好用和最难用,这样看你个人的性格,有的喜欢CS2有的喜欢CS3和4,只要你用顺手了,基本上都还是

环球热消息:天邦、神农等猪企重金“砸”向全产业链建设,食品深加工能否对冲“猪周期”风险?

当“猪周期”处于下行阶段,猪企均面临资金紧张、高负债、高亏损的问题。近年来,为对冲生猪周期,各大...

《变形金刚》2024年暑期上映,讲述起源故事

据外媒报道,孩之宝玩具和派拉蒙电影合作,《玩具总动员4》导演乔什·库雷执导的《变形金刚动画大电影》...

住房公积金有什么好处和用途_住房公积金有什么好处

1、购房时候可以申请利率比较低的住房公积金贷款(利率4 41%,商业贷款为5 51%-6 12%)2、购房、装修之后可

猜您喜欢

【版权及免责声明】凡注明"转载来源"的作品,均转载自其它媒体,转载目的在于传递更多的信息,并不代表本网赞同其观点和对其真实性负责。亚洲汽车网倡导尊重与保护知识产权,如发现本站文章存在内容、版权或其它问题,烦请联系。 联系方式:8 86 239 5@qq.com,我们将及时沟通与处理。

交易