当日总结

BGP协议原理与配置

BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选

BGP协议特点:不需要自动建邻也不能自动建邻(手动建邻),跨跳数建邻,只能单播

224开头的组播只能传1跳

bgp建立邻居命令 bgp怎么建立邻居_链路

建立邻居的特点:凡是TCP 179 端口能够通信的路由器都可以建立BGP邻居,可以跨跳数,手动建立邻居

路由传输特点:传输的路由既不是链路状态信息也不是纯距离矢量信息,更多的是一种路径信息(BGP是通过属性来表达路径信息的),BGP也是通过不同属性来判断选路的

建立邻居

bgp建立邻居命令 bgp怎么建立邻居_TCP_02

TCP的179手动建立,手动意味着需要配置建立邻居的对象(通信地址),首先三次握手,然后依次发送open、keeplife、update、notifaction包,建立邻居。

形成两种类型的邻居关系

bgp建立邻居命令 bgp怎么建立邻居_链路_03


bgp建立邻居命令 bgp怎么建立邻居_链路_04

建立邻居的配置

bgp建立邻居命令 bgp怎么建立邻居_链路_05

关于优化的原因:EBGP直连建立邻居的原因是直连不需要额外配置路由。
IBGP回环建立邻居的原因是:
1、一般情况下AS内有IGP可以使得全网互通
2、主要是如果用物理接口建立邻居会出现TCP双向通信源目地址不匹配的问题,还有物理接口不太稳定
注意:回环建立的邻居的时候必须手动指定源地址为回环接口否则会出现会话源目不匹配TCP无法建立的问题

BGP建立邻居的过程以及状态机

bgp建立邻居命令 bgp怎么建立邻居_链路_06

上述图中的open包会比对AS号、建邻地址、版本、认证、keeplive时间等信息,其中版本和keeplive参数是向下兼容的。

上图中如果出现connect状态没有建立TCP会话,会进入到一个特殊状态active,该状态可以让BGP持续建立TCP会话。

BGP路由的生成方式

bgp建立邻居命令 bgp怎么建立邻居_路由表_07

BGP宣告是掩码精确宣告(不精确的宣告无效),该宣告不会像OSPF那样被宣告的接口会自动建立邻居。

BGP的宣告是针对路由表的,路由表有的路由都可以宣告(直连、静态、IGP)

bgp建立邻居命令 bgp怎么建立邻居_TCP_08


bgp建立邻居命令 bgp怎么建立邻居_路由表_09


bgp建立邻居命令 bgp怎么建立邻居_链路_10

EBGP非直连建立邻居

一般是为了增加链路的可靠性选择双线连接然后回环建立邻居

bgp建立邻居命令 bgp怎么建立邻居_bgp建立邻居命令_11

EBGP-MAX-HOP这条命令是因为BGPebgp默认跳数是1,非直连需要修改跳数

BGP传递路由原则之一:仅将自己最优的路由发布给邻居

bgp建立邻居命令 bgp怎么建立邻居_TCP_12

优的路由BGP会为其打>标识,只有>标识的路由才能传递,上图路由器D对于100路由的学习也反映了BGP默认情况下不做负载均衡。-----原因是BGP负载均衡数被默认设置为1

bgp建立邻居命令 bgp怎么建立邻居_bgp建立邻居命令_13


bgp建立邻居命令 bgp怎么建立邻居_链路_14


bgp建立邻居命令 bgp怎么建立邻居_路由表_15

BGP路由信息处理

bgp建立邻居命令 bgp怎么建立邻居_TCP_16

原则三:IBGP邻居不中转路由----IBGP从其他IBGP邻居学到的路由不能传递给它其他的IBGP邻居。IBGP邻居之间传递路由时不会修改路由信息(不会修改下一跳,会导致IBGP邻居学到的路由信息下一跳不可达造成路由不优)
BGP属性

bgp建立邻居命令 bgp怎么建立邻居_路由表_17


bgp建立邻居命令 bgp怎么建立邻居_链路_18

三种:内部宣告的为i,外部引入的为?,EGP来的为E 规则:i>?>E防环

bgp建立邻居命令 bgp怎么建立邻居_TCP_19


bgp建立邻居命令 bgp怎么建立邻居_TCP_20


bgp建立邻居命令 bgp怎么建立邻居_链路_21


bgp建立邻居命令 bgp怎么建立邻居_链路_22

1、Origin
2、AS_Path
3、Next_hop
4、Local_Preference
5、MED 只能在两个AS之间玩,不能出现第三者,med必须是相同来源才能比较,3个不可以