当前位置: 首页 > 后端技术 > Python

四福开源项目推广丨YABGP:BGP协议的另一种Python实现

时间:2023-03-25 23:19:34 Python

开源项目名称:YABGP开源项目负责人:@SmartBGP开源项目介绍:BGP协议的另一种Python实现开源项目类型:团队开放源码项目项目创建时间:2019GitHub数据:166Star,54ForkGitHub地址:https://github.com/smartbgp/y...什么是YABGP?YABGP是BGP协议的另一个Python实现。它可以与各种路由器(包括Cisco/Huawei/Juniper真实设备和一些模拟路由器如GNS3)建立BGP连接,接收和解析BGP报文以供日后分析。支持通过RESTfulAPI向其对等方发送BGP消息(路由刷新/更新)。YABGP不能自主发送任何BGP更新消息,它只是一个代理,一个控制器可以控制多个代理。我们严格按照RFC文档的约定开发这个项目。该软件适用于Linux/Unix、MacOS和Windows系统。功能它可以通过一个IPv4地址以主动方式(作为一个TCP客户端)建立一个BGP会话连接。支持TCPMD5认证(仅支持IPv4,不支持Windows系统)BGP能力支持:4字节ASN,路由刷新(CiscoRouteRefresh),添加发送/接收路径;addressfamilysupport:IPv4/IPv6UnicastIPv4/IPv6LabeledUnicastIPv4Flowspec(有限支持)IPv4SRPolicy(draft-previdi-idr-segment-routing-te-policy-07)IPv4/IPv6MPLSVPNEVPN(部分支持)parseallBGPmessages转换为json格式并写入本地文件(可配置);支持通过基本RESTFULAPI获取对端运行信息或发送BGP报文。你想推荐它吗?你好奇BGP是什么吗?BGP的全称是BorderGatewayProtocol,中文对应边界网关协议,是互联网上核心的去中心化自治路由协议。它通过维护IP路由表或“前缀”表来实现自治系统(AS)之间的可达性,是一种矢量路由协议。BGP不使用传统的内部网关协议(IGP)指标,而是使用基于路径的网络策略或规则集来确定路由。因此,将其称为矢量协议比路由协议更合适。听起来很费解?例如,中国网通、中国电信、中国移动、中国联通、教育网、科技网、卫通等网络相互独立。如何将这些网络连接起来,需要BGP的帮助。以往BGP实现使用比较偏向的语言,比如perl中的Net::BGP库。其他语言系的开发人员不可能通过BGP来学习一门新的语言。现在YABGP是BGP协议的另一种Python实现,让Python开发者可以方便的使用BGP协议。同时,本软件可适用于Linux/Unix、MacOS和Windows系统。该项目已入选“SFOSSP——四福开源项目支持计划”。我们希望利用社区的资源来推动开源项目,并作为一个长期的项目来助力开源行业的发展,与开发者一起共建开源新生态。感兴趣的开源项目负责人或团队成员可通过邮件提供相应信息(开源项目地址、项目介绍、团队介绍、联系方式等),提高沟通效率。联系邮箱:pr@segmentfault.com