HCIP—BGP邻居关系建立实验

BGP的邻居称为:IBGP对等体 EBGP对等体

1.EBGP对等体关系:

位于 不同自治系统 的BGP路由器之间的BGP对等体关系

EBGP对等体一般使用 直连建立 对等体关系,EBGP邻居之间的报文 TTL中值设置为1

两台路由器之间建立EBGP对等体关系,满足如下关系: 两个路由器属于不同AS 。在配置时,peer命令所指的对等体的IP地址可达, TCP连接必须正常建立

2.IBGP对等体关系:

位于 相同自治系统 的BGP路由器之间对等体关系

IBGP对等体一般使用 非自连建邻 。IBGP邻居建邻之间的报文中 TTL值被设置为255

在BGP对等体中,常常使用环回接口地址作为源目IP地址,原因环回接口稳定

并且可以借助AS内部的IGP的冗余拓扑来保证可靠性

实验拓扑如图所示,R1与R2属于同一个运营商网,AS编号为100,R1与R2之间的邻居关系为IBGP邻居关系。R3属于另一个运营商网络,AS编号为200,R3与R2之间的邻居关系为EBGP邻居关系。本实验中,路由器将分别采用物理接口和Loopback接口来进行IBGP和EBGP邻居关系的建立。

一:进行基础的IP地址配置,保证直连网段的ping通

二:R1和R2配置IBGP邻居

1.使用物理接口配置

R1和R2之间使用物理接口来配置IBGP邻居关系。R1和R2之间部署两条链路,其中一条物理出现故障时,另一条链路可以提供连通性

