一、IBGP和EBGP的作用及特点
IBGP 和 EBGP 是 BGP 协议的两种运行模式,分别用于自治系统(AS)内部和外部的路由信息交换。
(一)、IBGP(Internal BGP)特点与作用
****作用范围:****运行于同一自治系统(AS)内部,用于在 AS 内部传递从 EBGP 学到的外部路由信息,确保 AS 内所有路由器拥有全局一致的路由表。
****防环机制:****通过水平分割规则防环,即从一个 IBGP 邻居学到的路由不能传递给其他 IBGP 邻居,防止 AS 内部形成路由环路。
****下一跳处理:****传递路由时不修改下一跳地址(next-hop),保持 EBGP 学来的原始下一跳。为解决非直连问题,通常在边缘路由器上配置 next-hop-self。
****全连接需求:****IBGP 需要全互联拓扑(全连接),即所有 IBGP 邻居两两建立会话,否则可能导致路由黑洞。为简化部署,可使用路由反射器(Route Reflector) 或联盟(Confederation)。
****属性传递:****在 IBGP 会话中,Local_Pref 等本地优先级属性会被传递,用于影响出站流量选路。
(二)、EBGP(External BGP)特点与作用
****作用范围:****运行于不同自治系统(AS)之间,是互联网上 AS 互联的唯一标准外部网关协议,用于交换跨 AS 的路由信息。
****防环机制:****通过 AS_PATH 属性防环。当收到一条路由时,若其 AS_PATH 中包含自己的 AS 号,则直接丢弃该路由,防止跨 AS 环路。
****下一跳处理:****传递路由时会修改下一跳地址为自身的接口地址,确保下一跳可达。
AS_PATH 操作:在传递路由时,EBGP 会将自己的 AS 号添加到 AS_PATH 中,用于标识路由来源并影响选路(AS 路径越短越优先)。
****连接方式:****通常要求直连建立邻居,TTL 默认为 1;若非直连,需手动配置 ebgp-multihop 调整最大跳数。
****管理距离(AD):****EBGP 的默认管理距离为 20,比 IBGP(200)更优先,因此在路径选择中优先选用 EBGP 路由。
****属性剥离:****向 EBGP 邻居传递路由时,会剥离 Local_Pref、Cluster_List、Originator_ID 等仅用于 AS 内部的属性。
(三)、核心区别总结
|------------|--------------|--------------|
| 特性 | IBGP | EBGP |
| 所在范围 | 同一AS内部 | 不同AS之间 |
| AS_Path处理 | 不修改 | 添加本地AS号 |
| TTL默认值 | 无限制 | 1(需直连) |
| 邻居关系 | 可非直连 | 通常直连 |
| 路由传递 | 不能传给其他IBGP邻居 | 可传给所有BGP邻居 |
| 下一跳行为 | 保持不变 | 修改为自身地址 |
二、实验拓扑:

三、实验命令:
R1:
<Huawei>sys
Huaweiundo info-center enable
Huaweisys R1
R1interface g0/0/0
R1-GigabitEthernet0/0/0ip add 12.1.1.1 24
R1-GigabitEthernet0/0/0q
R1interface loopback0
R1-LoopBack0ip address 1.1.1.1 32
R1-LoopBack0q
R1ospf router-id 1.1.1.1
R1-ospf-1area 0
R1-ospf-1-area-0.0.0.0network 1.1.1.1 0.0.0.0
R1-ospf-1-area-0.0.0.0network 12.1.1.0 0.0.0.255
R1-ospf-1-area-0.0.0.0q
R1-ospf-1q
R1bgp 100
R1-bgpundo synchronization
R1-bgpundo summary automatic
R1-bgprouter-id 1.1.1.1
R1-bgppeer 2.2.2.2 as-number 100
R1-bgppeer 2.2.2.2 connect-interface loopback0
R2:
<Huawei>sys
Huaweiundo info-center enable
Huaweisys R2
R2interface g0/0/0
R2-GigabitEthernet0/0/0ip address 23.1.1.2 24
R2-GigabitEthernet0/0/0q
R2interface g0/0/1
R2-GigabitEthernet0/0/1ip address 12.1.1.2 24
R2-GigabitEthernet0/0/1q
R2interface loopback0
R2-LoopBack0ip address 1.1.1.1 32
R2-LoopBack0q
R2ospf router-id 2.2.2.2
R2-ospf-1area 0
R2-ospf-1-area-0.0.0.0network 2.2.2.2 0.0.0.0
R2-ospf-1-area-0.0.0.0network 12.1.1.0 0.0.0.255
R2-ospf-1-area-0.0.0.0q
R2-ospf-1q
R2bgp 100
R2-bgpundo synchronization
R2-bgpundo summary automatic
R2-bgprouter-id 2.2.2.2
R2-bgppeer 1.1.1.1 as-number 100
R2-bgppeer 1.1.1.1 connect-interface LoopBack0
R2-bgppeer 23.1.1.3 as-number 200
R3:
<Huawei>sys
Huaweiundo info-center enable
Huaweisys R3
R3interface g0/0/1
R3-GigabitEthernet0/0/1ip address 23.1.1.3 24
R3-GigabitEthernet0/0/1q
R3interface loopback0
R3-LoopBack0ip add 3.3.3.3 32
R3-LoopBack0q
R3bgp 200
R3-bgpundo summary automatic
R3-bgpundo synchronization
R3-bgprouter-id 3.3.3.3
R3-bgppeer 23.1.1.2 as-number 100
四、实验测试:
在R1上查看tcp连接

