简介
不同AS(自治系统)之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选,AS的内部使用IGP来计算和发现路由。
IGP(内部网关协议):RIP、OSPF、ISIS (一个AS内部,对其他AS一无所知)
EGP(外部网关协议):BGP (多个AS之间,只了解整体结构,不了解各个AS内部拓扑结构)
AS(自治系统):1~64511公有,64512~65534私有,2009.1后使用四字节长度,65536~4294967295
BGP与RIP的区别
1、BGP是一种距离矢量(DV)的路由协议,但是比RIP有很多增强的性能
2、BGP使用TCP作为传输协议,端口号179,在通信时先建立TCP会话,这样数据传输的可靠性就由TCP协议来保证,而在BGP中不用再使用差错控制和重传的机制,从而简化了复杂的程度,BGP可以跨越多跳路由器建立邻居关系
3、BGP使用增量的,触发性的路由更新,而不是整个路由表周期更新,BGP使用keepalive监视TCP会话
4、BGP使用多种衡量路由路径度量标准(路由属性),更加准确判断最优路径
注意:一般TCP的源端口随机产生,目的端口为知名端口,UDP的源目端口一般一致
BGP属性
一、公认属性:所有BGP路由协议都必须识别并支持的属性
1、公认必遵:BGP的Update消息中必须包含的属性,如果缺少这种属性,路由信息就会出错(Origin、AS_path、Next_hop)
2、公认任意:不必存在于BGP的Update消息中(Local_Pref、Atomic_aggregate)
二、可选属性:不要求所有BGP路由器都能够识别的属性
1、可选过渡:接收的BGP如果不能识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并使用这种属性(Aggregate、Community)
2、可选非过渡:接收BGP如果不能识别这种属性,将丢弃该属性,不必再转给邻居路由器(MED..)
BGP的邻居类型
1、运行在不同AS之间的BGP路由器建立的邻居关系为EBGP(External BGP)邻居关系。(物理接口)
默认情况下,发送数据包的TTL=1(限制EBGP邻居直连,防止DOS攻击)
[RTD]bgp 200
[RTD-bgp200]peer 1.1.1.1 ebgp-max-hop 2 //将TTL修改为2(如果采用loopback)
[RTD-bgp200]peer 1.1.1.1 as-number 100 //1.1.1.1所处的AS
[RTD-bgp200]peer 1.1.1.1 connect-interface loopback0 //采用loopback建立关系
display bgp peer //查看bgp关系
2、运行在相同AS内的BGP路由器建立的邻居关系为IBGP,建议使用loopback接口建立关系(比较稳定、可以实现冗余备份)
因为BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系。如图所示,RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学到的路由传递给对端,实现BGP路由在AS内的传递。
BGP路由生成的方式
1、Network:逐条将IP路由表中已经存在的路由宣告到BGP路由表中,前缀和掩码必须完全匹配,i标识
2、import:根据运行的路由协议(RIP、OSPF、ISIS等)将路由引入到BGP路由表中,为了防止其他路由被引入到BGP中,需要配置ip-prefix或ACL精确匹配,调用route-policy在BGP引入路由进行控制,该路由也必须存在路由表中,?标识
display bgp routing-table
一个AS就是一跳
穿出AS下一跳会发生变化
peer 4.4.4.4 next-hop-local //告诉4.4.4.4 你学习的下一条为我