Coder Social home page Coder Social logo

duiniwukenaihe / cframe Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ickelin/cframe

0.0 2.0 0.0 36.66 MB

mesh vpn,支持IDC,VPC混合组网,商业化产品请关注:https://www.beyondnetwork.net

License: MIT License

Shell 0.10% Go 99.83% Dockerfile 0.07%

cframe's Introduction

go report Build Status license

English | 简体中文

状态: Alpha

介绍

cframe是一款网格VPN(mesh vpn)项目,能解决多个IP地址不冲突的网络互联,以下是一些典型的应用场景:

  • 跨VPC,跨云之间网络互联
  • VPC与IDC网络互联
  • k8s多集群互联

cframe包括两个重要组件,controlleredge,controller也即是控制平面,用于路由下发以及edge节点管理,edge也即是转发平面,用于路由和转发数据到对应的edge节点,任意两个edge节点互联,形成一个网状结构。

您可以将edge类比为路由器,每个路由器上保存着全量的路由信息,当一个数据包到来时,edge节点查找全局路由,找到对应的下一跳edge并转发。

目录

cframe的核心技术原理

如上图所示,cframe包括controlleredge两个重要角色,除此之外还附加网络管理工具cfctl模块,用于管理edge以及路由。

controller是控制平面,是整个系统最核心的部分,负责管理管理edge以及路由,controller通过读取和订阅存储与etcd当中的信息,并通过长连接实时下发到edge当中。

edge是转发层面,每个edge即是所在的可用区的网关,edge节点之间两两互联,形成一个网状的网络拓扑结构,edge实时接收来自controller的消息,然后将其变更应用到本地。

每个edge所在的可用区包括一个或者多个网络,通常如果只需要VPC互通,那么一个网络就可以解决,如果需要VPC内的k8s集群互通,那么就需要使用路由,将该edge所在的可用区的k8s的网段下发到其他edge当中,让其他edge感知到其存在,从而能够正确的路由。

关于更多的设计文档以及使用细节,您可以阅读:

返回目录

有问题怎么办

返回目录

关于作者

一个爱好编程的人,网名叫ICKelin。对于以下任何问题,包括

  • 项目实现细节
  • 项目使用问题
  • 项目建议,代码问题
  • 案例分享
  • 技术交流

可加微信: zyj995139094 微信群:

cframe's People

Contributors

ickelin avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.