R1\]bgp 100 \[R1-bgp\]router-id 10.0.1.1 \[R1-bgp\]peer 10.0.12.2 as-number 100 \[R1-bgp\]peer 10.0.21.2 as-number 10 ![](https://file.jishuzhan.net/article/1770667573122174978/70d30cc6fbd035a8a516547be3b1336e.webp) \[R2\]bgp 100 \[R2-bgp\]router-id 10.0.2.2 \[R2-bgp\]peer 10.0.12.1 as-number 100 \[R2-bgp\]peer 10.0.21.1 as-number 100 ![](https://file.jishuzhan.net/article/1770667573122174978/195c305536dba90bb6252ecdf0528372.webp) 配置完成后在R2上使用**dis bgp peer**命令,查看BGP邻居关系 ![](https://file.jishuzhan.net/article/1770667573122174978/22781ea50dbe48e27c3fafd6aa5439c4.webp) R2现在有两个BGP的邻居,分别为R1的两个接口IP地址10.0.12.1和10.0.21.1 ,AS号都为100,与R2的AS号相同,当前的邻居状态为Established,表示邻居关系建立成功。 R1将Loopback 0接口IP地址通告在BGP进程中 \[R1\]bgp 100 \[R1-bgp\]network 10.0.1.1 32 ![](https://file.jishuzhan.net/article/1770667573122174978/e49eef0e91b59572e637dc144d8c3a77.webp) 配置完成后在R2上查看BGP路由表 ![](https://file.jishuzhan.net/article/1770667573122174978/635f396e4d369aceec33ce0f614263e8.webp) R2的BGP路由表中去往10.0.1.1/32的路由,可以通过下一跳R1的两个接口的IP地址10.0.12.1和10.0.21.1,实现BGP路由冗余。 ### 2.使用**LoopBack 0接口进行配置** 由于BGP是运行在TCP之上的,可以让R1的Loopback 0接口和R2的Loopback 0接口建立会话,并使用Loopback 0接口IP建立BGP邻居关系,则R1和R2之间只维护一个BGP邻居关系。当R1和R2之间的一条链路出现故障时,TCP直接通过另外一条物理链路继续维持会话关系,这效果比直接使用物理接口更具优势。 R1的Loopback 0接口和R2的Loopback 0接口建立会话前,双方配置静态路由到达对方的Loopback 0接口。 \[R1\]ip route-static 10.0.2.2 32 10.0.12.2 \[R1\]ip route-static 10.0.2.2 32 10.0.21.2 ![](https://file.jishuzhan.net/article/1770667573122174978/789f276598bf83fdefc6bccdacc70262.webp) \[R2\]ip route-static 10.0.1.1 32 10.0.12.1 \[R2\]ip route-static 10.0.1.1 32 10.0.21.1 ![](https://file.jishuzhan.net/article/1770667573122174978/1037d064fbd8b886c7d28d1e801df7df.webp) 删除之前使用物理接口配置IBGP邻居关系的命令,并使用**Loopback 0**接口重新建立IBGP邻居关系 \[R1-bgp\]undo peer 10.0.12.2 \[R1-bgp\]undo peer 10.0.21.2#删除使用物理接口配置IBGP邻居关系的命令 \[R1-bgp\]peer 10.0.2.2 as-number 100#使用**Loopback 0**接口重新建立IBGP邻居关系 \[R2-bgp\]undo peer 10.0.12.1 \[R2-bgp\]undo peer 10.0.21.1 \[R2-bgp\]peer 10.0.1.1 as-number 100 R1使用dis bgp peer查看BGP邻居关系 ![](https://file.jishuzhan.net/article/1770667573122174978/5826ba033f7d8ef434c28d655c83d327.webp) 发现R1和R2的邻居关系为Active,说明R1和R2之间尚未成功建立IBGP邻居关系。由于BGP邻居在检测地址时,双方的目标IP地址都与对方的BGP源IP地址相同,才可以正常建立邻居。 默认情况下BGP前往邻居路由器的**出接口作为源IP地址** ,R1指定邻居地址10.0.2.2作为**目的IP地址,R1出接口10.0.12.1源IP地址** ,。R2指定邻居地址10.0.1.1**作为目的IP地址,R2出接口IP地址10.0.12.2作为源IP地址。** 因为双方的出接口IP地址和目的IP地址都不相同,故无法正常建立邻居。 为了使数据包的目标IP与对方的BGP源地址相同,所以邻居也要将BGP源地址更改为自己的loopback接口地址。 由于R1发出的数据包目标IP10.0.2.2与R2的BGP源地址10.0.2.2完全相同,所以最终能够正常建立BGP邻居。R1在检测地址时,R2的目标IP10.0.1.1与R1的源10.0.1.1也完全相同。 R1使用命令**peer 10.0.2.2 connect-interface LoopBack 0**强制指定LoopBack 0接口地址作为发送BGP报文的源IP地址,R2也一样 \[R1-bgp\]peer 10.0.2.2 connect-interface LoopBack 0 \[R2-bgp\]peer 10.0.1.1 connect-interface LoopBack 0 ![](https://file.jishuzhan.net/article/1770667573122174978/a5fed96ae9653e7f4edbfd79c460094e.webp) ![](https://file.jishuzhan.net/article/1770667573122174978/efed9d75a2deb0965110f7cd75b475e4.webp) R2使用dis bgp peer查看BGP邻居关系 ![](https://file.jishuzhan.net/article/1770667573122174978/cc903d9a3bf0dbf998301bcee8061fba.webp) 当前的邻居状态为Established,表示邻居关系建立成功。 R2使用命令dis ip routing-table查看路表。 ![](https://file.jishuzhan.net/article/1770667573122174978/a43427bc49a58c0320ee7ab3dec45c9d.webp) R2去往10.0.1.1/32的路由有两条,下一跳10.0.12.1和10.0.21.1,其中一条链路重新问题时,不会影响另一条链路。R1和R2的BGP邻居关系也不会有影响。 ## 三:配置EBGP邻居 配置BGP邻居关系时使用物理接口建立,容易产生两个TCP会话和两个BGP邻居关系,当有较多设备时,这样配置容易导致网络不稳定,消耗设备资源。 我们以R2的**LoopBack 0** 和R3的**LoopBack 0**接口来配置EBGP邻居关系,先R2和R3上配置到达对方的LoopBack 0接口的静态路由。 \[R2\]ip route-static 10.0.3.0 255.255.255.0 10.0.23.3 \[R2\]ip route-static 10.0.3.0 255.255.255.0 10.0.32.3 ![](https://file.jishuzhan.net/article/1770667573122174978/93c62ff6c664b164ffab7a9b5818470f.webp) \[R3\]ip route-static 10.0.2.0 255.255.255.0 10.0.23.2 \[R3\]ip route-static 10.0.2.0 255.255.255.0 10.0.32.2 ![](https://file.jishuzhan.net/article/1770667573122174978/da5fc03e7b2776b4e20f01baa2218510.webp) R2和R3上使用**LoopBack 0** 接口建立EBGP邻居关系,使用命令**connect-interface LoopBack 0**强制指定LoopBack 0接口地址作为发送BGP报文的源IP地址 \[R2\]bgp 100 \[R2-bgp\]peer 10.0.3.3 as-number 200 \[R2-bgp\]peer 10.0.3.3 connect-interface LoopBack 0 ![](https://file.jishuzhan.net/article/1770667573122174978/e4f3711f9a9db8b7ec057f617440982e.webp) \[R3\]BGP 200 \[R3-bgp\]router-id 10.0.3.3 \[R3-bgp\]peer 10.0.2.2 as-number 100 \[R3-bgp\]peer 10.0.2.2 connect-interface LoopBack 0 ![](https://file.jishuzhan.net/article/1770667573122174978/332b6b1d8b754ba0214efac84e7fbdec.webp) R3查看BGP邻居关系 ![](https://file.jishuzhan.net/article/1770667573122174978/d266c862a4689fce7ffe42edd1e0aa72.webp) 当前的邻居状态为idle,表示邻居关系建立不成功。 默认情况下,EBGP邻居之间发送BGP报文时,TTL值默认为1,则EBGP要求邻居关系之间必须使用物理接口必须直连。我们使用的地址不是直连地址,那么这个时候我们就需要开启EBGP多跳,否则将无法正常建立BGP邻居。可以通过修改TTL值,使报文TTL值大于1。 R2和R3上使用命令ebgp-max-hop 2,配置TTL值为2 \[R2-bgp\]peer 10.0.3.3 ebgp-max-hop 2 \[R3-bgp\]peer 10.0.2.2 ebgp-max-hop 2 ![](https://file.jishuzhan.net/article/1770667573122174978/7519656152fc7bff19afbcaa9050d5eb.webp)![](https://file.jishuzhan.net/article/1770667573122174978/5c824252bab972b4d00e42c49579655a.webp) R3查看BGP邻居关系 ![](https://file.jishuzhan.net/article/1770667573122174978/a31a3b232d27c3b716ecaeab05fbbce4.webp)当前的邻居状态为Established,表示EBGP邻居关系建立成功。

相关推荐
段帅龙呀5 小时前
Redis构建缓存服务器
服务器·redis·缓存
乌鸦不像写字台5 小时前
【docker部署】在服务器上使用docker
服务器·docker·容器
互联网搬砖老肖7 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
Antonio9157 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
kfepiza8 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
无妄-20248 小时前
软件架构升级中的“隐形地雷”:版本选型与依赖链风险
java·服务器·网络·经验分享
艾伦_耶格宇9 小时前
【docker】-1 docker简介
运维·docker·容器
R.X. NLOS9 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
cuijiecheng20189 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
轩情吖12 小时前
Qt的第一个程序(2)
服务器·数据库·qt·qt creator·qlineedit·hello world·编辑框