1、路由协议(IGP EGP)
IGP: rip ospf isis (EIGRP)
EGP:(BGP)
2、自治系统(AS):由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
自治系统内部的路由协议——IGP
自治系统之间的路由协议——EGP
3、BGP特点:
BGP是外部路由协议,用来在AS之间传递路由信息
是一种增强的距离矢量路由协议 //每经过一个AS,增加一跳(AS号)
可靠的路由更新机制 //通过TCP建立邻居端口(179)
丰富的Metric度量方法 //13种选路机制
从设计上避免了环路的发生 //通过检查AS号,避免环路
为路由附带属性信息
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略
传输协议:TCP,端口号179
无需周期性更新
4、BGP在初始化时会传递路由信息,当初始完成后,只会在路由发生变化时才传递路更新(增加,删除)
路由更新:只发送增量路由
周期性发送keepAlive报文检测TCP的连通性(每60秒发送一次keepalive报文,维护TCP的连性)
5、BGP报文类型:
Open:负责和对等体建立邻居关系。
KeepAlive:该消息在对等体之间周期性地发送,用以维护连接。
Update:该消息被用来在BGP对等体之间传递路由信息。
Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。
Route-refresh:用来通知对等体自己支持路由刷新能力。
6、
OPEN报文
主要字段的解释如下:
Version:BGP的版本号。对于BGPv4来说,其值为4。
My Autonomous System:本地AS编号。通过比较两端的AS编号可以确定是EBGP连接还是IBGP连接。
Hold Time:在建立对等体关系时两端要协商Hold time,并保持一致。如果两端所配置的Hold time时间不同,则BGP会选择较小的值作为协商的结果。如果 在这个时间内未收到对端发来的Keepalive消息,则认为BGP连接中断。
BGP Identifier:BGP路由器的Router ID,以IP地址的形式表示,用来识别BGP路由器。在VRP5.30系统中,如果没有通过命令router id进行配置,则按照 如下 规则进行选择:优选Loopback接口地址中最大的地址作为Router ID,如果没有Loopback接口配置了IP地址,则从其它配置了IP地址 的物理接口中选择一个最大IP地址的作为Router ID。
Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没有可选参数。
Optional Parameters:是一个可选参数用于BGP验证或多协议扩展(Multiprotocol Extensions)等功能。每一个参数为一个(Parameter Type- Parameter Length-Parameter Value)三元组。
UPDATE消息被用作在BGP对等体之间传递路由信息。多条可达路由信息可以被通告到相应的对等体上,或者多条不可达路由信息被撤消。UPDATE消息由以下五个部分组成:
Withdrawn Routes Length :(2字节无符号整数) 不可达路由长度,表示Withdrawn Routes字段的数据长度。如果Withdrawn Routes Length字段数值为 0,则表示Withdrawn Routes字段没有任何数据,在UPDATE消息中不会被显示。
Withdrawn Routes :(变长) 撤销路由。该字段包括一系列的IP地址前缀信息,以<length, prefix>的格式来表示,比如<19,198.18.160.0>表示一个 198.18.160.0 255.255.224.0的网络。
Path Attribute Length :(2字节无符号整数) 路由属性长度,表示Path Attribute字段的数据长度。如果Path Attribute Length数值为0,则表示 Path Attribute字段没有任何数据,在UPDATE消息中不会被显示。
Path Attributes :(变长) 路径属性。每个路径属性都是由三元组所组成:<attribute type, attribute length, attribute value>。
Network Layer Reachability Information :(变长) 网络可达信息。包括一系列的IP地址前缀。格式与撤消路由字段一样<length, prefix>。
最小UPDATE消息的长度为23个字节(19字节的报文头+2字节的撤消路由长度+2字节的路径属性长度)。这样的UPDATE消息被称之为End-of-RIB,用于BGP GR。
一条UPDATE消息可以发布多条具有相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在一个给定的Update消息里的路由属性适用于该Update消息中的NLRI字段里的所有目的地(用IP前缀表示)。
一条UPDATE消息可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚的定义了BGP Speaker之间先前通告过的路由。
一条UPDATE消息可以只用于撤销路由,这样就不需要包括路径属性或者网络可达信息。相反,也可以只用于通告可达路由,就不需要携带Withdrawn Routes了。
Notification报文主要在发生错误或对等体连接被关闭的情况下使用,该消息携带各种错误码(如定时器超时等),以及错误子码和错误信息。
Errorcode:错误码。1字节长的字段。每个不同的错误都使用唯一的代码表示,而每一个错误码都可以拥有一个或多个错误子码,但如果某些错误码并不存在错误子码的话,则该错误子码字段以全0表示。
Errsubcode:错误子码。
消息头错误子码:
1 – 连接非同步
2 – 错误的消息长度
3 – 错误的消息类型
OPEN消息错误子码:
1 – 不支持的版本号
2 – 错误的对等体AS号
3 – 错误的BGP ID
4 – 不支持的可选参数
bgp 65001
router-id 1.1.1.1
peer 2.2.2.2 as-number 65002
peer 2.2.2.2 ebgp-max-hop 255
peer 2.2.2.2 connect-interface LoopBack0
#
在华为设备中,如果两端都使用默认路由建立BGP,邻居是可以正常建立的,但从对端学的路由是不会加入路由表的,如果一端 是默认,一端是静态,从对端学习到的路由可以正常加入路由(思科设备是无法建立邻居的)