tnblog
首页
视频
资源
登录

Flannel IPIP模式

6219人阅读 2022/12/9 15:14 总访问:891208 评论:0 收藏:0 手机
分类: 容器编排

Flannel IPIP模式

IPIP模式简介


ipip模式类似于vxlan模式,不过这个是三层封装三层网络。
更多可以参考这篇文章:https://www.tnblog.net/hb/article/details/7850

Flannel IPIP模式简介


ipip模式下的路由规则与vxlan的不同点在于,这块的网关地址是节点的。而vxlan中网关的地址是其他节点上的flannel.1设备。另外就是所使用的tunnel设备不同。

安装Flannel IPIP模式


首先通过如下命令使内核支持ipip模块。(每个节点都检测一下)

  1. # 加载ipip模式
  2. modprobe ipip
  3. # 查看内核支持情况
  4. lsmod | grep ipip


net.conf的类型改为ipip模式,然后apply一下即可。

  1. kubectl delete -f kube-flannel.yaml
  2. kubectl apply -f kube-flannel.yaml

原理实践


首先我们部署三个Pod。

同节点不同pod通信


走二层桥接模式,不讲了

不同节点的pod通信


我们以c1与c3为例。首先查看两个pod的路由与IP信息。

  1. kubectl exec pod/c1 -- ifconfig
  2. kubectl exec pod/c1 -- route -n
  3. kubectl exec pod/c3 -- ifconfig
  4. kubectl exec pod/c3 -- route -n


尝试ping是没有问题的。

  1. kubectl exec pod/c1 -- ping 192.168.2.37


我们c1 pod想ping通c3 pod(192.168.2.37)走的是二条路由从eth0这个接口出去,然后通过找到连接的线到主机网络名称空间。由于我们的c1 pod在node1节点上,并且要访问的ip不在同一网段,所以我们需要查询node1节点路由。


由于我们访问的ip地址是192.168.2.37,那么我们应该走第五条路由,网关为10.211.55.9节点从flannel.ipip网卡出去。
当我们的网关为10.211.55.9由于是同一网段所以会从第二条路由出去,但是在这个时候我们会进行ipip封包。

  1. 外层源IP(主机IP 10.211.55.8)外层目的IP(对方节点 10.211.55.9 Maceth0(节点mac) 目的Maceth0(对方节点mac)
  2. 内层源IPpodip)内层目的IP(对方podip)内层没有mac,内层没有mac


我们可以在ping时抓flannel.ipip网卡的包。
可以发现根本没有mac地址。

  1. tcpdump -pne -i flannel.ipip


我们可以再来主机的eth0上抓包看是如何进行封包的。
正如我们所说的那样,没有pod的ipip地址。

  1. tcpdump -pne -i eth0 -w flannel_ipip.cap


到node2节点上后,我们将会发往flannel.ipip进行解封包,然后再查路由表到下一跳cni0中,如果cni0不知道会发送ARP包进行广播,最后将数据包发送到我们的c3 pod上。


那他们在ping时拿到的mac地址是?
分别是自己的mac地址和同主机的cni0网卡mac地址。


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

ServiceStack.Redis操作Redis配置单例模式

我携漫天星辰以赠你,仍觉漫天星辰不如你。单利的应该是连接池而不应该是redis对象。如果每次操作都是一个redis对象是会有...

GIT中的PR模式

GIT中的Pull Request模式(简称PR)PR是开发者使用Github进行协作的利器。PR是协作者修改代码后或在原基础上增加新代码后向...

EF三种模式解析

万般皆下品,惟有编程高我希望你是为我而来如果我爱你,而你也正巧爱我。你头发乱了时候,我会笑笑地替你拨一拨,然后,手...

identity server4 的授权模式

授权模式OAuth2.0 定义了四种授权模式:Implicit:简化模式;直接通过浏览器的链接跳转申请令牌。Client Credentials:客户...

identity server4 四种授权模式

爱情哪有那么复杂,能让你开开心心笑得最甜的那个人就是对的人下面介绍4种模式安全性从低到高客户端模式客户端模式只对客户...

IdentityServer4实现OAuth2.0四种模式之授权码模式

授权码模式隐藏码模式最大不同是授权码模式不直接返回token,而是先返回一个授权码,然后再根据这个授权码去请求token。这...

也谈TDD,以及三层架构、设计模式、ORM……

想在园子里写点东西已经很久了,但一直没有落笔,还有些软文做推广,还要做奶爸带孩子,还要……好吧,我承认,真正的原因...

.netcore 3.1 MediatR:轻松实现命令查询职责分离模式(CQRS)

.netcore 3.1 MediatR:轻松实现命令查询职责分离模式(CQRS)[TOC] 中介者模式 用一个中介对象封装一系列的对象交...

.net core 3.1 Identity Server4 (ClientCredentials模式)

.net core 3.1 Identity Server4 (ClientCredentials模式)[TOC] ClientCredentials 模式的理解 在这之前我先问大家...

.net core 3.1 Identity Server4 (Password模式)

.net core 3.1 Identity Server4 (Password模式)[TOC] Password 模式的理解 当应用程序将用户的用户名和密码交换为...

.net core 3.1 Identity Server4 (Code模式)

.net core 3.1 Identity Server4 (Code模式)[TOC] Code 模式的理解 大致说一下,这种授权模式的意义。A. 用户通...

Go Map与工厂模式,在Go语言中实现Set

Go Map与工厂模式,在Go语言中实现Set[TOC] Map与工厂模式 Map 的 value 可以是一个方法与 Go 的 Dock type 接口方式一起...

.net core 3.1 Identity Server4 (Implicit模式)

.net core 3.1 Identity Server4 (Implicit模式)[TOC] Implicit 模式的理解 A.用户通过浏览器访问客户端,然后客...

.net core 3.1 Identity Server4 (Hybrid模式)

.net core 3.1 Identity Server4 (Hybrid模式)[TOC] Hybrid 模式的理解 Hybrid 模式相当于(Code模式+Impact模式),所...

.net core 3.1 Identity Server4 (自定义模式)

.net core 3.1 Identity Server4 (自定义模式)[TOC] IdentityServer4除了提供常规的几种授权模式外(AuthorizationCod...
这一生多幸运赶上过你.
排名
8
文章
243
粉丝
7
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术