①Marker:占16字节,用于标明BGP报文边界,固定值为所有比特均为“1”,相当于一个报文的头部标识符。

②Length:占2字节,标识BGP报文总长度(包括报头在内),以字节为单位。

③Type:占1字节,标识BGP报文的类型。其取值从1到5,分别表示Open、Update、Notification、Keepalive和Route-refresh消息。

Open报文:只有邻居建立时会发送此报文

Keepalive报文:邻居建立时、建立后都会发送此报文

Update报文:邻居建立成功后才会发送此报文

报文格式以及参数解析:

一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer ReachableInformation,网络层可达信息)字段中,PathAttributes字段携带了这些路由的属性,BGP根据这些属性进行路由的选择;同时Update报文还可以携带多条不可达路由信息,被撤销的路由放在WithdrawnRoutes字段中,用来通知对等体要撤销的路由。

①Withdrawn routes length:撤销路由的长度,Update报文中可以包含0条、1条或者多条准备撤销的BGP路由。该字段是一个无符号整数,它指示了Update报文中所包含的“撤销的路由条目”字段的长度(字节数)。

②Withdrawn routes:不可达路由列表,长度可变,包含要从对等体BGP路由表中撤销的当前不可达路由的网络地址及前缀。

③Total path attributelength:标识路径属性(Path attributes)字段的长度,占2字节,以字节为单位。如果为0则说明没有下面的Path attributes字段。

④Path attributes:与NLRI字段相关的所有路径属性列表,每个路径属性由一个TLV(Type-Length-Value)三元组构成,可变长度。BGP正是根据这些属性值来避免环路,进行选路、协议扩展等。

⑤NLRI(Network LayerReachability Information):标识网络层可达信息,包含要向对等体通告的每条可达路由的前缀,长度可变。这些可达路由信息来自本地Adj-RIB-In(AdiacentRouting Information Base,Incoming,入方向邻接路由信息库),然后又将加入到对端Adj-RIB-In中。

Notification:邻居建立成功后才会发送此报文

Route-refresh:邻居建立成功后才会发送此报文

1、Route-Refresh报文,用于请求对等体重新发送路由信息;
2、对等体之间发送Open报文进行能力协商时,会进行路由刷新能力协商;
3、当BGP的邻居入口路由策略改变后,会自动向邻居发送Refresh消息请求对等体重新发送路由信息;
4、当BGP的邻居出口路由策略改变后,BGP会向邻居重新发送路由信息;

Route-refresh(路由刷新)报文用来要求对等体重新发送指定地址族的路由信息。

①AFI:Address FamilyIdentifier,地址族标识,占2字节,用于标识所采用的地址族类型。

②Res:保留,1字节,必须为0。

③SAFI:subsequentAddress Family Identifier,子地址族标识,1字节,用于标识子地址族类型。

一条Update报文可以通告一类具有相同路径属性的可达路由,这些路由放在NLRI(Network Layer ReachableInformation,网络层可达信息)字段中,PathAttributes字段携带了这些路由的属性,BGP根据这些属性进行路由的选择;同时Update报文还可以携带多条不可达路由信息,被撤销的路由放在WithdrawnRoutes字段中,用来通知对等体要撤销的路由。①Marker:占16字节,用于标明BGP报文边界,固定值为所有比特均为“1”,相当于一个报文的头部标识符。 我有一个做法,就是在分母可能为零的指标里,默认给分母加上:十亿分之1,0.000000001; 监控的场景本身就是非可靠数,cpu时间、写过的字节数多了这十亿分之1,也不过是泥牛入海。 这种做法仅适用于计量场景,如果数值具有bool是非逻辑,就不适用这种做法。
【博客515】k8s中为什么需要br_netfilter与net.bridge.bridge-nf-call-iptables=1 这么高质量的文章,重在原理的介绍,就算有纰漏,也不至于上升到“误人子弟”的程度。我觉得这篇文章非常精彩,不仅把原理说得很清楚,而且思考的过程也通过一个又一个小问题体现出来。同时,还配了好多示例和图示,良心大大的好! 【博客55】C++ string的clear()函数的真面目! 醉详细的解释,腻害,一起顶你 %dalao 【博客447】使用open vswitch构建虚拟网络 weixin_37915425: 一个虚拟机两个网卡挂载了 物理主机。不是说物理主机的ip没了吗? 那挂载了两个没有ip的主机 有什么意思 【博客447】使用open vswitch构建虚拟网络 lulu的云原生笔记: 是为了体现出里面的多租户场景