现在大多网络运营商都是通过BGP协议与自身的AS号来实现多线互联的。
BGP的线路还有较好的拓展性和融合性,能够实现和其它运营商之间的互访互通,从而实现单IP的多线路优势。
BGP简介:
BGP协议是外部网关协议,目前使用最多的版本是BGP-4,通常简写为BGP。
BGP协议特点:
1、BGP是一种外部网关协议,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。
2、BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性。
3、BGP是一种距离矢量路由协议,在设计上就避免了环路的发生。
4、BGP提供了丰富的路由策略,能够实现路由的灵活过滤和选择。
5、BGP采用触发式增量更新,而不是周期性的更新。
BGP协议的建立
有两个必要条件
1、两个路由器指定建立对等体的地址必需可达。
2、TCP连接能够建立。
参考文章:
https://cloud.tencent.com/developer/article/1922673
BGP报文
BGP存在5种不同类型的报文,分别是open、update、notification、keepalive、route-refresh。
BGP抓包报文
由于BGP一般使用者是运营商或者是大型跨国企业,所以这个包在实际中不好抓取。
在ENSP中抓包。
先使用TCP三次握手建立链接。
我们来看看BGP的open message报文
字段解释:
1、Marker:16Byte,用于标明BGP的边界,所有的bit均为“1”
2、Length:2Byte,BGP总报文长度(包括报文头)
3、Type:1Byte,BGP报文的类型。其取值从1到5,分别表示open、update、notification、keepalive、route-refresh报文。
4、当前版本为4
5、AS号为200
6、BGP的标识为2.2.2.2
之后这个option是BGP路由信息条目中可携带的参数
看看update message报文
一个Update报文可以通告具有相同路径属性的多条路由,这些保存在NLRI(网络层可达信息)中。
keepalive message报文
仅仅维持邻居关系
路由更新报文
Route-refresh报文用于要求对等体重新发送指定地址族的路由信息,一般是本地修改了相关的路由策略,让对方重新发送update报文。
BGP通告原则
1、从IBGP对等体获得的BGP路由,BGP设备只传递给它的EBGP对等体。
2、从EBGP对等体获得的BGP路由,BGP设备传递给它所有EBGP和IBGP对等体(对等体是IBGP只能传递一跳,对等体是EBGP则不限制)
3、当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
4、路由更新时,BGP设备只发送更新的BGP路由
5、所有对等体发送的路由,BGP设备都会接收
6、所有EBGP对等体在传递过程中下一跳改变
7、所有IBGP对等体在传递过程中下一跳不变(需要特别注意)
8、默认EBGP传递时 TTL值为1(需要特别注意)
9、默认IBGP传递时 TTL值为255
更多的规则,实际中碰到再查询手册。