calico官网网络拓扑实现:基于eNSP与VMVare

2023-12-20 07:38

本文主要是介绍calico官网网络拓扑实现:基于eNSP与VMVare,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Calico官网提供了两种网络设计模式:

  • AS per rack: 每个rack(机架)组成一个AS,每个rack的TOR交换机与核心交换机组成一个AS
  • AS per server: 每个node做为一个AS,TOR交换机组成一个transit AS

每个TOR分为四个交换机,每个node与每个交换机都有连接。通过颜色区分每一个平面。

在Kubernetes平台中,使用calico brid生成的路由条目与endpoint相关,会对路由分配网段,这样可以减少路由条目数量,但不会改变路由数量级。当集群规模过大,endpoints与对应的路由条目也会随之增加,此时就需要可以处理一定量级路由的网络设备。无论使用那种网络模式,始终都会有一个网络设备上要存放calico网络拓扑中的所有路由。所以在使用calico网络时,需要确定网络处理能力,此时使用单独node或master代替bgp反射器不是很恰当了。

实验:完成基于AS per rack的网络设计

实验完成:

  • 每一个rack分配一个AS号,node与TOR之间是ibgp,TOR之间是ebgp
  • node只与TOR建立BGP连接关系,TOR与rack上的所有node建立BGP连接
  • 所有TOR之间以node-to-node mesh方式建立BGP连接

实验目标:将Node的BGP压力转移到了TOR之上。随着rack的增加,还可以使用Spine承担TOR的压力

联通vmvare与eNSP

选择"其他设备" 并添加"Cloud"到eNSP, 并设置对应接口

完成TOR拓扑

这里AR1 AR2 为TOR Cloud的对端为vmvare adpter,连接的是多个虚拟机,因为使用交换机相连,从概念上完成了一个简易的AS per rack

配置交换机

system-view
sysname SW1
vlan batch 10 20 30interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20 30interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10 20 30interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 10 20 30

配置TOR及OSPF

system-view
sysname R1interface GigabitEthernet0/0/0
ip address 10.0.0.253 24
dis this
quitinterface l0
ip address 1.1.1.1 32
quit
ospf router-id 1.1.1.1
area 0
network 1.1.1.1 0.0.0.0
network 10.0.0.253 0.0.0.0
dis thissystem-view
sysname R2interface GigabitEthernet0/0/0
ip address 10.0.0.254 24
dis this
quitinterface l0
ip address 2.2.2.2 32
quit
ospf router-id 2.2.2.2
area 0
network 2.2.2.2 0.0.0.0
network 10.0.0.254 0.0.0.0
dis this

配置TOR间的EBGP

bgp 64512
router-id 10.0.0.253 
peer 10.0.0.254 as-number 63400bgp 63400
router-id 10.0.0.254
peer 10.0.0.253 as-number 64512

配置node与tor的bgp实体

bgp 64512
router-id 10.0.0.253
peer 10.0.0.5 as-number 64512
peer 10.0.0.5 reflect-client
dis ip interface briefbgp 63400
router-id 10.0.0.254
peer 10.0.0.6 as-number 63400
peer 10.0.0.6 reflect-client
dis ip interface brief

配置calico与TOR间BGP关系

配置calico bgp rr需要用到 BGPConfiguration BGPPeer Node 对应的资源清单的配置

配置全局asNumber

apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:name: default
spec:logSeverityScreen: InfonodeToNodeMeshEnabled: falseasNumber: 64512

配置bgp peer

注意bgp对等体作用域范围,也可以理解为使用

node specific: 生效与特定节点
globe: 全局配置,使用该配置时不能配置nodenodeSelector字段,这个配置将集群中所有的节点都建立bgp关系
node-to-node mesh:全互联模式

apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:name: default-64512
spec:node: master01 # 指定bgppeer生效范围,默认为全局模式peerIP: 10.0.0.253 # bgp对等体的IPasNumber: 64512
---
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:name: default-63400
spec:node: node02peerIP: 10.0.0.254asNumber: 63400

此时可以看到node与tor间形成了对应的bgp rr

[root@node02 ~]# calicoctl node status
Calico process is running.IPv4 BGP status
+--------------+---------------+-------+----------+-------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
+--------------+---------------+-------+----------+-------------+
| 10.0.0.254   | node specific | up    | 14:34:30 | Established |
+--------------+---------------+-------+----------+-------------+[root@master01 ~]# calicoctl node status
Calico process is running.IPv4 BGP status
+--------------+---------------+-------+----------+-------------+
| PEER ADDRESS |   PEER TYPE   | STATE |  SINCE   |    INFO     |
+--------------+---------------+-------+----------+-------------+
| 10.0.0.253   | node specific | up    | 01:29:08 | Established |
+--------------+---------------+-------+----------+-------------

对应的tor中也学习到相应的pod间的路由条目,而TOR只与自己建立bgp rr的node的路由进行学习,其他Node的Pod间路由,由tor之间的EBGP进行学习到的。

[R1]dis ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: PublicDestinations : 11       Routes : 11       Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface1.1.1.1/32  Direct  0    0           D   127.0.0.1       LoopBack02.2.2.2/32  OSPF    10   1           D   10.0.0.254      GigabitEthernet0/0/010.0.0.0/24  Direct  0    0           D   10.0.0.253      GigabitEthernet0/0/010.0.0.253/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/010.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/010.244.140.64/26  EBGP    255  0           D   10.0.0.6        GigabitEthernet0/0/010.244.241.64/26  IBGP    255  0          RD   10.0.0.5        GigabitEthernet0/0/0127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

对应的文件

eNSP拓扑

这篇关于calico官网网络拓扑实现:基于eNSP与VMVare的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/515246

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1