quagga源码学习--bgp协议创建对等体

丹西 丹西     2022-08-21     677

关键词:

现有的路由协议都是通过分布式协议逐个配置协商运行的,协议协议,一个就不需要协议咯,至少2个才能够协议着做事情嘛,不过呢,这样就出现网元过多配置困难的问题,对网管软件要求也越来越高,

SDN或许可能改变这个局面,但不管软件如何定义,报文还是在一个一个网络节点传输的,所以我们看到quagga这样多的传统网络配置命令不要觉得繁琐,不配置的话,协议不会工作哦。

 

嗯,这章的主题是创建对等体,就是通过配置命令来完成的。

“neighbor peer remote-as asn”

router bgp 1
neighbor 10.0.0.1 remote-as 2

neighbor peer remote-as 命令就是配置一个对等体,peer是指对等体的地址(ipv4,ipv6地址)。


接下来我们看代码是如何创建对等体的,入口函数:

1 DEFUN(neighbor_remote_as,
2       neighbor_remote_as_cmd,
3       NEIGHBOR_CMD2 "remote-as " CMD_AS_RANGE,
4       NEIGHBOR_STR
5       NEIGHBOR_ADDR_STR2
6       "Specify a BGP neighbor
"
7       AS_STR) {
8     return peer_remote_as_vty(vty, argv[0], argv[1], AFI_IP, SAFI_UNICAST);
9 }

可以看到,bgp对等体之间是单播通信。

1 /* If peer does not exist, create new one.  If peer already exists,
2    set AS number to the peer.  */
3 int
4 peer_remote_as(struct bgp *bgp, union sockunion *su, as_t *as,
5                afi_t afi, safi_t safi)

peer_remote_as函数来完成创建新对等体或者为对等体设置新的as号。

 

quagga源码学习--bgp协议路由更新

BGP的核心就是交换路由,所以关键的部分还是在路由的更新与撤销上面,这之间包含了冗长的属性,community等等处理过程,不做详述。bgp_read函数是路由更新的事件处理函数,在收到BGP_MSG_UPDATE消息的时候开始调用bgp_update_receive... 查看详情

bgp协议

简单了解?BGP协议被称为是路径矢量型路由协议,它与距离矢量型路由协议有些相似的地方,但也有很多不同的地方,它的侧重点不在于计算路由,而是在于如何在自治系统之间传递路由和控制路由。它与RIP、OSPF不同,是外部网关协议... 查看详情

什么是bgp对等体

...视频哪里有下载呢? 第5个回答 2012-05-25不懂,我也来学习下 查看详情

【网络工程师配置篇】——bgp路由基础配置(ensp)

...是一种不同自治系统的路由设备之间进行通信的外部网关协议(ExteriorGatewayProtocol,EGP),其主要功能是在不同的自治系统(AutonomousSystems,AS)之间交换网络可达信息,并通过协议自身机制来消除路由环路。BGP使用TCP协议作为传输协... 查看详情

bgp协议

...AS内产生环路。即为防止环路,BGP协议规定,路由器从IBGP学习到的路由不向它的IBGP对等体发布。另外为了防止产生路由黑洞,协议还规定BGP发言者从IBGP获得的路由是否发布给它的EBGP对等体与是否同步相关。BGP消息BGP的运行是通... 查看详情

bgp是啥技术?

BGP是自治系统间的路由协议,它的主要功能是和其他BGP说话者之间交换网络可达性信息。一个BGP说话者是任何为BGP配置的设备。BGP使用TCP作为它的传输协议(端口179),这提供了可靠的数据传输。两个BGP路由器形成了一个传输协议... 查看详情

quagga代码学习之bgp4

文中理解参考:http://www.cnblogs.com/danxi/p/6344116.html等关于Quagga的源码学习 第一部分:入口函数int main(intargc,char**argv) //bgp_main.cvty_init(bm->master)bgp_init() //installcommandbgp_scan_init() 查看详情

bgp的反射器和联盟(代码片段)

...RTB以及RTC。由于RTB和RTC互为IBGP对等体,所以不会把从IBGP学习到的路由通告给其它IBGP对等体。?如果该通告原则可以被放松,允许RTC可以把从RTA学习到的IBGP路由通告给其它IBGP对等体的话,这样将可以取消RTA与RTB之间的IBGP会话,RT... 查看详情

bgp的路由发布策略

BGPSpeaker只把自己使用的路由通告给对等体。(BGPSpeaker只选最优的路径给自己使用,即只将最优路由发布给对等体;) BGPSpeaker从EBGP获得的路由会向自己的所有的BGP对等体通告(包括EBGP对等体和IBGP对等体)。 BGPSpeaker从IBGP... 查看详情

as自治系统

...国的身份证,在交换路由表信息中会加入各自的ASN。当AS学习到其他AS的路由表后,会把用户的请求转发到其他AS的边界路由器并,服务器返回时也会检查来源并转发回用户自身所在的AS。除了ISP以外还有一些大型企业也会拥有自... 查看详情

乾颐堂军哥hcie12-bgp的对等体组和bgp的路由操控理论和实验

BGP1.对等体组peergroup出/入方向策略需要一致步骤:定义peer组:groupQYTinternal在组中添加内容,即命令或者策略peerQYTconnect-interfaceLoopBack0peerQYTreflect-client针对一个邻居来调用peer组:peer55.1.1.1groupQYT!bgp345groupQYTinternalpeerQYTconnect-in 查看详情

数通面试私房菜之bgp专题第二期:bgp状态机详解

BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Ac... 查看详情

当bgp的邻居状态机处于啥状态是,标志着与邻居的tcp连接已经正常建立

...责AS内部的路由发现和计算。BGP是基于TCP端口号179的路由协议,基于TCP的优点体现在:三次握手建立邻居的可靠机制;可以跨链路建立邻居关系;TCP有确认重传机制,无需在BGP中完成;BGP的认证由TCP完成的,认证字段在TCP头部的o... 查看详情

数通面试私房菜之bgp专题第一期:bgp邻居建立过程

...ol)是一种用于自治系统(AutonomousSystem)之间的动态路由协议。BGP使用TCP作为其传输层协议(监听端口号为179)。BGP对等体间通过以下5种报文进行交互,其中Keepalive报文为周期性发送,其余报文为触发式发送:?Open报文:用于建... 查看详情

quagga的安装

QUAGGA是一款开源的路由软件,也是zebra(已经停止更新)的升级维护版本。作用:将Linux设备变成一个功能完整的路由器。支持的协议:rip,ospf,bgp等。 各种简单的介绍使用方法啊等等什么的可以去官网搜刮一下!官网:http... 查看详情

怎么在quaggabgp路由器中设置ipv6的bgp对等体和过滤

参考技术A这个问题是高等路由上才有的。推荐使用360路由器本回答被提问者采纳 查看详情

互联网协议—mp-bgp(多协议bgp)

目录文章目录目录MP-BGPMP-BGP传统的BGP-4使用UpdateMsg在对等体之间交换路由信息。一条UpdateMsg可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(NetworkLayerReachableInformation,网络层可达信息)字段中。因... 查看详情

浅谈bgp

通知发送,这个对等体连接就不会建立。如果对等路由器都同意这些参数,则整个BGP路由表通过UPDATE报文进行交换。UPDATE报文包含了经过每个系统的可达目的地的列表(即网络层可达性信息NLRI)以及每个路由的路径属性。路径属性... 查看详情