- TCPCB:TCP控制块标识,是设备内部用于管理TCP连接的唯一标识符
- Tid/Soid:线程ID/套接字ID,标识处理该连接的进程或套接字资源
- Local Add:port:本地IP地址与端口,即设备自身的连接地址和端口号
- Foreign Add:port:远程IP地址与端口,即对端设备的连接地址和端口号
- VENID:虚拟网络标识,用于区分不同虚拟网络环境下的连接
- State:TCP连接状态,是判断连接是否正常的关键指标
在R2上查看对等体关系,可以看到R2已经与R1和R3建立了对等体

在R1上查看BGP路由表,可以看到路由表里只有ospf里的路由

Status codes:路由状态码说明
*:有效路由(valid)
>:最优路由(best)
d:被抑制的路由(damped)
h:历史路由(history)
i:内部路由(internal)
s:被抑制的路由(suppressed)
S:过时路由(Stale)
- Origin:路由起源标识
i:IGP路由(内部网关协议)
e:EGP路由(外部网关协议)
?:起源不完整(incomplete)
在R3上宣告环回接口
R3bgp 200
R3-bgpnetwork 3.3.3.3 32
然后R1上引入路由
R1bgp 100
R1-bgpimport-route ospf 1
再在R1上查看BGP路由表,可以看到R1的BGP路由表上出现了刚刚在R3上宣告的网段

但是通过上面的输出,我们可以发现3.3.3.3不是最优的,如果不优就不会加载进全局路由表,也不会传递给其他路由,这里不优的原因是因为下一跳不可达
所以,我们在R2上给它配置下一跳本地
R2bgp 100
R2-bgppeer 1.1.1.1 next-hop-local
然后在R1上查看BGP路由表,可以看到3.3.3.3的下一跳变成2.2.2.2了

再在R2上查看BGP路由表

通过以上输出,我们可以发现1.1.1.1这条路由虽然下一跳可达,但是不是有效和最优的,其原因为:如果IGP表里面宣告了这条路由,然后再在IBGP里面,路由只能本地有效。
五、总结
IBGP用于同一自治系统(AS)内部传递路由,EBGP用于不同自治系统之间交换路由。你可以把AS理解为一家公司,IBGP就像公司内部员工之间传递消息,EBGP则是两家公司之间对接合作。
IBGP(内部边界网关协议)
在同一个网络组织内部使用(如一家大型企业或运营商内部),用来把从外部学到的路由信息同步给内部其他路由器。它通常通过稳定的Loopback接口建立连接,不修改AS_Path路径信息,且不会将从IBGP邻居学到的路由再传给其他IBGP邻居,防止环路。
EBGP(外部边界网关协议)
用于不同组织之间的路由器通信(比如你的公司网络和阿里云、电信之间)。它默认要求直连,TTL为1,会自动在路由的AS_Path中加入自己的AS号,像"盖章"一样防止路由环路。EBGP学到的路由可以转发给所有BGP邻居,是互联网跨域互联的核心协议。