BGP路由协议

BGP动态路由协议

BGP是一种路径矢量路由协议,用于AS间路由信息的交换;不同与OSPF、RIP、IS-IS协议等IGP协议,BGP是EGP协议。BGP提供了在不同自治系统之间无环路的路由信息交换。BGP基于策略的路由协议,通过丰富的路径属性进行控制,有着丰富的路由过滤和路由策略;

  • IGP协议:用在AS内部的路由协议,实现AS内部路由器之间的路由信息的交换。
  • EGP协议:用在AS之间的路由协议,实现AS与AS之间的路由信息的交换。

《BGP路由协议》

BGP的工作过程

BGP使用可靠的TCP传输进行路由信息的交换。BGP工作在应用层,其端口号为179。BGP的邻居关系必须建立在可靠的TCP之上,所以在建立TCP连接之前,需要知道邻居的IP地址,一般会使用IGP路由协议或者静态路由与直连端口获得邻居的IP地址;若TCP建立连接失败,则会持续尝试建立连接,直到连接成功;建立TCP连接后,需要进行能力交互,因为任何支持IP协议栈的设备都能够支持TCP连接,但并不是任何设备都支持BGP,所以需要进行能力的确认;确认完成后,会进行路由信息的交换;BGP采用持久的TCP连接方式,所以当路由信息发送改变的时候,BGP也能够迅速的改变路由信息,快速收敛。

    《BGP路由协议》

建立连接的两台设备互为对等体;BGP为确保两端设备都存活,要求运行BGP的设备周期性发送keepalive报文;若一端设备在超过存活时间未发布keepalive消息,就会认为对方已经停止BGP运行,于是会拆除TCP连接,并会将从对端学到的路由全部删除。

BGP报文类型

BGP通过定义四种类型的报文进行路由信息的交互,共有四种报文,分别是OPEN报文KEEPALIVE报文UPDATE报文NOTIFICATION报文

  • OPEN报文:主要包括BGP版本、AS号等信息;在建立TCP连接后,两端就会发送OPEN报文,交换各自的信息,以确认是否能够建立BGO邻居关系。
  • KEEPALIVE报文:用于BGP邻居的维护,周期性发送KEEPALIVE报文,能够检测BGP邻居的状态,判断邻居可达性。
  • UPDATE报文:邻居间使用UPDATE报文进行路由信息的交换,是BGO四种报文最重要的报文,包括撤销路由和可达路由信息与路由属性。
  • NOTIFICATION报文:BGP的差错检测机制,用来检测差错,一旦发送错误,BGP Speaker就会发送该报文进行关闭邻居关系。

《BGP路由协议》

BGP工作原理

  • IBGP邻居:在同一个AS内,建立邻居的两个BGP路由器
  • EBGP邻居:在不同AS之间,建立邻居的两个BGP路由器

《BGP路由协议》

BGP路由宣告原则

  • 路由宣告原则一:BGP连接建立后,会将自己的所有BGP路由进行宣告,当去往某条路由有多条路由时,BGP Speaker会使用最优的一条路由。

  • 路由宣告原则二:BGP Speaker只会将自己使用的路由宣告给对方,即在BGP路由表中又在路由表中的路由。

BGP Speaker提供的最优路由不一定被路由所使用,因为静态路由的优先级比BGP路由优先级高。

  • 路由宣告原则三:BGP Speaker从EBGP中学到的路由会向所有BGP路由器宣告,包括EBGP和IBGP。

  • 路由宣告原则四:BGP Speaker从IBGP中学到的路由不会向IBGP邻居宣告。

因为IBGP路由器是同一AS,若相互宣告网络会引起路由环路,则BGP规定IBGP只会向EBGP宣告路由信息。

《BGP路由协议》

  • 路由宣告原则五:BGP Speaker从IBGP学到的路由是否宣告到EBGP,要依据IGP和BGP同步情况决定。

BGP协议的主要功能是路由信息交换,而不是发现和计算路由。若IBGP建立邻居交换路由信息后,但AS内部没有去往IBGP的路由,则路由信息被丢弃,所以需要进行IGP与BGP的路由同步。

《BGP路由协议》

BGP路由的注入

BGP路由协议的主要目的是在自治系统之间传递路由信息,而不是发现和计算路由信息,所以路由信息需要通过配置指令的方式注入到奥BGP中,则BGP注入路由有两种方式:Networkimport

  • Network:路由器将路由表中的路由信息通过Network注入到BGP路由表中,并通过BGP转递到其他对等体。
  • import:使用import将其他的路由协议的路由信息注入到BGP路由表中,import一般配合组合策略共同使用。

BGP的属性

BGP是有着丰富的路径属性,主要分为四大类,公认必遵公认任意可选过渡可选非过渡

  • 公认必遵:BGP必须识别所有公认属性,强制携带的属性必须包含在每一个UPDATE消息中。
  • 公认任意:其他任意属性可能会被包含在UPDATE消息中。
  • 可选过渡:可选属性并不是所有的BGP路由器都会识别,可选过渡就是可以跨越AS域。
  • 可选非过渡:可选非过渡就是不可以跨越AS域。

BGP常见属性

  • Origin:起源属性,表示路由信息的来源,IGP是“i”、EGP是“e”、未知路由是“?”。
  • AS_PATH:AS路径属性,是路由经过的AS序列,BGP不会学习所在AS的路由,则可以形成防止路由环路。
  • Netx Hop:下一跳属性,包含到达下一跳边界路由器的IP地址。
  • MED:当AS有多个入口时,MED表示各个入口的开销,MED值越小越优先。
  • Local-Preference:用于AS内挑选去往同一目的地的一条路由,属性值越大越优。
  • Community:团体属性,标识了一组有着相同特征的路由信息。

BGP的选路原则

  • 当路由的下一跳不可达时,会忽略该路由。
  • Local-preference值最高的路由优先。
  • 聚合路由优先于非聚合路由。
  • 通过AS_PATH评估AS路径的长度,最短的路径优先。
  • 比较Origin属性,优先级:IGP>EGP>Incomplete。
  • 选择EMD值较小的入口。
  • EBGP路由优于IBGP路由。
  • BGP优先选择到BGP下一跳的IGP度量最低的路由。
  • 比较对等体的IP地址,选择IP地址数值最小的路径。
    原文作者:A岛钙奶
    原文地址: https://blog.csdn.net/weixin_49581968/article/details/121359862
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