使用直连接口
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
传递路由信息时,将下一跳属性修改为本地