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白名单中。

点击关注,第一时间了解华为云新鲜技术~

相关推荐
AskHarries8 分钟前
Java字节码增强库ByteBuddy
java·后端
佳佳_22 分钟前
Spring Boot 应用启动时打印配置类信息
spring boot·后端
许野平2 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
€☞扫地僧☜€2 小时前
docker 拉取MySQL8.0镜像以及安装
运维·数据库·docker·容器
全能全知者3 小时前
docker快速安装与配置mongoDB
mongodb·docker·容器
齐 飞3 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
LunarCod4 小时前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
码农派大星。4 小时前
Spring Boot 配置文件
java·spring boot·后端
杜杜的man5 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*5 小时前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go