两台路由器运行bgp建立任何邻居之前,会先交互tcp的三个报文 ,三次握手做完之后建成一个基于tcp的 信道,基于信道就开始邻居关系建立,只用交互一个open报文 。主要包括路由信的身份标识 ,router id 。 如果一台路由器竟运行bgp又运行ospf建议给两个进程分配相同的router id 。然后你还运行mpls你还可以拿接口地址来做ldp的路由器id 。还包含bgp支持的能力。是否支持AFI支持哪些 AFI在open报文中也会显式。open报文还含一些信息 路由器在哪个As ,我认为你在哪个AS。 交互1个。 谁先指neighbor谁先发起三次握手的连接。
BGP版本:
- 版本4:传统的BGP,只能激活单播的bgp邻居关系进程,只能交互ipv4单播bgp路由。 ipv6 vpn v4都没办法交互
- 版本4+,有AFI 地址簇, SAFi 子地址簇 概念。两台路由器建邻居 可以选择性的激活某一个邻居关系 。ipv4 ipv6 vpn v4。 虽然现在运行都是v4+ 你会自动的不需要任何命令支持的情况 下,去跟对方完成ipv4单播进程的邻居关系的激活。 当然如果你觉得没必要去激活ip v4的 afi,在cisco中可以 no bgp default ip v4 unicast 华为 undo default ipv4 unicast .避免建立多于的邻居邻居关系来消耗资源
一台路由器收到邻居给我发送的open报文,查看里面各种各样参数之前,优先的做一个条件审核,判断open报文是否合法。看三层报头的源ip地址, 本地的bgp进程中neighbor他 为邻居。有 ,合法 ,就能接收并且查看里面的参数 。能接收并且能查看参数基于就可以正常建立。 没有,不合法,丢弃。
open报文的源地址取值规则和ping包取值规则是一样的,neighbor一个地址之后查看通过哪个接口将数据包给发送,发报接口的ip。发送接口的ip就是针对邻居的更新源地址。
EBGp直连接口之间,open报文非法的情况不会发生。IBGP 在as内建立 是非直连建立 ,一般建议使用环回口建立,使用环回口的好处并没有将邻居关系绑定在物理链路 上,设计了网络 设计了冗余,两台路由器可以通过多条路径,连通的时候,bgp的邻居关系就跟路由器之间保持同步冗余性。
有连接就邻居关系就没问题。 但两台路由器使用环回口建邻居的时候,邻居关系往往建不了 ,建不了不带表没路由。不是因为没有路由igp肯定会运行 。默认建 不了,
r1----r2
r1指定r2为环回口 那r1发送的open报文是通过物理接口发的 ,而没有指物理接口,r2收到更新源是是r1物理接口,而物理接口在bgp进程中没有neighbor,所以这是非法的。想使用环回口必须要操控open报文的更新源地址。 强制指定更新源地址为环回口地址。
收到之后邻居发送keepalive代表open认同了。
出现出错的有两种,一种是neighbor的时候参数有问题,配置命令的时候 配置或者AFI有问题。afi不匹配。
建完邻居也可以完全不传路由。传路由出现问题一般体现在ibgp的路由传递上。
r1—r2----r3 1—2 ebgp 2—3 ibgp
r1:as10
r3:as 20
收到ibgp路由下一跳不可达 ,也没有办法加入路由表 也没有能力进一步传递给其它邻居。
一台路由器是边界 连接其它as又连接内部as对于边界 路由器最好在他上面针对所有的ibgp邻居指下一跳 将他它ebgp学习到的路由传递给ibgp对等体的时候,来修改 来解决下一跳不可达的问题。
早前的低端的设备中会自动开启一个功能 bgp同步:一同路由器收到一条ibgp路由 不能用 你只要通过不同学习方式学到这条相同路由时 同步才能满足,这个时候当完成同步之后,ibgp路由才有资格加表 给邻居进一步的路由传递。路由ibgp在cisco看 管理距离是200,而任何其它获悉方式,获得路由管理距离不可能>200。真的满足了同步规则这个时候他的ibgp路由也是不能 被加入路由表的,但并不影响管理距离传递。不满足同步 第一不能加表 第二不能给邻居发送走。
同步规则用来解决bgp的黑洞问题 bgp在建立ibgp邻居的时候 未必直连建立 所以 一台路由器收到一条bgp路由 使用该 路由转发数据的时候 这个数据未必能够成功到达目的地的原因是,你不能保证as流量路径中的每台路由器都运行bgp。在中途到达没有运行bgp路由器的时候 就会被丢弃。解决 5种
同步也是解决这个问题。
ibgp的属性是这个as 内的所以路由器都会使用的。
后面设计者他发现 想让所有的ibgp满足同步规则,这个是不切实际 的,ibgp有几十万条并不能都通过bgp学习到。 一条路由器收到一条ibgp路由会先看这个下一跳是否可达。才能成功加表 传递。
传路由 两种情况 始发:1.network 主类精确 2.redistribute 开启自动汇总 主类 不开 精确。3.汇总
bgp建邻居和传路由是分开的,默认bgp域内是没有任何路由的
因为默认bgp域内是没有路由的