【calico 两种报文传输路径的分析】

一 :Cailico vxlan报文传输路径

在这里插入图片描述

从node3上podsrc寻找目标pod 的时候会走vxlan.calico路由
在这里插入图片描述
ip -d link show vxlan.calico
在这里插入图片描述
在这里插入图片描述

对照报文理解:
在这里插入图片描述
在这里插入图片描述

或者
在这里插入图片描述

在node3上arp缓存存有node7的mac地址;
在使用vxlan传输报文以后,vlan id已经明确,只需要确定传输端、接收端的udp端口、目标机器、源机器的IP地址、mac地址就可封装数据包;

这个协议费解的地方是L2、L3混杂;结合封包格式和抓包报文可以看到,原始L2帧是通过vxlan.calico实现的,在使用宿主机ip路由的前提下,通过arp 协议维护fdb表,达到在L2转发的目的。
回头看一下vxlan的一段定义,会加深一点印象;
VXLAN(Virtual eXtensible Local Area Network,虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,是对传统VLAN协议的一种扩展。VXLAN的特点是将L2的以太帧封装到UDP报文(即L2 over L4)中,并在L3网络中传输。VXLAN本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发。从用户的角度来看,接入网络的服务器就像是连接到了一个虚拟的二层交换机的不同端口上,可以方便地通信。

其实calico解决的是地址分配和路由问题,并且提供了一种传输和路由实现的办法,基于协议格式、封包样式可以看到传输中的实现过程。

二: Cailico IPIP报文传输路径

在这里插入图片描述
这个图是别人画的,没有单独再画,可以看到报文转发路径;

Pod 与cali** 是通过link组对出现的;
在这里插入图片描述

在这里插入图片描述

如果通过其它pod ping node6上busybox-zxv52,就要通过本机路由,通过网络设备tun10;
在这里插入图片描述

在这里插入图片描述

Tunl0 负责具体的封包转发;

三:总结与分析

本来想从抓包、报文传输路径、内核协议栈几个步骤分析协议,对协议有一个深入的了解,但是分析以后又发现了几个问题:
①vxlan tun是隧道协议实现的网络设备,也是calico 设计实现的核心(昨天看到知乎上有一位大神手写代码实现了关键模块,很佩服),应不应该进一步往下挖;
②calico 在几种模式下对于BGP的使用,还有一些不是很清楚。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值