bgp 大致了解
AS(Autonomous System):自制系统/路由选择
不同的AS之间,使用EGP来进行通信。BGP作为EGP中的一种协议,用于在AS之间进行路由控制和优先
IGP:内部网关协议(包含有:OSPF、RIP、IS-IS等注重于发现和计算路由。执行在AS内部)
EGP:外部网关协议 包含有:EGP(目前不使用)、BGP:外部网络路由协议代表(目前AS间路由协议或者说的EGP协议一般都指的是BGP协议)
由于BGP的前身EGP由于设计简单,只能简单的传递路由信息,不会对路由进行优选,会造成环路等问题,所以就有了BGP代替了EGP
AS之间的路由我们可以将一个AS看成一个大路由器
BGP特点:
1.可靠的路由更新机制
2.丰富的度量方式
3.避免环路
4.路由附带属性信息
5.支持CIDR、VLSM
6.丰富的路由选择和路由控制
7.增量更新计算
8.可以跨越多跳路由器建立邻居关系
BGP邻居关系和配置
建立TCP连接
BGP协议被设计运行在AS之间传递路由,AS之间是广域网链路,数据包在广域网上传递是可能出现不可预测的链路拥塞或丢失等情况,因此BGP使用TCP作为其承载协议来保证可靠性。
相当于TCP连接一直存在,BGP通过Keep alive机制(不断、定时发送keepalive报文)时TCP连接不会断掉
BGP使用TCP封装建立邻居关系,端口号为179,TCP采用单播建立连接,因此BGP协议并不像RIP和OSPF一样使用组播发现邻居。单播建立连接也使BGP只能手动指定邻居。(配置的时候需要自己手动指定邻居)
TCP连接(三次握手)简单介绍:
一下图为例:RTB向RTA发起建立TCP连接请求,RTA收到之后,返回一个连接请求和确认消息,RTB收到之后返回一个确认消息。连接建立完成。
BGP邻居类型
BGP邻居类型分为两种:
EBGP(External BGP):运行在不同AS之间的BGP路由器建立的邻居关系为EBGP邻居关系
IBGP(Inter BGP):运行在相同AS内的BGP路由器建立的邻居关系为IBGP邻居关系
EBGP只用于不同AS之间传递路由。如图,AS 100内的RTB与BTC分别从AS 200与AS 300学习到不同的路由,怎么实现AS 200与AS 300之间路由在AS 100内的交换?
在AS 100内实现将学到的AS 200和AS 300路由进行交换,可以在拓扑中的RTB与RTC路由器上将BGP的路由引入IGP协议(图中为OSPF协议),再将IGP协议的路由在RTB与RTC路由器上引入回BGP协议,实现AS 200与AS 300路由的交换。
BGP简单邻居关系配置
注意:建立IBGP邻居关系建立一般使用Loopback口IP地址,因为Loopback口为逻辑接口,且不会down,非常稳定,这样邻居关系一直处于稳定状态。EBGP邻居关系建立使用直连接口IP地址。
第一步
搭建拓扑,规划网段并配置各个接口IP地址。
第二步
AS 100内部使用IGB:OSPF协议通信。配置OSPF协议(只设置其中一个)
验证RTB环回口是否能与RTC环回口通信,若正确则进行下一步:
第三步
配置BGP邻居关系:
以RTB、RTD之间建立EBGP关系为例:
[RTB]
[RTB]bgp 100
[RTB-bgp]peer 10.1.24.4 as-number 200 //BGP邻居关系的类型主要靠配置的AS号区别,peer关键字后面是对端邻居的接口IP地址,as-number后面是邻居路由器所在的AS号,AS号相同则为IBGP邻居关系;AS号不同,则为EBGP邻居关系。
[RTD]
[RTD]bgp 200
[RTD-bgp]peer 10.1.24.2 as-number 100
第四步
配置IBGP邻居关系:
本例中RTB和RTC建立IBGP邻居关系(本例使用逻辑接口建立IBGP邻居关系):
[RTB]
[RTB]bgp 100
[RTB-bgp]peer 33.33.33.33 as-number 100 //AS号相同则为IBGP邻居关系
[RTB-bgp]peer 33.33.33.33 connect-interface LoopBack 0
[RTC]
[RTC]bgp 100
[RTC-bgp]peer 22.22.22.22 as-number 100
[RTC-bgp]peer 22.22.22.22 connect-interface LoopBack 0
[RTC-bgp]
额外提供直连接口配置方法:
[RTB-bgp]peer 10.1.12.1 as-number 100
查看邻居关系display bgp peer
:
以RTB为例:
注意:此时BGP邻居关系已经建立,但是由于没有路由引入所以没有路由表,查看BGP路由表命令:display bgp routing-table
。路由引入命令下一遍文章介绍