CCE 集群 VPC 网络模式下几种访问场景
本文分享自华为云社区《【理解云容器网络】5-CCE集群VPC模型容器网络走线介绍》,作者:可以交个朋友。
简介
鉴于在 CCE 集群使用 VPC 网络模型,处理遇到的一些网络问题时,需要熟悉不同场景下数据包的流转过程,才能快速的解决问题。本文主要介绍 CCE 集群 VPC 网络模式下各种访问场景介绍。
VPC 网络模型不同访问场景走线
VPC 网络模型下,容器子网不属于 VPC 网段,跨节点容器互访除了隧道封装还可以通过路由实现,需要为每个节点划分固定的容器子网,比如节点 Node1 上所有容器 ip 都在子网 172.16.0.0/25 内,VPC 路由表将目的 ip 属于 172.16.0.0/25 子网的数据包全部转给节点 Node1 处理,Node1 收到数据包再根据系统路由表转给具体的容器。同时为了使容器能访问 VPC 以外的 ip 地址,在 CCE 集群内做了 Yangtse 白名单处理,如果容器访问目的 ip 在白名单内,容器请求数据包出节点前不会做 SNAT;反之会将数据包的源 ip 转换成节点 ip,Yangtse 白名单默认有三个网段(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16)。
同节点容器互访
访问说明:
容器的 eth0 网口是节点 eth0 的子接口,内部互通是子接口之间的报文转发,这个转发就是内核的虚拟网络的收发处理函数和缓冲队列处理,实际上不经过节点网卡的收发队列和网络命名空间。同节点容器访问容器不涉及 SNAT 和 DNAT
跨节点容器访问容器
访问说明:
发起请求时,源 ip 为 10.0.0.133,目的 ip 为 10.0.0.7。服务端容器接收的数据包,其源地址是 10.0.0.133 ,目的地址为 10.0.0.7。跨节点容器访问容器不涉及 SNAT 和 DNAT
容器访问 ClusterIP
访问说明:
发起请求时,源 ip 为 10.0.0.133,目的 ip 为 10.247.4.15。服务端容器接收的数据包,其源地址是 192.168.0.74,目的地址为 10.0.0.2。容器访问 ClusterIP 涉及 DNAT 和 SNAT。
容器访问外部 EIP
访问说明:
发起请求时,源 ip 为 10.0.0.33,目的 ip 为 100.85.116.151,服务端主机接收的数据包源 IP 为 192.168.0.157,目的 ip 为 100.85.116.151。容器访问 EIP 涉及 SNAT 转换,不涉及 DNAT
节点访问容器
访问说明:
发起请求时,源 ip 为 192.168.0.74,目的 ip 为 10.0.0.2,服务端容器接收的数据包源 IP 为 192.168.0.174,目的 ip 为 10.0.0.2。节点访问容器不涉及 SNAT 和 DNAT 转换。
与线下 IDC 网络打通
访问说明:
VPC 网络模型,容器访问 VPC 外的 ip 若不在 Yangtse 白名单(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16)内,请求数据包出节点前会做 SNAT,将数据包的源 ip 转换成节点 ip,响应包进入节点后经过 conntrack 还原,将数据包的目的 ip 转换成容器 ip。如果线下机房想获取云上容器的 ip,需要给 SRE 提单将线下 IDC 的目标网段加入到 Yangtse 白名单中。
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/805821784d0cd957329cf86ee】。文章转载请联系作者。
评论