OPEN
KEEPALIVE
UPADTE
NOTIFICATION
一、OPEN报文格式
1、版本(version):1字节,BGP协议版本号。邻居协商期间,对等路由器就使用BGP版本号达成一致。通常使用两个路由器都支持的最高版本。
2、本自治系统(my autonomous system):2字节,标明发送路由器的AS号。
3、保持时间(hold time):2字节,指明在相邻的keepalive和update报文间可等待的最大时间,单位为秒。协商为最小值。
4、BGP标识(bgp identifier):4字节,指出发送路由器的BGP标识。此字段是路由器的ID号,也就是BGP会话启动时最高的回送(loopback)地址或路由器上的最高的IP地址。
5、可选参数长度(optional parameter length):1字节长,它指出可选参数字段的总长度(以字节为单位)。如果没有可选参数,此字段被设为0。
6、可选参数(optional parameter):此字段为变长的。它给出BGP邻居会话协商中的可选参数的列表。
二、UPDATE报文格式
当一个BGP说话者通告或撤消来自从对等路由器的一个路由时,UPDATE报文被使用。UPDATE报文包括定长的BGP头和:不可行路由长度(unfeasible routes length):包含撤消字段的长度、撤消的路由(withdrawn routes):包含了从服务中撤消的路由的IP地址前缀列表、路径属性总长度(total path attribute length)、路径属性(path attributes),此变长字段包含了与网络层可达性信息字段中的前缀相关联的BGP属性的列表。路径属性给出了正被通告的前缀的信息,如优先级,其中路径属性分为4类。
1、well-known mandatory:BGP更新报文中必须包含的,且必须被所有BGP协商所能识别的。ORIGIN、AS-PATH、NEXT-HOP就是三个这种属性的例子。
ORIGIN:路由更新的源AS。说明了源路由是怎样放到BGP表中的。一个中由可以从诸如OSPF的一个IGP得到,它被重分发布进BGP。本属性可由外部路由协议(EGP)或其他除IGP或EGP之外的东西(如静态路由)等得知。
有三个可能的源:IGP、EGP、INCOMPLETE。路由器在多个路由的处理中使用这个信息。路由器选择最有最低ORIGIN类型的路径。IGP比EGP低,EGP比INCOMPLETE低。
AS-PATH:指出包含在UPDATE报文中的路由信息所经过的自治系统。
NEXT-HOP:定义了被用来作为到达UPDATE报文中列出的目的地的下一跳的边界路由器的IP地址。
2、well-known discretionary:指必须被所有BGP实现所识别,但是在BGP更新(update)报文中可发不可发的属性。
LOCAL-PREFERENCE(本地优先级):用来区分到同一目的地的各个路由优先程度的。本地优先级越高,路由优先级就越高。本地优先级并不包含在发送到AS外的BGP邻居的更新报文中。如果这个属性包含在来自于不同AS中的BGP邻居的更新报文中,则该更新被忽略。
ATOMIC-AGGREGATE:指出已被丢失了的信息。当路由聚合时将会导致信息的丢失,因为聚合来自具有不同属性的不同源。如果一个路由器发送了导致路由信息丢失的聚合,路由器被要求将原子聚合属性附加到该路由上。
3、optional transitive:不要求所有的BGP都支持。如果该属性不能被BGP进程识别,它就会去看传递标志。如果此标志被设置了,BGP进程会接受这个属性并将它传给其他BGP speaker。
AGGREGATOR:标明了实施路由聚合的BGP SPEAKER(IP地址)和AS号。
4、optional nontransitive:不要求所有BGP实现都支持。如果此属性不能被BGP进程识别,它会去查看传递标志。如果未设置传递标志,此属性应该被忽略并不传送给其他BGP对等体。
MULTI-EXIT-DISC:MED被BGP SPEAKER用来区分到一个相邻AS的多个出口点。低MED表示高优先级。MED属性在自治系统间切换,但MED属性进入一AS后就不离开该AS(非传递的)。这与local pref的处理不同,在这里外部路由器能够影响到另一个AS中的路径选取。使用local pref仅能影响到自己AS内部的路由。