Calico网络模型

本次测试使用的k8s平台,默认开启节点全互联模式,使用IPIP,模式为Always,即不管是否跨子网,均使用IPIP模式进行通信

[root@bgp-master1 bgp]# calicoctl node status

Calico process is running.

IPv4 BGP status
+--------------+-------------------+-------+----------+-------------+
| PEER ADDRESS |     PEER TYPE     | STATE |  SINCE   |    INFO     |
+--------------+-------------------+-------+----------+-------------+
| 172.20.42.81 | node-to-node mesh | up    | 09:00:00 | Established |
| 172.20.42.82 | node-to-node mesh | up    | 09:00:01 | Established |
+--------------+-------------------+-------+----------+-------------+

IPv6 BGP status
No IPv6 peers found.

[root@bgp-master1 bgp]# calicoctl get ippool -o wide

NAME           CIDR             NAT    IPIPMODE   VXLANMODE   DISABLED   SELECTOR   
default-pool   10.233.64.0/18   true   Always     Never       false      all()

查看本机的路由规则为:
[root@bgp-master1 bgp]# ip route

10.233.87.0/24 via 172.20.42.81 dev tunl0 proto bird onlink
10.233.124.0/24 via 172.20.42.82 dev tunl0 proto bird onlink 
blackhole 10.233.94.0/24 proto bird 
10.233.94.1 dev cali36dac03ac5d scope link 
10.233.94.2 dev cali05c862e5940 scope link 

注:本机IP地址为172.20.42.80/22

本机通信

10.233.94.1 dev cali36dac03ac5d scope link 

cali36dac03ac5d是一个Veth Pair( https://blog.csdn.net/weixin_42758299/article/details/121356921?spm=1001.2014.3001.5501#t3),一端在宿主机,一端在容器内,由calico创建,表示如果一个请求的目标IP地址为10.233.94.1,直接通过cali36dac03ac5d发出,容器内部也就直接接收到请求


跨主机通信

10.233.87.0/24 via 172.20.42.81 dev tunl0 proto bird onlink

表示目的IP地址为10.233.87.0/24网段的,下一跳为172.20.42.81(pod所在的节点的ip地址),因为使用的是IPIP Always模式,所以会通过tunl0接口发出。
tunl0设备
是一个IP隧道设备,IP 包进入 IP 隧道设备之后,就会被 Linux 内核的 IPIP驱动接管,IPIP 驱动会将这个 IP 包直接封装在一个宿主机网络的 IP 包中,经过封装后的新的 IP 包的目的地址,就是源IP包的下一跳地址,也就是上面的172.20.42.81,原 IP 包本身,则会被直接封装成新 IP 包的 Payload。因为宿主机与172.20.42.81是互通的,不管是二层通还是三层通,必定是可以将IP包传递过去的。当172.20.42.81主机接收到IP包后,172.20.42.81主机网络内核栈会使用 IPIP 驱动进行解包,从而拿到原始的 IP 包,然后跟本机通信一样,经过Veth Pair将请求发送给目标容器。

blackhole

blackhole 10.233.94.0/24 proto bird 

10.233.94.0/24为分配给本机的容器的ip地址,bgp共享路由的时候就是把这个网段发给对方
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值