使用直连接口 IP 地址连建立 EBGP 对等体关系
1 、启动 BGP 协议
[r1]bgp 100 ---- 这个数字是指的 AS 号,而非是进程号。每一台设备都只能运行一个 BGP 协议,不
能运行多个。
2 、设置 RID
[r1-bgp]router-id 1.1.1.1 ----RID 数值一般与设备身上的环回接口 IP 地址相同
3 、配置 BGP 对等体的 IP 地址,并指定对等体所在的 AS 号
[r1-bgp]peer 12.0.0.2 as-number 200
a. 告知本地设备,邻居的 IP 地址,通过路由表对 IP 地址进行网络可达性验证。
b. 告知本地设备对端所在的 AS 号,判断此时建立的是 EBGP 还是 IBGP 对等体关系;并且可以根据 open报文判断是否出错
使用环回接口来建立 IBGP 对等体关系
1 、启动 BGP 协议
[r3]bgp 200
2 、设置 RID
[r3-bgp]router-id 3.3.3.3
3 、配置 BGP 对等体信息
[r3-bgp]peer 2.2.2.2 as-number 200
此时会发现, R2 和 R3 之间的 BGP 状态处于 Active 状态。原因是因为 R2 在发送报文时,使用出接口 IP 地址作为BGP 报文的源 IP 地址( 23.0.0.2 ),而 R3 收到该报文后,在其 BGP 配置信息中查找不到关于23.0.0.2的邻居信息,故拒绝建立 TCP 会话。 -----> 解决思路,修改 R2 发送的 BGP 报文的源 IP 地址为环回接口IP 地址。
4 、 [r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
R2 使用 loopback 0 接口作为出接口与 3.3.3.3 建立 BGP 会话。通讯双方均需要修改
使用环回接口来建立 EBGP 对等体关系
一般 EBGP 对等体关系之间存在多条物理链路时,会使用环回接口方式建立 BGP 会话。
此时,如果正常去建立 BGP 会话,两端设备会正常建立 BGP 会话,但是,在建立完成后,会通过发送notification报文断开 BGP 和 TCP 的会话关系。
原因:本地设备身上存在静态或 IGP 路由信息,此时设备会认为本地距离目标网段并非直连,故需要进行多次路由数据转发过程,而此时所建立的EBGP 对等体关系的 TTL 数值 =1 ;设备会认为该 BGP 会话不应该建立。但事实建立,出现故障,发送错误报文,断开连接。
解决思路:修改 TTL
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 --- 修改 R4 与 5.5.5.5 建立的 EBGP 对等体的 TTL=2 ,
如果不携带参数,则代表修改为最大值 255
BGP 的路由发布
对于 BGP 而言,只要是全局路由表中存在的路由信息,都可以通过 network 命令发布 。
通过 network 命令发布路由信息
[r1-bgp]network 1.1.1.1 32 --- 目标网络号与掩码信息
注意: BGP 使用 network 命令发布路由,那么这条路由信息必须与本地全局路由表中的网络号和掩码 信息一致 。
BGP 的路由发布不在乎路由信息是否为本地直连,只要路由表中存在,即可以发布 。
使用 ==display bgp routing-table== 查看 BGP 路由表 。
Nexthop 属性 ---- 谁发送的路由信息,则该字段数值填充为谁。如果是本地始发的路由,则下一跳为
0.0.0.0 。


如果一条 BGP 路由信息既有 * 也有 > ;被称为可用且优的路由。代表这这条路由信息可以被加载到全局 路由表中,并且可以被传递给下一个 BGP 对等体 。
R2 将路由信息传递给 R3 后,对于 R3 而言,这条路由信息时不可用且不优的。因为在 AS-BY-AS 规则,导致路由信息在AS 内部传递时不会修改任何内容。故此时的下一跳属性还为 12.0.0.1 ,对于 R3 而言不可达。
解决思路:让 R2 在给 R3 传递路由信息时,将下一跳属性进行修改。
[r2-bgp]peer 3.3.3.3 next-hop-local ---- 在给 3.3.3.3 传递路由信息时,将下一跳属性修改为本地